常常听说有病毒关闭杀毒软件,是枚举窗口标题来实现的,那么内幕是什么呢?
其实只需要数10行代码就可以了。
VC++6.0建立Win32 APPlication,复制下面的代码……
双击代码全选1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <windows.h>
BOOL CALLBACK Enum<a href= "\"http://windows./\"" target= "\"_blank\"" >Windows</a>Proc( HWND hwnd, LPARAM lParam); int APIENTRY WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
Enum<a href= "\"http://windows./\"" target= "\"_blank\"" >Windows</a>(EnumWindowsProc, 0); //枚举所有窗口 return 0;
}
BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam)
{
char wtitle[512];
GetWindowText(hwnd, wtitle, sizeof (wtitle));
if ( strstr (wtitle , "记事本" ))
{
::SendMessage(hwnd, WM_CLOSE, 0, 0);
}
return ( true );
}
|
病毒当然比这个多点代码,它先定义一个数组,然后再弄个判断函数,判断窗口标题是否和这个数组里面的匹配,
如果有一个匹配则返回真否则返回假,然后如果真,则关闭……