在窗口过程WndProc中由SetTimer(hwnd,TIMER,5000,0)函数调用时钟映射WM_TIMER,在它里面定义了CopyToSysAndSet(HWND hwnd),创建一个aaaaa.exe进程。在SetTimer()函数里有一个参数值为5000,意为5000ms,即每隔5s调用一次WM_TIMER。故可以每隔5秒创建一个aaaaa.exe进程。各函数之间的关系图1所示。

图1 各函数之间的关系
这是一个Windows应用程序,首先得在WinMain里创建窗口,但是本程序不需要显示窗口,所以在程序中对窗口属性作了些设置,没有让窗口显示出来。属性设置如下:
hwnd = CreateWindow (szAppName, "U盘AutoRun病毒示例",
WS_DISABLED, //窗口样式
0,0, //窗口最初的x位置、y位置
0,0, //窗口最初的x大小、y大小
NULL, NULL, hInstance, NULL);
hwnd是窗口句柄,窗口样式设置为WS_DISABLED,不可见。
窗口过程WndProc包括四个消息映射:WM_CREATE(窗口创建产生的消息);WM_TIMER(时钟映射,在WM_CREATE里已经定义了SetTimer来启动它)主要对C盘进行操作,在C盘每隔5秒钟就会创建一个进程aaaaa.exe,直至点击“确定”退出;WM_DEVICECHANGE(检测U盘插入拔出的消息映射)主要对U盘进行操作,首先读U盘盘符,然后在U盘创建autorun.inf和bbbbb.exe进程;WM_DESTROY(窗口关闭产生的消息)。
aaaaa.exe进程、autorun.inf和bbbbb.exe进程的作用及关系。其实aaaaa.exe和bbbbb.exe都是U_security2.exe的拷贝,它们只是文件名不一样而已。autorun.inf和bbbbb.exe是写在U盘里的,autorun.inf是病毒的发起者,通过调用bbbbb.exe实现病毒入侵,aaaaa.exe进程是病毒入侵的表现,它会不停地占用主机器的内存。
|