代码混淆
什么是混淆
- 混淆是指在js编译期间,对代码进行花指令、流程更改等转换,目的是为了保护代码
如何开始混淆的工作
- EC iOS 的IDEA开发工具在升级到 5.0.0后,会在在工程模块下面创建一个 obfuscator.json文件
- 默认是不开启混淆的,需要正确设置json配置中的binPath的路径才能支持工作
安装和设置混淆器
安装Node.js
安装 npm install -g javascript-obfuscator
- windows在cmd 或者powershell中运行以下命令
- 参考https://www.npmjs.com/package/javascript-obfuscator
- 也可以百度搜索 javascript-obfuscator 的安装
npm install -g javascript-obfuscator
npm install -g class-validator
配置说明
- 这里的默认配置是测试过的,可以运行的,更多配置可以参考工具的官网[https://www.npmjs.com/package/javascript-obfuscator]
- nodeBinPath属性,nodejs的的node.exe文件路径,请看实例
- obfuscatorBinPath属性,javascript-obfuscator 的可执行文件的路径,
- 安装NodeJs后,默认全局安装路径为:C:\Users\Administrator\AppData\Roaming\npm\node_modules(可通过npm命令npm root -g查看。Administrator用户名各人一般不同。)
- node_modules 找到 javascript-obfuscator全路径复制过来
{
"nodeBinPath": "D:\\programe\\nodejs\\node.exe",
"obfuscatorBinPath": "C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\javascript-obfuscator\\bin\\javascript-obfuscator",
"target": "node",
"compact": false, // 是否压缩代码
"log": true, // 是否展示log
"optionsPreset": "high-obfuscation", // 混淆程度
"deadCodeInjection": false,
"simplify": false,
"seed": 10, // 随机种子数量
"controlFlowFlattening": true,
"controlFlowFlatteningThreshold": 1,
"unicodeEscapeSequence": false,
"stringArray": true,
"stringArrayRotate": false,
"stringArrayShuffle": false,
"stringArrayThreshold": 1,
"stringArrayWrappersCount": 5,
"stringArrayEncoding": ["rc4"],
"stringArrayCallsTransform": false,
"selfDefending": false,
"splitStrings": false,
"splitStringsChunkLength": 1
}