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代理, 代码分析, 凭证管理, 反混淆, 数据可视化, 暗色界面, 自定义脚本