问题
1、在你运行恶意代码可执行文件时,会发生什么?
程序弹出了一个对话框,而这个对话框每分钟都会出现一次。
2、哪个进程会被注入?
这段程序一开始是在解析psapi.dll中的用于枚举进程的函数。连续使用了三次LoadLibrary以及GetProcAddress的组合来解析这三个函数。并且将获取的函数地址分别保存在dword_408714、dword_40870C以及dword_408710中。
之后程序在0x004011BC的位置调用了myEnumProcess这个函数,它能够获取系统中每一个进程对象的PID值。接下来是一个循环操作,对枚举出来的PID值进行分析。
sub_401000函数是在查找进程中是否包含有explorer.exe这个进程。一旦这个进程存在,那么sub_401000这个函数就会返回1,并且main函数就会调用OpenProcess来打开一个指向它的句柄。如果恶意程序能够成功获得explorer.exe这个进程的句柄,那么程序就会利用这个句柄来操纵这个进程:
获取句柄后,通过VirtualAllocEx这个函数在explorer.exe这个进程中分配空间,分配成功的话然后利用函数WriteProcessMemory来向explorer.exe中写入数据,程序使用GetModuleHandle和GetProcAddress来获取kernel32.dll中的LoadLibraryA函数的地址。并将这个地址写入lpStartAddress中,并成为了CreateRemoteThread函数的参数,这样就可以强制explorer.exe调用LoadLibraryA这个函数。
这个恶意程序执行了DLL注入的操作,将Lab12-01.dll注入到了explorer.exe进程里面。
3、你如何能够让恶意代码停止弹出窗口?
重启计算机或者结束explorer.exe这个进程。
4、这个恶意代码样本是如何工作的?
通过对Lab12-01.dll中sub_10001030这个函数进行分析,可以看到这个程序一开始会创建线程,这个线程的功能就是调用MessageBoxA这个函数,并且显示当前这个程序已经运行了多少分钟。