buzzer-re/ToCode

GitHub: buzzer-re/ToCode

ToCode 将二进制文件或 IDA 数据库导出为带有完整元数据的类源代码项目树,让 AI 编程智能体无需实时工具集成即可高效分析和遍历大型二进制。

Stars: 32 | Forks: 2

# ToCode ToCode 可将二进制文件或 IDA 数据库导出为类似源代码的项目树:包含原始恢复的 C 代码、匹配的汇编代码、函数摘要、节区数据、可选的 IDA 数据库,以及可供编程智能体直接读取的元数据。 ## 为什么 AI 模型在编程方面非常强大,尤其是当它们能够遍历庞大的代码库,并通过子智能体和其他策略不断积累上下文时。当我们使用这些智能体来辅助逆向工程时,通常会通过 MCP 或其他方式提供工具,以便编程智能体能够学习并围绕 IDA 和 r2 等工具制定策略。这种方法给智能体的行为方式带来了限制和约束,并增加了对深度、复杂推理的需求。 应该有一种更好的方法来改善这一情况,让较小的模型也能在这类工作中表现出色。 ToCode 背后的理念很简单:使用 IDA 等反汇编工具为给定的二进制文件创建一个类似源代码的项目,并附带预构建的 `AGENTS.md`,让大多数编程智能体都能从预计算的上下文开始。ToCode 还会生成包含重要元数据的丰富 `.json` 文件。 通过这种方法,即使是微型模型也能在不连接类 MCP 工具调用的情况下表现出色,因为 ToCode 提供的正是编程智能体所擅长的内容:代码。 ### 导出布局 导出的项目包含以下结构: ``` sample_decompiler/ AGENTS.md CLAUDE.md src/raw/**/*.c src/raw/**/*.asm src/raw/**/*.summary include/*.h data/*.bin data/variables.json data/variables_interesting.json function-index.json functions.json sections.json strings.json imports.json exports.json relocations.json reachable.json cluster-graph.json triage.json project.json export-manifest.json ``` | 路径 | 描述 | | --- | --- | | `src/raw` | 按集群分组的反编译类 C 输出、汇编代码和摘要。 | | `include` | 为导出项目生成的头文件。 | | `data` | 原始节区转储和变量元数据。 | | `*.json` | 函数、节区、字符串、导入、导出、重定位、可达性、集群、分类、项目元数据和导出清单。 | | `AGENTS.md` / `CLAUDE.md` | 供智能体分析导出二进制文件的说明。 | | `src/tree` | 使用 `--tree` 时输出的可选扫描器友好型 C 代码。 | ### 支持的后端 目前支持 IDA(使用 ida-domain/idapro Python 库)和 radare2。未来可能会添加其他反汇编工具。 ### 使用说明 ToCode 支持 Windows、Linux 和 macOS,需要 Python 3.10 或更高版本。 在 Windows PowerShell 上: ``` powershell -ExecutionPolicy Bypass -File .\install.ps1 ``` 在 Linux 或 macOS 上: ``` bash ./install.sh ``` 手动设置(需要 [uv](https://docs.astral.sh/uv/)): ``` git clone https://github.com/buzzer-re/ToCode cd ToCode uv sync --locked uv tool install --force --editable . ``` ### 示例 ``` tocode firmwareX.bin -o firmwareX_decompiled/ cd firmwareX_decompiled/ codex # 在你的 agent shell 中,输入你的目标,例如:“给我简要概述一下此固件的 boot process。” ``` #### 来自进行中的 RE 工作 ``` tocode firmwareX.bin.i64 -o firmwareX_decompiled/ ... ``` ## 开发说明 该工具是使用智能体编程构建的,因此如果您打算提供帮助,我强烈建议您采用同样的方式。 在修改 ToCode 之前,请确保已安装 Python、uv、ruff、mypy、pytest 和 compileall。如果要处理后端相关工作,请根据您要修改的内容,确保已安装 IDA 或 radare2。 给智能体的主要说明位于 `AGENTS.md` 中。请在开始前阅读它,并在继续之前确保通过本地质量门禁。 ### 质量门禁 在提交 PR 之前运行本地 CI 门禁: ``` ./ci-local.sh ``` 在 Windows PowerShell 上: ``` powershell -ExecutionPolicy Bypass -File .\ci-local.ps1 ```
标签:AI辅助分析, IDA Pro, LLM上下文处理, radare2, SOC Prime, URL提取, 二进制分析, 云安全运维, 云资产清单, 反编译, 开发工具, 逆向工具, 逆向工程