
binsync v5.15.4
一个用于跨反编译器协作的逆向插件,基于 git 构建。
BinSync
BinSync 是一个基于 Git 版本控制系统构建的反编译器协作工具,旨在实现细粒度的逆向工程协作,且不受反编译器限制。BinSync 由 mahaloz、angr 团队和 SEFCOM 研究实验室共同开发。它在很大程度上也得益于 Shellphish 黑客团队的使用。
所有优秀的反编译器都共享一些称为逆向工程工件(Reverse Engineering Artifacts,REAs)的通用对象。这些 REAs 是 BinSync 同步能力的核心。以下是支持的 REAs:
- 函数头(符号、参数、类型)
- 栈变量(符号、类型)
- 结构体
- 枚举
- 注释
注意:所有类型都支持用户自定义类型,如结构体。
加入我们的 Discord 获取更多在线帮助:
快速开始
对于所有安装方式,最好使用我们的两部分 Python 安装程序:
pip3 install binsync && binsync --install
BinSync 也可在 Binary Ninja 插件管理器中获取。
如果你打算在 Ghidra 中使用 BS,必须以 PyGhidra 模式启动。
如果你打算使用 BS 的额外功能,例如 ChatGPT User,请按以下方式安装包: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
| Operations | Function Headers | Stack Vars | Global Vars | Structs | Enums | Comments |
|---|---|---|---|---|---|---|
| Symbols | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Auto Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Binary Ninja
| Operations | Function Headers | Stack Vars | Global Vars | Structs | Enums | Comments |
|---|---|---|---|---|---|---|
| Symbols | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Auto Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ghidra
| Operations | Function Headers | Stack Vars | Global Vars | Structs | Enums | Comments |
|---|---|---|---|---|---|---|
| Symbols | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Auto Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |