
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.
Если вы планируете использовать BS с Ghidra, вы должны запускать его в режиме 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 всё ещё находится на очень ранней стадии, поэтому ожидайте только минимальные функции, такие как синхронизация имён артефактов и комментариев.
Прогресс поддержки декомпиляторов
Хотя мы поддерживаем декомпиляторы из предыдущего раздела, не каждый декомпилятор поддерживается на одинаковом уровне синхронизации. Чтобы понять разницу между поддержкой артефактов, pull, push и auto push, прочитайте наше введение в использование декомпиляторов.
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 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |