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.