常常聽說有病毒關閉殺毒軟件,是枚舉窗口標題來實現的,那麼內幕是什麼呢?
其實只需要數10行代碼就可以了。
VC++6.0建立Win32 APPlication,復制下面的代碼……
#include <Windows.h>
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
EnumWindows(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); //不要忘了
}
病毒當然比這個多點代碼,它先定義一個數組,然後再弄個判斷函數,判斷窗口標題是否和這個數組裡面的匹配,
如果有一個匹配則返回真否則返回假,然後如果真,則關閉……