1.3.4 對反組譯原始碼進行分析
- 現在來仔細看看00401000之後的程式邏輯。
- 我們發現程式依序呼叫了GetModuleFileNameW、SHGetFolderPathW、lstrcatW、CopyFileW這幾個函數。
- 首先在00401000的位置設置斷點:在00401000所在的行按下F2鍵,或右鍵 >> Breadpoint >> Toggle,此時地址00401000的背景會變成紅色。
- 接下來按F9鍵,或在Menu >> Debug >> Run。此時OllyDbg會啟動wsample01b.exe,當到達斷點所在的00401000位置時,程式會暫停執行。
- 接下來我們可以通過單步執行,逐條執行程式中的指令。F7表示單步跳入,F8表示單步跳出。
- 當程式執行到00401062的地方,也就是調用CopyFileW之前的位置,通過暫存器視窗和堆疊視窗,可以看到要複製的檔案來源和目標路徑。
- 這時若再次按下F8,程式就會呼叫CopyFileW函數,啟動資料夾則會出現wsample01b.exe檔案。
- 通過使用除錯器,我們可以逐一執行程式中的指令,從而搞清楚在哪個時間點執行了怎樣的操作,這是動態分析的一個優點。