
binsync v5.15.4
一个用于跨反编译器协作的逆向插件,基于 git 构建。
BinSync
BinSync 是一款基于 Git 版本控制系统构建的反编译器协作工具,无论使用哪种反编译器,都能实现细粒度的逆向工程协作。BinSync 由 mahaloz、angr 团队和 SEFCOM 研究实验室开发。这在很大程度上也要归功于 Shellphish 黑客团队的使用。
所有优秀的反编译器都共享一些称为逆向工程工件(Reverse Engineering Artifacts,简称 REAs)的公共对象。这些 REA 是 BinSync 同步能力的核心。以下是受支持的 REA:
- 函数头(符号、参数、类型)
- 栈变量(符号、类型)
- 结构体
- 枚举
- 注释
注意:所有类型都支持用户自定义类型,例如结构体。
加入我们下方的 Discord 以获取更多在线帮助:
快速开始
对于所有安装方式,最好使用我们基于 Python 的两部分安装程序:
pip3 install binsync && binsync --install
BinSync 也可以在 Binary Ninja 插件管理器中获取。
如果你计划在 Ghidra 中使用 BS(BinSync),则必须以 PyGhidra 模式 启动 Ghidra。
如果你打算使用额外的 BS 功能(如 ChatGPT 用户),请按如下方式安装该软件包:pip3 install binsync[extras],这将安装额外的支持包。
有关完整的安装信息,请阅读我们的快速入门文档。
对于开发者,请以可编辑模式(-e)安装该软件包,并确保 pip>=23.0.0。
支持的平台
- IDA Pro:>= 8.4(如果你使用的是旧版本,请使用 BinSync v4.10.1)
- Binary Ninja:>= 2.4
- angr-management:>= 9.0
- Ghidra:>= 12.0(PyGhidra 模式)
所有版本都要求你的系统安装了 Python >= 3.10 和 Git。 Ghidra 支持仍处于非常早期的阶段,因此目前只能使用最基础的功能,如工件名称同步和注释。
反编译器支持进度
虽然我们在上一节中列出了对这些反编译器的支持,但并非每个反编译器都支持相同级别的同步。 要了解工件支持、拉取、推送和自动推送之间的区别,请阅读我们的反编译器使用介绍。
IDA Pro
| 操作 | 函数头 | 栈变量 | 全局变量 | 结构体 | 枚举 | 注释 |
|---|---|---|---|---|---|---|
| 符号 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 类型 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 拉取 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 推送 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 自动推送 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Binary Ninja
| 操作 | 函数头 | 栈变量 | 全局变量 | 结构体 | 枚举 | 注释 |
|---|---|---|---|---|---|---|
| 符号 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 类型 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 拉取 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 推送 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 自动推送 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ghidra
| 操作 | 函数头 | 栈变量 | 全局变量 | 结构体 | 枚举 | 注释 |
|---|---|---|---|---|---|---|
| 符号 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 类型 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 拉取 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 推送 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| 自动推送 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
angr-management
| 操作 | 函数头 | 栈变量 | 全局变量 | 结构体 | 枚举 | 注释 |
|---|---|---|---|---|---|---|
| 符号 | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| 类型 | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| 拉取 | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| 推送 | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| 自动推送 | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
脚本编写
如需编写脚本,请参阅 DecLib,它允许你在 Python 中完成所有提升(lifting)和数据操作。
赞助商
没有赞助,BinSync 及其相关项目便不可能实现。 排名不分先后,我们感谢所有曾经或正在赞助 BinSync 众多项目之一的组织。