SuperAPI AI 工具集

deobfuscate-javascript

通用与其它

查看项目

更新于 10-15 23:32

技能介绍

用途:把压缩、混淆、打包或捆绑的 JavaScript 逆向还原为可读代码,或进一步改写为带类型的 TypeScript/TSX,包含 Codex.app ./ref/webview/assets 的恢复。

主要能力分三个阶段:阶段一(仅对混淆输入)做反混淆,用纯 Babel 处理 Packer/AAEncode 解包、Obfuscator.IO 字符串数组、hex/unicode/base64 转义、死代码与不透明谓词,不调用 LLM。阶段二还原为可读代码,分两步:先重命名 a、e、t、_0x4f3 等隐晦标识符(smart-rename.ts 先跑,残留再人工命名),再撤销打包器或编译器转换(默认 --fast 的阅读辅助子集;导入解析尾部为深度模式专属)。阶段三仅在深度模式启用:语义改写为惯用带类型 TypeScript(语义文件名、来源头、导入映射、types/.tsx 配方、目录拆分、导入修复),并由宿主逐文件对照四类质量标准做验收复核直至全部通过。

范围与深度:范围分单文件与整棵导入树,深度分可读与深度。整树默认从 index.html 出发自动发现入口,逐块递归恢复:阶段一(若混淆)→ wakaru 预处理(默认开启,缺少 @wakaru/cli 自动跳过)→ 阶段二重命名 → 阅读辅助润色 → 格式化 → 在 staging 组织后提升到共享 restored/。单文件回退流程用于单独片段或无 index.html 的情况。深度为整树默认,可读仅在明确要求“快速/粗略”时启用。

输出约定:restored/ 只放成品;脚本与批量产物先进 gitignored 的 restored/.deobfuscate-javascript/ 暂存区,组织后再提升。使用语义域子目录与 kebab 文件名(React 组件与类型名保持 PascalCase),每文件带来源头,全项目共用一份 restored/IMPORT_MAP.json。

限制:涉及 restored/vendor/* 的编辑需先完整阅读 reference/vendor-npm.md 并运行前置审计命令 bun .agents/skills/deobfuscate-javascript/scripts/vendor-npm-preflight.ts restored/vendor;公共 vendor 文件默认走 npm 重导出垫片。混淆输入须先跑阶段一,否则 extract.ts 的字节偏移会失效;纯压缩输入可跳过阶段一。完成以 quality-gate.ts <target-dir> 通过为准。其它版本、价格与平台信息暂未提供。