
Time Travel Debugging IDA-Plugin
⚠️ Achtung IDA-8-Benutzer: Die Verwendung von ttddbg mit IDA 8 erfordert vorerst einen Workaround, siehe Bekannte Probleme
Dieses Plugin fügt IDA einen neuen Debugger hinzu, der das Laden von Time Travel Debugging-Traces unterstützt, die mit WinDBG Preview erzeugt wurden.

Dieses Plugin unterstützt sowohl x86- als auch x64-Traces und damit auch IDA und IDA64.
Das Plugin kann mit dem Installer von der Release-Seite installiert werden. Der Installer installiert automatisch die erforderlichen Abhängigkeiten, sofern Sie eine Kopie von WinDBG Preview installiert haben.
Nach der Installation können Sie das Plugin verwenden, indem Sie in der IDA-Oberfläche den Debugger ttddbg auswählen und Ihre *.run-Datei als „Application“ angeben. Hilfe zum Generieren einer .run-Datei finden Sie in HOWTO_TIME_TRAVEL.md.


Seit Version 1.1.0 unterstützt ttddbg ein neues Feature, das wir „Funktionstracing“ nennen. In der Debugging-Ansicht können Sie Funktionen zum Tracing markieren, indem Sie sie in den Functions- oder Module-Schnittstellen mit der rechten Maustaste anklicken. Sobald eine Funktion getraced wird, werden jeder Aufruf dieser Funktion sowie jede return-Anweisung im neuen Fenster Trace events aufgezeichnet.
Anhand der Funktionsinformationen aus Ihrer Reverse-Engineering-Arbeit extrahiert ttddbg auch die an die Funktion übergebenen Parameter sowie deren Rückgabewert. Symbole werden auf der Grundlage der in IDA verfügbaren Informationen, wie z. B. Enum-Werten, automatisch lesbar formatiert („pretty-printed“).
picture_search verursacht zu werden, das in IDA 8 neu ist. Das vorübergehende Entfernen von picture_search.dll und picture_search64.dll aus dem Ordner plugins behebt dieses Problem. Das Problem wurde an Hex-Rays gemeldet.Voraussetzungen:
TTDReplay.dll (normalerweise in C:\Program Files\WindowsApps\[WinDBG folder]\amd64\ttd\)TTDReplayCPU.dll (normalerweise in C:\Program Files\WindowsApps\[WinDBG folder]\amd64\ttd\)Und dann lassen Sie CMAKE seine Magie wirken!
$ 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
So erstellen Sie eine Dev-Solution:
$ 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
Grüße an commial für seine Arbeit an ttd-bindings!
| Symbol | Aktion |
|---|
![]() | Zum vorherigen Haltepunkt gehen |
![]() | Einen vollständigen Lauf des Programms simulieren |
![]() | Einzelschritt rückwärts (RIP - eine Anweisung) |
![]() | Die Zeitleiste interessanter Ereignisse verwalten (Threads erstellt/beendet, Modul geladen/entladen, Ausnahmen, Benutzerdefiniert) |
![]() | Die derzeit getraceten Funktionen verwalten |
![]() | Trace-Ereignisse anzeigen |