
Time Travel Debugging plugin per IDA
⚠️ Attenzione utenti IDA 8: l'uso di ttddbg con IDA 8 richiede per il momento un workaround, vedere Problemi noti
Questo plugin aggiunge un nuovo debugger a IDA che supporta il caricamento di tracce Time Travel Debugging generate usando WinDBG Preview.

Questo plugin supporta sia tracce x86 che x64 e, di conseguenza, IDA e IDA64.
L'installazione del plugin può essere effettuata usando l'installer dalla pagina delle release. L'installer installerà automaticamente le dipendenze richieste, a condizione che tu abbia installata una copia di WinDBG Preview.
Una volta installato, puoi usare il plugin selezionando il debugger ttddbg nell'interfaccia di IDA e specificando il tuo file *.run come "Application". Per aiuto sulla generazione di un file .run, vedi HOWTO_TIME_TRAVEL.md.


| Icon | Action |
|---|---|
![]() | Vai al breakpoint precedente |
![]() | Simula un'esecuzione completa del programma |
![]() | Passo indietro singolo (RIP - un'istruzione) |
![]() | Gestisci la timeline degli eventi interessanti (Thread Creati/Terminati, Modulo Caricato/Scaricato, Eccezioni, Personalizzati) |
![]() | Gestisci le funzioni attualmente tracciate |
![]() | Visualizza gli eventi di traccia |
Dalla versione 1.1.0, ttddbg supporta una nuova funzionalità che chiamiamo "function tracing". Mentre ci si trova nella vista di debug, è possibile contrassegnare le funzioni per il tracciamento facendo clic con il tasto destro su di esse nelle interfacce Functions o Module. Una volta che una funzione è tracciata, ogni chiamata a questa funzione e ogni istruzione return verranno registrate nella nuova finestra Trace events.
Usando le informazioni sulle funzioni derivanti dal tuo lavoro di reverse engineering, ttddbg estrae anche i parametri passati alla funzione e il suo valore di ritorno. I simboli vengono automaticamente stampati in modo leggibile in base alle informazioni disponibili in IDA, come i valori degli enum.
L'uso di IDA Pro 8.2 con questo plugin provoca un crash all'ingresso nel debugger. Questo problema sembra essere causato da un'incompatibilità tra questo plugin e il plugin picture_search, che è nuovo in IDA 8. La rimozione di picture_search.dll e picture_search64.dll dalla cartella plugins risolve temporaneamente il problema. Il problema è stato segnalato a Hex-Rays.
Prerequisiti:
TTDReplay.dll (di solito in C:\Program Files\WindowsApps\[WinDBG folder]\amd64\ttd\)TTDReplayCPU.dll (di solito in C:\Program Files\WindowsApps\[WinDBG folder]\amd64\ttd\)E lascia che CMAKE faccia la sua magia!
$ 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
Per creare una soluzione di sviluppo:
$ 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
Un saluto a commial per il suo lavoro su ttd-bindings!