BinSync — это инструмент для совместной работы декомпиляторов, созданный на основе системы управления версиями Git и позволяющий осуществлять детальную совместную работу по обратному проектированию независимо от декомпилятора. BinSync создан mahaloz, командой angr и исследовательской лабораторией SEFCOM. Во многом это также связано с его использованием хакерской командой Shellphish.
Все хорошие декомпиляторы используют общие объекты, называемые артефактами обратного проектирования (REA). Эти REA являются центром возможностей синхронизации BinSync. Вот поддерживаемые REA:
Примечание. Все типы поддерживают типы, созданные пользователем, например структуры.

Присоединяйтесь к нашему дискорду ниже, чтобы получить дополнительную онлайн-помощь :
Для всех установок лучше всего использовать наш установщик, состоящий из двух частей, с Python:
pip3 install binsync && binsync --install BinSync также доступен в менеджере плагинов Binary Ninja. Если вы планируете использовать BS с Ghidra , вам также необходимо выполнить pip3 install binsync[ghidra] . Если вы планируете использовать дополнительные функции BS, такие как пользователь ChatGPT, установите пакет следующим образом: pip3 install binsync[extras] , который установит дополнительные пакеты для поддержки. Полную информацию об установке можно найти в нашей документации по быстрому запуску.
Если вы планируете установить пакет с возможностью редактирования ( -e ), как при установке разработчика, убедитесь, что pip>=23.0.0 .
v4.10.1 )Для всех версий требуется Python >= 3.10 и Git , установленные в вашей системе. Поддержка Ghidra все еще находится на ранней стадии, поэтому ожидайте только минимальных функций, таких как синхронизация имен артефактов и комментарии.
Хотя мы поддерживаем декомпиляторы, описанные в предыдущем разделе, не все декомпиляторы поддерживаются на одном и том же уровне синхронизации. Чтобы понять разницу между поддержкой артефактов, извлечением, отправкой и автоматической отправкой, прочтите введение в использование декомпилятора.
| Операции | Заголовки функций | Стек переменных | Глобальные переменные | Структуры | Перечисления | Комментарии |
|---|---|---|---|---|---|---|
| Символы | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Типы | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Тянуть | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Толкать | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Автоматическое нажатие | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

| Операции | Заголовки функций | Стек переменных | Глобальные переменные | Структуры | Перечисления | Комментарии |
|---|---|---|---|---|---|---|
| Символы | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Типы | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Тянуть | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Толкать | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Автоматическое нажатие | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

| Операции | Заголовки функций | Стек переменных | Глобальные переменные | Структуры | Перечисления | Комментарии |
|---|---|---|---|---|---|---|
| Символы | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Типы | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Тянуть | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Толкать | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Автоматическое нажатие | ✅ | ✅ | ✅ | ✅ | ✅ |

| Операции | Заголовки функций | Стек переменных | Глобальные переменные | Структуры | Перечисления | Комментарии |
|---|---|---|---|---|---|---|
| Символы | ✅ | ✅ | ✅ | |||
| Типы | ✅ | ✅ | ✅ | |||
| Тянуть | ✅ | ✅ | ✅ | |||
| Толкать | ✅ | ✅ | ✅ | |||
| Автоматическое нажатие | ✅ | ✅ | ✅ |
Для создания сценариев см. Lib BinSync, которая позволяет выполнять все операции подъема и обработки данных на Python.