如何反编译NW.js exe

问题描述 投票:0回答:1

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

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

node-webkit
1个回答
0
投票

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

  1. 不太可能,但有可能: 将 .exe 重命名为 .zip 并打开它。可能有项目文件。大多数应用程序都不是以这种方式打包的,因为它会使应用程序的每次启动速度变慢,因为它必须在每次打开时解压缩内容并将其复制到临时文件夹中。另外,邮政编码将包含您已经拥有的
    package.json
    ,因此这可能与您的案例无关。
  2. package.json
    应该是入口点,我假设
    index.html
    是它将指向该文件内的
    "main"
    值。然后
    index.html
    将拉入所有其他文件。其中一些可能在服务器上在线,这意味着您无法在本地编辑它们。有些可能位于本地文件夹中,可能是“资源”文件夹,因为默认情况下这不是 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)}

丑化时发生的事情不是很明显。

© www.soinside.com 2019 - 2024. All rights reserved.