node.js加pkg编写一个安全性极高的exe 工具

442 阅读1分钟

一、考虑如何去调用exe SDK?

我用的是进程参数来实现process.argv, exe调用形式例如

    {}[函数名](参数)

node.js调用则可以使用, 而这里可以利用进程输出来拿到返回值。

    spawn('.exe', [参数])

二、如何防止孤儿进程?

  try {
    process.kill(process.ppid, 0);
  } catch (e) {
    kill_自身进程
  }

三、如何合理的处理pkg包内脚本路径?

  • 当引用exe脚本来的依赖文件时可以使用process.execPath获取相对路径
    process.execPath 
  • 当需要使用包内路径时使用__dirname+filename获取包内虚拟路径
    __dirname+filename

四、PKG如何打包三方依赖?

"pkg": {
    "targets": [
      "node12-win-x86"
    ],
    "assets": [
      "node_modules/crypto-js",
      "node_modules/axios/**/*",
      "node_modules/request"
      ...
    ],
    "outputPath": ""
  },

五、PKG如何打包出64 或者 32位文件?

32位文件需要使用node 12.1.0 32版本

64位则以上即可

六、使用javascript-obfuscator混淆工具混淆代码?

javascript-obfuscator 需要的配置项为"ignoreImports": true ,导出项屏蔽混淆不然会有文件引用错误

七、pkg打包命令

    pkg . --compress GZip --target win

七、压缩exe包

使用upx