
Time Travel Debugging IDA plugin
⚠️ Внимание, пользователи IDA 8: использование ttddbg с IDA 8 в настоящее время требует обходного решения, см. Известные проблемы
Этот плагин добавляет в IDA новый отладчик, поддерживающий загрузку трасс Time Travel Debugging, созданных с помощью WinDBG Preview.

Плагин поддерживает трассы x86 и x64, а также, соответственно, IDA и IDA64.
Установить плагин можно с помощью установщика со страницы релизов. Установщик автоматически установит необходимые зависимости, если у вас установлена копия WinDBG Preview.
После установки вы можете использовать плагин, выбрав отладчик ttddbg в интерфейсе IDA и указав ваш файл *.run в качестве «Application». Справку по созданию файла .run см. в HOWTO_TIME_TRAVEL.md.


Начиная с версии 1.1.0, ttddbg поддерживает новую функцию, которую мы называем «трассировка функций». В режиме отладки можно пометить функции для трассировки, щёлкнув по ним правой кнопкой мыши в интерфейсах Functions или Module. После того как функция помечена для трассировки, все вызовы этой функции и любой оператор return будут записаны в новом окне Trace events.
Используя информацию о функциях из вашей работы по реверс-инжинирингу, ttddbg также извлекает параметры, переданные функции, и её возвращаемое значение. Символы автоматически выводятся в удобочитаемом виде на основе информации, доступной в IDA, например значений перечислений.
picture_search, который появился в IDA 8. Удаление picture_search.dll и picture_search64.dll из папки plugins временно устраняет проблему. О проблеме сообщено в Hex-Rays.Предварительные требования:
TTDReplay.dll (обычно в C:\Program Files\WindowsApps\[WinDBG folder]\amd64\ttd\)TTDReplayCPU.dll (обычно в C:\Program Files\WindowsApps\[WinDBG folder]\amd64\ttd\)А дальше предоставьте CMAKE творить чудеса!
$ git clone [email protected]:airbus-cert/ttddbg.git --recursive
$ mkdir build
$ cd build
$ cmake ..\ttddbg -DIDA_SDK_SOURCE_DIR=[PATH_TO_IDA_SDK_ROOT_FOLDER] -DCPACK_PACKAGE_INSTALL_DIRECTORY="IDA Pro 7.7"
$ cmake --build . --target package --config release
Чтобы создать решение для разработки:
$ git clone [email protected]:airbus-cert/ttddbg.git --recursive
$ mkdir build
$ cd build
$ cmake ..\ttddbg -DIDA_SDK_SOURCE_DIR=[PATH_TO_IDA_SDK_ROOT_FOLDER] -DBUILD_TESTS=ON
Спасибо commial за его работу над ttd-bindings!
| Icon | Action |
|---|
![]() | Перейти к предыдущей точке останова |
![]() | Симулировать полный запуск программы |
![]() | Шаг назад (RIP - одна инструкция) |
![]() | Управлять временной шкалой интересных событий (Создание/Завершение потоков, Загрузка/Выгрузка модулей, Исключения, Пользовательские) |
![]() | Управлять текущими трассируемыми функциями |
![]() | Просматривать события трассировки |