进程注入分析(上)
教程参考自《恶意代码分析实战》
程序来自: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。