一、目的
- 找到main函數
- 找到調用的MessageBoxA函數
測試源碼
#include <iostream>
#include <windows.h>int main() {MessageBoxA(NULL, "Hellow World", "Title", MB_OK);return 1;
}
二、快捷鍵
指令 | 快捷鍵 | 說明 |
---|---|---|
Restart | Ctrl+F2 | 重新開始調試 |
Step Into | F7 | 向下執行,如果有函數CALL,將進入函數內部 |
Step Over | F8 | 向下執行,如果有函數CALL,僅執行函數,不進入內部 |
Execute till Return | Ctrl+F9 | 一直在函數代碼內部運行,直到遇到RETN命令 |
三、開始調試(代碼執行法)
EIP 停留在 00A01023
這里,
屬于009F1000這個代碼段,我們可以繼續使用快捷鍵F8
,直到彈出MessageBox。
在執行到00A02003的時候,彈出了MessageBox
我們可以使用F7
來進入這個函數看看,接著一直按F8
來判斷MessageBox的位置,如果是CALL就繼續F7
進入函數,直到遇到類似調用windows API的操作出現。
如圖,通過這種排查法很快就找到了,其中紅色框圈起來的是MessageBoxA的參數(反著的)。