工具

bun-demincer Bun 可执行文件 JavaScript 还原工具

从 Bun 编译的独立可执行文件中恢复可读 JavaScript 的 Node.js 流程。它提取内嵌的模块图和资源,把打包代码拆成每个模块一个文件,用指纹库标记 npm 第三方代码,再借助 wakaru、依据导出映射恢复名称的保格式重命名以及可选的 Gemini 命名建议进行反混淆。之后通过依赖图聚类、手工或借助 LLM 的聚类命名,以及跨版本迁移已有成果,来整理和更新输出。

目标
应用 · 二进制
类别
JavaScript 与 Electron 工具
关联
基础工具
来源复核于

使用条件与局限

  • 所审阅的 master 提交(2026-03-06)是仓库的第九个提交,距 2026-03-03 的初始发布提交仅三天;没有标签或发布版本。需要 Node.js 18+ 及 package.json 中的 npm 依赖,其中 node-canvas 用于生成聚类 PNG;只有运行提取出的代码时才需要 Bun。README 称 Bun 将代码存放在 Mach-O 的 __BUN 节、追加在 ELF 末尾的数据或 PE 的 .bun 节中;extract.mjs 会解析 Mach-O 节头,否则直接搜索 Bun 的结尾标记。
  • 输入是使用者有权分析的 Bun 编译可执行文件;仓库不含任何目标二进制或恢复出的代码,.gitignore 也排除了流程输出。data/vendor-fingerprints-1000.json(26 MB)收录 1,668 个 npm 包中 23,746 个文件的属性名与字符串字面量指纹,可从本地 node_modules 重建。README 称第 1–4 步全自动,而聚类命名需要手工完成或借助 LLM。
  • ai-rename.mjs 和 ai-rename-scoped.mjs 会使用 GEMINI_API_KEY 把模块源码发送到 Google Gemini API(默认模型 gemini-3-flash-preview),所得名称只是模型建议。README 的回装步骤调用一个标明位于使用者项目中的 build.mjs,本仓库并不包含它,因此未核实输出能重新组装为可运行二进制的说法。
  • 所审阅的文件树中没有测试或 CI。README 声明 MIT,但仓库没有许可证文件,package.json 也没有 license 字段。九个提交中有四个带有 Claude Opus 4.6 的共同作者标记;未确立与 REA 的关联。本次未安装或运行任何内容。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · vicnaum/bun-demincer · 修订 7cfe925
  2. package.json GitHub · vicnaum/bun-demincer · 修订 7cfe925
  3. .env.example GitHub · vicnaum/bun-demincer · 修订 7cfe925
  4. .gitignore GitHub · vicnaum/bun-demincer · 修订 7cfe925
  5. docs/BUN.md GitHub · vicnaum/bun-demincer · 修订 7cfe925
  6. src/extract.mjs GitHub · vicnaum/bun-demincer · 修订 7cfe925
  7. src/match-vendors.mjs GitHub · vicnaum/bun-demincer · 修订 7cfe925
  8. src/ai-rename.mjs GitHub · vicnaum/bun-demincer · 修订 7cfe925
  9. src/cluster-graph.mjs GitHub · vicnaum/bun-demincer · 修订 7cfe925
  10. https://github.com/vicnaum/bun-demincer/commit/4ff57a9fff40b2a509b32cfd93d76a22fd37933a

同分区更多条目:应用

应用分区全部 116 项资源