Nodejs源代码保护

发布时间:2020-09-05编辑:佚名阅读(1856)

解决方案:JavaScript obfuscator + bytenode + node-packer(为什么选用node-packer而不是ncc,pkg呢?因为ncc和pkg无法处理混淆过的代码。)

假设我们需要保护的是这样的一个项目:

// index.js
console.log("以下是价值上千万的代码:");
var a = 1;
var b = 1;
var c = a + b;
console.log("1 + 1 = " + c)

首先我们通过npm安装javascript-obfuscator 和 bytenode。然后在当前系统下安装node-packer。

由于node-packer无法打包由bytenode生成的.jsc字节码文件,所以需要添加以下文件来导入.jsc文件:

// build.js
require('bytenode');
require('./index-obfuscated.jsc');

接着将以下指令加到package.json:

 "scripts": {
    "obfuscate": "javascript-obfuscator index.js --string-array-encoding rc4",
    "bytenode": "bytenode --compile index-obfuscated.js",
    "nodec": "nodec build.js --skip-npm-install",
    "build": "npm run obfuscate && npm run bytenode && npm run nodec",
  }

最后运行npm run build,可以得到一个a.out(windows系统下是a.exe)的可执行文件。运行一下,价值上千万的代码就跑起来了。

此外你会发现项目目录下多了两个文件:index-obfuscated.js, index-obfuscated.jsc。它们分别是混淆之后的代码以及字节码文件。javascript-obfuscator支持多种混淆技术,可能通过查看文档,按照自己的项目需求,调配选用合适的选项。

  关键字:Nodejs源代码保护


鼓掌

0

正能量

0

1

呵呵

0


评论区