⚠️ 注意:使用 IDA 8 的用户,在将 ttddbg 与 IDA 8 配合使用时目前需要一种变通方法,请参阅已知问题
此插件为 IDA 添加了一个新的调试器,支持加载使用 WinDBG Preview 生成的时间旅行调试跟踪记录。

此插件支持 x86 和 x64 跟踪记录,并由此支持 IDA 和 IDA64。
可以使用发布页面上的安装程序来安装此插件。只要你已安装 WinDBG Preview,安装程序将自动安装所需的依赖项。
安装后,您可以在 IDA 界面中选择 ttddbg 调试器,并将您的 *.run 文件指定为"应用程序"来使用此插件。有关生成 .run 文件的帮助,请参阅 HOWTO_TIME_TRAVEL.md。


| Icon | Action |
|---|---|
![]() | 转到上一个断点 |
![]() | 模拟程序的完整运行 |
![]() | 向后单步执行(RIP - 一条指令) |
![]() | 管理感兴趣事件的时间线(线程创建/终止、模块加载/卸载、异常、自定义) |
![]() | 管理当前正在跟踪的函数 |
![]() | 查看跟踪事件 |
自 1.1.0 版本起,ttddbg 支持一项我们称之为"函数跟踪"的新功能。在调试视图中,可以通过在 Functions 或 Module 界面中右键单击函数来标记要跟踪的函数。一旦函数被标记为跟踪,对该函数的任何调用以及任何 return 语句都将记录在新的 Trace events 窗口中。
利用您在逆向工程工作中获得的函数信息,ttddbg 还会提取传递给函数的参数及其返回值。符号会根据 IDA 中可用的信息(例如枚举值)自动进行美化打印。
picture_search 插件之间的不兼容引起的,picture_search 是 IDA 8 中的新插件。从 plugins 文件夹中暂时移除 picture_search.dll 和 picture_search64.dll 可以解决此问题。该问题已上报给 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 上的工作!