1.5.1 給函數設置斷點
通過組譯指令來洞察程式的行為:
- 首先用OllyDbg打開sample_mal.exe,然後在反組譯視窗中點擊右鍵,選擇Search for >> Name in all moduels。
- 接下來,從顯示出的函數列表中找到類型為Export的RegSetValueExA函數。直接輸入regsetva...即可搜尋。
- 雙擊函數名就會跳轉到該函數的開頭,接下來我們在下列函數的位置處設置斷點。
- RegSetValueExA
- RegCloseKey
- RegCreateKeyExA
- CopyFileA
- 上面的目標函數都各有兩種類型:一種是Export,另一種是Import。請在類型為Export的函數上雙擊並設置斷點。
- RegSetValueExA、RegCloseKey、RegCreateKeyExA位於ADVAPI32模組中,而CopyFileA位於kernal32模組中。
- 雙擊函數名就會跳轉到該函數的開頭,接下來我們在下列函數的位置處設置斷點。
按下F9執行sample_mal.exe,程式會在斷點處暫停執行。
- 按Ctrl+F9(執行至Return處)或者按Alt+F9(執行至用戶代碼處),程式會繼續執行到函數返回的地方。請看一下呼叫各函數附近的代碼,就能夠看明白程式是如何進行複製檔案、寫入登錄檔等操作的了。