2017年12月11日 星期一

x64dbg - Memory Map, Symbols, References, Command

-Memory Map

在上方的欄位點選 Memory Map 就會看到整個執行檔 (包含動態連結庫 (Dynamic-link library)) 的記憶體配置 (text, data, rdata, bss ......)。

C:\Users\Sin\AppData\Local\Temp\Image.png

-Symbols

在上方的欄位點選 Symbols ,可以看到程式執行的 Base Address 、路徑和載入哪些動態連結庫。

C:\Users\Sin\AppData\Local\Temp\Image.png

-Handles

在上方的欄位點選 Handles,然後要記得按 F5 更新一下 (沒按會是空的),這裡存放 I/O 開啟的 Handle 的值,再追 Write Read API 時,還蠻好用的。

C:\Users\Sin\AppData\Local\Temp\Image.png

-References

如果在 API 或某個程式碼調用的字串下中斷點,然後想要知道這個函式 (Function)是被誰調用的,可以透過 References 來找到。在 0x401290的位置按右鍵 -> Find references to -> Selected Address (es)。

C:\Users\Sin\AppData\Local\Temp\Image.png

這時會跳出新的視窗,並且可看到是0x4011E2調用0x401290,可以按下 Enter 就會跳到它執行的程式碼。

C:\Users\Sin\AppData\Local\Temp\Image.png

-Command

幾乎每個 Debugger 都有自己的 Command 的功能,因為這樣可以更靈活的操作 Debugger,例如直接對 API 下中斷點,或者顯示某個位址的記憶體的內容等等。

C:\Users\Sin\AppData\Local\Temp\Image.png