Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ret-sync — ret-sync — это набор плагинов, который помогает синхронизировать сеанс отладки (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) с дизассемблерами IDA/Ghidra/Binary Ninja. | Kitploit
Инструменты/GitHubGitHub/bootleg/ret-sync
Динамический анализ (песочница)Обратная инженерияОтладчикиУтилиты и фреймворкиАнализ Бинарных Файлов
GitHubbootleg/ret-sync

ret-sync

ret-sync — это набор плагинов, который помогает синхронизировать сеанс отладки (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) с дизассемблерами IDA/Ghidra/Binary Ninja.

Репозиторий
2.4k307448 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ret-sync

ret-sync расшифровывается как Reverse-Engineering Tools SYNChronization. Это набор плагинов, которые помогают синхронизировать сеанс отладки (WinDbg/GDB/LLDB/OllyDbg/OllyDbg2/x64dbg) с дизассемблером (IDA/Ghidra/Binary Ninja). Основная идея проста: взять лучшее из двух миров (статического и динамического анализа).

Отладчики и динамический анализ дают нам:

  • локальное представление с живым динамическим контекстом (регистры, память и т.д.)
  • встроенные специализированные возможности/API (например, WinDbg: !peb, !drvobj, !address и т.д.)

Дизассемблеры и статический анализ дают нам:

  • макропредставление модулей
  • анализ кода, сигнатуры, типы и т.д.
  • наглядное графовое представление
  • декомпиляцию
  • постоянное хранение знаний в IDB/GPR

Ключевые возможности:

  • синхронизация графового представления и декомпиляции с состоянием отладчика
  • нет необходимости иметь дело с ASLR, адреса пересчитываются на лету
  • передача данных (комментарии, вывод команд) из отладчика в дизассемблер
  • можно синхронизировать несколько IDB/GPR одновременно, что позволяет легко отслеживать несколько модулей
  • дизассемблер и отладчик могут находиться на разных хостах/ВМ

ret-sync является форком qb-sync, который я разрабатывал и поддерживал во время работы в Quarkslab.


Содержание

  • Содержимое репозитория
  • Общие предварительные требования
  • Бинарный релиз
  • Конфигурация ret-sync
  • Установка
    • Расширение для IDA
    • Расширение для Ghidra
    • Расширение для Binary Ninja
    • Расширение для WinDbg
    • Установка GNU gdb (GDB)
    • Установка LLDB
    • Установка OllyDbg 1.10
    • Установка OllyDbg2
    • Установка x64dbg
  • Использование
    • Команды отладчика ret-sync
    • Использование с IDA
    • Использование с Ghidra
    • Использование с Binary Ninja
    • Использование с WinDbg
    • Использование с GNU gdb (GDB)
    • Использование с LLDB
    • Использование с OllyDbg 1.10
    • Использование с OllyDbg2
    • Использование с x64dbg
    • Использование библиотеки Python
  • Расширение
  • TODO
  • Известные ошибки/ограничения
  • Лицензия
  • Благодарности

Содержимое репозитория

Плагины отладчиков:

  • ext_windbg/sync: исходные файлы расширения WinDbg, после сборки: sync.dll
  • ext_gdb/sync.py: плагин GDB
  • ext_lldb/sync.py: плагин LLDB
  • ext_olly1: плагин OllyDbg 1.10
  • ext_olly2: плагин OllyDbg v2
  • ext_x64dbg: плагин x64dbg

Плагины дизассемблеров:

  • ext_ida/SyncPlugin.py
  • ext_ghidra/dist/ghidra_*_retsync.zip: плагин Ghidra
  • ext_bn/retsync: плагин Binary Ninja

И библиотечный плагин:

  • ext_lib/sync.py: автономная библиотека Python

Общие предварительные требования

Плагины IDA и GDB требуют корректной установки Python. Поддерживаются Python 2 (>=2.7) и Python 3.

Бинарный релиз

Предварительно собранные двоичные файлы для отладчиков WinDbg/OllyDbg/OllyDbg2/x64dbg предоставляются через конвейер Azure DevOps: Build Status

Выберите последнюю сборку и проверьте артефакты в разделе Related: 6 published.

Предварительно собранный архив плагина Ghidra находится в ext_ghidra/dist.

Конфигурация ret-sync

ret-sync должен работать «из коробки» для большинства пользователей с типичной установкой: отладчик и дизассемблер(ы) на одном хосте, имена модулей совпадают.

Тем не менее, в некоторых сценариях может потребоваться специальная конфигурация. Для этого расширения и плагины проверяют наличие необязательного глобального конфигурационного файла .sync в домашнем каталоге пользователя. Он должен быть файлом в формате .INI.

Кроме того, плагины IDA и Ghidra также сначала ищут конфигурационный файл в каталоге IDB или проекта (<project>.rep), чтобы разрешить локальные, настройки для конкретного IDB/проекта. Если локальный конфигурационный файл присутствует, глобальный конфигурационный файл игнорируется.

Значения, объявленные в этих конфигурационных файлах, переопределяют значения по умолчанию. Пожалуйста, обратите внимание, что файл .sync не создаётся по умолчанию.

Ниже мы подробно описываем три распространённых сценария, где конфигурационный файл полезен/необходим:

  • Удалённая отладка
  • Несовпадение имён модулей
  • Отсутствие PID

Удалённая отладка: отладчик и дизассемблер находятся на разных хостах

Раздел [INTERFACE] используется для настройки сетевых параметров. Предположим, нужно синхронизировать IDA с отладчиком, работающим внутри виртуальной машины (или просто на другом хосте) — типичный сценарий удалённой отладки ядра.

Просто создайте два файла .sync:

  • один на машине, где установлена IDA, в каталоге IDB:
  • Для Ghidra поместите в домашний каталог, например, "/home/user" или "C:\Users\user".``` [INTERFACE] host=192.168.128.1 port=9234
Это указывает плагину **ret-sync** ``IDA`` прослушивать интерфейс
``192.168.128.1`` с портом ``9234``. Само собой разумеется, что этот
интерфейс должен быть доступен с удаленного хоста или виртуальной машины.

* один на машине, где выполняется отладчик, в домашнем каталоге пользователя:```
[INTERFACE]
host=192.168.128.1
port=9234

Он указывает плагину отладчика ret-sync подключаться к плагину ret-sync IDA настроенному ранее на прослушивание этого интерфейса.

ПРИМЕЧАНИЕ: Здесь необходимо указать реальный IP-адрес, а не использовать 0.0.0.0. Это связано с тем, что переменная используется несколькими источниками как для привязки, так и для подключения, поэтому использование 0.0.0.0 приведет к странным ошибкам.

Имена модулей IDB и отладчика различаются```

[ALIASES] ntoskrnl_vuln.exe=ntkrnlmp.exe

Раздел ``[ALIASES]`` используется для настройки имени, которое используется дизассемблером (IDA/Ghidra) для регистрации модуля в его диспетчере/менеджере программ.

По умолчанию плагины дизассемблера используют имя входного файла. Однако файл мог быть переименован заранее, и его имя больше не соответствует имени реального процесса или загруженного модуля, видимого отладчиком.

Здесь мы просто указываем диспетчеру использовать имя `ntkrnlmp.exe` (настоящее имя) вместо `ntoskrnl_vuln.exe` (имя IDB).

## gdb с интерфейсом отладки Qt Creator

Интерфейс отладки Qt Creator изменяет способ ведения журнала вывода команд gdb. Поскольку это может мешать синхронизации, существует опция для использования необработанного вывода gdb для синхронизации вместо временного файла. В файле конфигурации .sync используйте```
[GENERAL]
use_tmp_logging_file=false

если вы хотите использовать графический интерфейс отладки Qt для целевого устройства.

Встраиваемые устройства и отсутствие /proc/<pid>/maps

В некоторых сценариях, таких как отладка встраиваемых устройств через последовательный порт или «сырой» прошивки в QEMU, gdb не знает о PID и не может получить доступ к /proc/<pid>/maps.

Скачать инструмент