l4stTr4in/js-deobfuscator
GitHub: l4stTr4in/js-deobfuscator
基于 Babel AST 多遍处理的 JavaScript 去混淆引擎,用于将混淆后的 JS 代码还原为可读形式,主要服务于安全研究与 Web 渗透测试场景。
Stars: 0 | Forks: 0
# JS Deobfuscation 引擎
该引擎用于研究 / Web 渗透测试目的,通过多遍处理(Babel AST)对 JavaScript 进行去混淆。这是在丢失原始仓库后重新构建的核心部分——作为使用 Claude Code 进一步开发高级处理阶段的基础。请先阅读 `CLAUDE.md`。
## 安装
```
npm install
```
## 使用
```
node cli.js # in ra stdout + metric size reduction
node cli.js -o out.js # ghi ra file
```
## 测试
```
npm test
```
## 结构
```
cli.js CLI (chalk@4), in metric size reduction
src/pipeline.js điều phối pipeline — THỨ TỰ PASS load-bearing
src/evaluator.js static evaluator + sentinel CANNOT_EVAL
src/passes/
decodeStrings.js hex/unicode/base64(atob) -> plaintext
constantFolding.js post-order (exit) folding
deadCodeElimination.js if/ternary hằng -> bỏ nhánh chết
removeUnusedVariables.js Program:exit, lặp tới fixed point
tests/ sample + test runner (8 checks)
```
## 已处理 / 未处理
请参阅 CLAUDE.md §5 中的技术矩阵。接下来的优先事项是:
控制流平坦化(switch dispatcher)、基于数组的字符串内联。
## Testbed 生成器
使用 `javascript-obfuscator` 生成输入(与 JsDeObsBench 基准测试同源):
```
npm run gen -- --src gen-testbed/sources --config combined --out corpus
npm run roundtrip # kiểm tra engine bảo toàn ngữ nghĩa trên 5 config
```
配置文件:gen-testbed/configs/*.json (详见 details.csv)
## 在 JsDeObsBench 数据集上评分
Clone 该数据集,然后将脚本指向 build_dataset 目录:
```
node eval/evaluate.js <đường_dẫn>/build_dataset 25
```
3 个维度:输出有效性、简洁程度、与原始版本(ground truth)的相似度。结果 -> eval/results.csv
(“运行正确”这一维度需要 CodeNet 的 stdin 测试集——稍后处理。)
标签:Babel AST, CMS安全, JavaScript, MITM代理, 代码分析, 凭证管理, 反混淆, 数据可视化, 暗色界面, 自定义脚本