发布时间:2020-09-05编辑:佚名阅读(2164)
解决方案: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支持多种混淆技术,可能通过查看文档,按照自己的项目需求,调配选用合适的选项。
0人
0人
1人
0人