使用AST方式(依赖Babel插件)实现的JS代码净化工具,包括常见的几种类型:
- 字面量还原(全局、代码块)
- 死代码清理、扁平化还原
- 条件、循环语句规范化
- 特殊函数清理
处理全局加密内容时使用VM2提供的环境。
需要node.js
环境,并安装依赖:npm i
。
调用方法:
# pre-defined command
npm run xxx
# or full command
npm run decode -- -t type [-i input.js] [-o output.js]
xxx
为预定义的指令,见package.json中的scripts
字段。
type
列表:
- common (高频局部混淆)
- jjencode (sojson.com 版本)
- sojson
- sojsonv7
- obfuscator
默认输入文件为input.js
,文件中不能包含除混淆代码以外的内容(例如非混淆代码,注释除外),且只能包含一段混淆代码(一次处理只能识别一个主加密函数)。
默认输出文件为output.js
。
程序入口文件为:src/main.js,插件目录为src/plugin。
参考了下面的项目: