SuperAPI AI 工具集

reverse-engineer-js

通用与其它

查看项目

更新于 10-16 02:28

技能介绍

用途:对压缩、混淆或名称被改写的 JavaScript bundle 进行 LLM 辅助反混淆,恢复可读的变量与函数名。主要能力包括:用 humanifyjs 通过 LLM 重命名混淆标识符;用 prettier 或 js-beautify 重排单行压缩代码;用 webcrack 将 webpack/browserify 包拆分为按模块文件;优先检查 sourcemap(bundle.js.map 或 sourceMappingURL 注释),若存在可免费恢复原始源码。

主要用法:默认调用为 npx humanifyjs gemini -m "gemini-3.8-flash" -o <outputDir> <inputFile>,需在环境中提供 GEMINI_API_KEY;其他后端包括 openai(--apiKey、--model)和本地 local(较慢但免费)。在非交互式 shell 中,humanify 因进度条调用会崩溃,需用 script -q /dev/null 包裹命令(Linux 为 script -qc "<cmd>" /dev/null)。输出文件名固定为 <outputDir>/deobfuscated.js。

适用场景:小型 bundle 整体反混淆;大型 fxhash 生成艺术包中仅提取部分模块处理;webpack 包先用 webcrack 拆分再逐模块反混淆;处理无 sourcemap 的有效但混淆的 JS。

限制与注意:humanify 逐条处理顶层声明,5MB 包可能耗时 30 分钟以上;只重命名短小混淆的标识符,原本可读的代码不会改变;会消耗 LLM token,可能遇到限流;运行前应保存原始 bundle 到 archive/bundle.original.js,且每次运行前删除旧的 deobfuscated.js。项目若有 scripts/deobfuscate.js 应优先复用。部分具体平台或收费信息暂未提供。