
Time Travel Debugging IDA plugin
⚠️ IDA 8 사용자 주의: 현재 IDA 8에서 ttddbg를 사용하려면 임시 해결 방법이 필요합니다. 알려진 문제를 참조하세요.
이 플러그인은 WinDBG Preview로 생성된 Time Travel Debugging 트레이스의 로드를 지원하는 새 디버거를 IDA에 추가합니다.

이 플러그인은 x86 및 x64 트레이스를 모두 지원하며, 그에 따라 IDA 및 IDA64도 지원합니다.
플러그인 설치는 릴리스 페이지의 설치 프로그램을 사용하여 수행할 수 있습니다. 설치 프로그램은 WinDBG Preview가 설치되어 있으면 필요한 종속성을 자동으로 설치합니다.
설치가 완료되면 IDA 인터페이스에서 ttddbg 디버거를 선택하고 *.run 파일을 "Application"으로 지정하여 플러그인을 사용할 수 있습니다. .run 파일 생성에 대한 도움말은 HOWTO_TIME_TRAVEL.md를 참조하세요.


버전 1.1.0부터 ttddbg는 "함수 추적"이라는 새로운 기능을 지원합니다. 디버깅 뷰에서 Functions 또는 Module 인터페이스에서 함수를 마우스 오른쪽 버튼으로 클릭하여 추적 대상으로 표시할 수 있습니다. 함수가 추적되면 해당 함수에 대한 모든 호출과 모든 return 문이 새 Trace events 창에 기록됩니다.
ttddbg는 리버스 엔지니어링 작업에서 얻은 함수 정보를 사용하여 함수에 전달된 매개변수와 반환값도 추출합니다. 심볼은 IDA에서 사용 가능한 정보(예: enum 값)를 기반으로 자동으로 예쁘게 출력됩니다.
picture_search 플러그인과 이 플러그인 간의 비호환성 때문에 발생하는 것으로 보입니다. 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
ttd-bindings 작업에 대해 commial에게 감사드립니다!
| 아이콘 | 동작 |
|---|
![]() | 이전 중단점으로 이동 |
![]() | 프로그램의 전체 실행 시뮬레이션 |
![]() | 역방향 단일 스텝 (RIP - 명령어 하나) |
![]() | 관심 이벤트의 타임라인 관리 (스레드 생성/종료, 모듈 로드/언로드, 예외, 사용자 정의) |
![]() | 현재 추적 중인 함수 관리 |
![]() | 트레이스 이벤트 보기 |