-
x64dbg instruction tracingComputer/Program Analysis 2017. 9. 5. 11:20
x64dbg는 ollydbg 같이 instruction tracing을 위한 독립된 창이 없고 로그 창에 tracing 된다.
그리고 ui 도 메뉴에서 하지 못하고 커맨드 창에서 해야 한다.
검색해 보면
https://forum.tuts4you.com/topic/39374-tracing/
에 설명이 자세히 나와 있다.
위를 요약해서 적용해 보았다.
커맨드 창에 다음과 같이 하면 동작 한다.
TraceSetLogFile "C:\Temp\x64dbgTrace.log”TraceSetLog "{p:cip} {i:cip}"tibt rip==7ff6ac01290cTraceSetLogFile은 파일에 출력하기 위해 지정한다. 이것을 하지 않으면 Log 창에 출력 된다.
TraceSetLog는 로그 출력 형식이다. 주소와 명령어를 출력 한다. 이 내용을 바꾸면 레지스터 값도 출력 할 수 있다.
예를 들어
rax: {rax} rcx: {rcx} 를 넣으면 레지스터 값이 나오고,
[rsp+0x24] = {a:[rsp+0x24]} 같이 해서 메모리 레퍼런스까지 할 수 있는 것이다.
tibt는 TraceIntoBeyondRecord의 약자로 다음 조건까지 Tracing을 하라는 것이다. 여기서는 특정 주소까지 Tracing을 하라고 한 것이다. 이 명령을 실행하면 현재 주소부터 지정한 주소까지 step into로 실행하며 tracing을 기록한다.
tibt의 두 번째 인자로 명령어 개수를 줄 수도 있다. 그런데 20개를 주었는데 32개 실행 했다.
이런 내용들은 Help 파일에 다 나와 있으므로 참조 하면 된다.