【问题标题】:How to Decompile NW.js exe如何反编译 NW.js exe
【发布时间】:2020-08-08 20:30:20
【问题描述】:

我想反编译一个用 NW.js 编译的 JavaScript 应用程序,转换为 .exe 我有 nw.exe、nw.pak、index.html、package.json、资源目录和其他一些文件夹。 启动 nw.exe 运行良好,但我想修改它,我需要源代码。

是否存在从 exe 中获取 JavaScript 源代码的方法?

【问题讨论】:

    标签: node-webkit


    【解决方案1】:

    打包 NW.js 应用程序的方法有很多很多。它们都记录在网站上。但您可以尝试以下一些简单的方法。

    1. 不太可能,但可能: 将 .exe 重命名为 .zip 并打开它。可能有项目文件。大多数应用程序没有以这种方式打包,因为它会使应用程序的每次启动变慢,因为它必须在每次打开时解压缩内容并将它们复制到临时文件夹。另外,zip 将包含您已有的 package.json,因此这可能与您的情况无关。
    2. package.json 应该是入口点,我假设 index.html 是该文件中 "main" 值的指向。然后index.html 将拉入所有其他文件。其中一些可能在服务器上在线,这意味着您无法在本地编辑它们。有些可能在本地文件夹中,可能是“resources”文件夹,因为默认情况下 NW.js 不附带这些内容。
    3. 可能会发布应用程序的轻量版,并且在更新时下载/替换核心内容。如果我这样做,我会将其存储在 appData 文件夹中。您可以通过console.log(nw.App.dataPath) 找到此位置。这是一个特定于用户帐户的文件夹,将位于使用应用程序名称的文件夹中,如package.json 中定义的那样。虽然这不太可能,但有可能。
    4. 可以使用 V8 快照“保护”原始源代码。如果使用它,您将无法恢复原始源代码。迄今为止,没有记录到有人对 V8 快照进行逆向工程的案例。尽管有可能,但它需要极高的技术技能水平和跨多个学科的知识。
    5. 您找到的源代码也可能是“丑陋的”。意思是,虽然它都在那里,但它会被完全遮蔽,使其阅读起来毫无用处。而不是
    function getUserData (url) {
      axios.get(url)
      .then(function (response) {
        return response.data;
      })
    }
    

    应该是这样的

    function a(b){c.d(b).then(e=>e.f)}
    

    丑化后的情况不是很明显。

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 2011-06-01
      • 2012-07-27
      • 2016-10-29
      • 1970-01-01
      • 2012-08-03
      相关资源
      最近更新 更多