進程注入分析(上)
教程參考自《惡意代碼分析實戰》
程序來自:http://www.nostarch.com/malware.htm
Lab 12-1
本節實驗使用樣本Lab12-01.exe和Lab12-01.dll。
在你運行惡意代碼可執行文件時,會發生什麼?
Lab12-01.exe調用了CreateRemoteThread、WriteProcessMemory等函數,不難想象它進行了進程注入的操作。
查看該病毒的主體代碼,果然是執行了進程注入的惡意操作,注入方式是傳統的DLL注入。
哪個進程會被注入?
病毒會先遍歷進程列表,篩選出名爲explorer.exe的進程。
從此可知惡意代碼被注入到了explorer.exe進程中。
你如何能夠讓惡意代碼停止彈出窗口?
被注入後的explorer.exe,每隔一段時間會彈出一個對話框,查看進程所加載的模塊,果然有一個可疑的Lab12-01.dll,這個dll就是注入的惡意代碼。
要想停止彈出窗口(移除惡意代碼),僅需在Lab12-01.dll模塊上右鍵Unload,即可達到目的。
這個惡意代碼樣本是如何工作的?
這個DLL先創建一個線程,線程函數的地址爲0x10001030。
函數0x10001030的功能如下,循環創建子線程。
每個子線程的功能爲彈出對話框,也就是我們所看到的。
所以,該樣本的總體流程就是,Lab12-01.exe採用DLL注入的方式,將惡意代碼注入到explorer.exe中,使explorer.exe被動加載Lab12-01.dll,最後執行定時彈出對話框的惡意操作。有關DLL注入的原理,見:https://blog.csdn.net/m0_37552052/article/details/79198070。