从node-webkit二进制文件中还原源码

用过node-webkit都知道, 现在node-webkit还没有直接编译二进制可执行文件的工具, 现有的node-webkit程序大多数是以官方wiki提供的追加zip包的方式打包的.

首先说明一下node-webkit打包成二进制的原理:

  1. 把源码打包成zip文件.
  2. 把zip文件以二进制形式追加到nw程序上.
  3. 在启动nw程序时, 会读取程序尾部的zip文件, 完成zip包中源码的执行.

知道node-webkit是怎么打包成二进制之后, 我们就可以开始手动还原源码了.

首先你需要一个16进制文件编辑器, 这里我用的是WinHex, 打开你要还原源码的程序.

从最底下开始往上查找一块全部都是00的空白块, 选择第一个非空白块作为选块的起始位置.

将文件最底下的最后一块作为选块尾部, 菜单栏-编辑-复制所有-至新文件, 保存的就是源码的zip包.

用压缩工具解压后就能看到程序源码.

如果要分离出源码的程序很多, 自己写个批处理, 也是可以搞定的.