Автор
|
Тема: как скрыть прогу из "списка процессов" (в Far ` e по F11 открываеться и похожий есть
|
TeZiS |
опубликован 14-06-2001 18:48 MSK
Я точьно знаю что мона но точьно знаю что не знаю как :)
|
Kosha
|
опубликован 15-06-2001 01:19 MSK
Регистеришь свою прогу как сервисный процесс. Там много тонкостей (если троян пишешь), посмотри сырцы BO2K, если нет, скажи, кину. |
Del
|
опубликован 18-06-2001 13:58 MSK
Данный код проверялся на Делфях и пахал как зверь, думаю на сях тоже без проблем заработает.Объявляешь функцию procedure RegisterServiceProcess;external 'kernel32.dll' name 'RegisterServiceProcess'; Описуешь функцию, которая будет скрывать прогу (помести куда-нибудь в файл проэкта - шоб прога пораньше пряталась). procedure Hide;assembler; asm push 1 push 0 call RegisterServiceProcess; end; Ну вызывать понятное дело Hide, эт "обычная функция :-) Перевести на С++ думаю сможешь - ну если не сможешь бросай ты своего троянца и садись читать умные книги (и хелп). |
Molibden
|
опубликован 18-06-2001 17:43 MSK
Насколько знаю, это не всегда спасает. Во всяком случае, прога, спрятанная таким образом, видна, если заглянуть Пуск-Программы-Стандартные-Служебные-Сведения о системе, то всё там видно. Кто-нить знает способ спрятаться от такого просмотра? |
Demo_S
|
опубликован 19-06-2001 20:02 MSK
Этот способ RegisterServiceProicess не помогает с фаром, по крайней мере в вынь 98.Думаю полезно таки будет посмотреть сурсы bo2k они там извратились, но вроде все понятно. если нт - то запускают себя как сервисный процесс от какой-то другой проги (типа это ее процесс) если вынь 98 они находят где в памяти лежит копия kernel32.dll и патчат ее таким образом, чтобы этот процесс (и только он) не был никак виден. |
GorluM
|
опубликован 20-06-2001 05:00 MSK
Хва мучаться, просто регьте системный процесс и всё... Вот тебе пример для bcb5.0, может пригодитсяtypedef DWORD (WINAPI *PREGISTERSERVICEPROCESS)(DWORD,DWORD); bool RSP( double p1, double p2 ) { PREGISTERSERVICEPROCESS rsp; HINSTANCE hK32; bool Rc=false; hK32=GetModuleHandle("kernel32.dll"); if(hK32!=NULL) {rsp=(PREGISTERSERVICEPROCESS) GetProcAddress(hK32, "RegisterServiceProcess"); if(rsp!=NULL) {Rc=true; rsp(p1,p2);} FreeLibrary(hK32);} return Rc; } WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { HWND hWnd; hWnd = FindWindowEx(NULL,NULL,NULL,"Kernel32.dll"); if (hWnd!=NULL) {return 0;} // это чтобы не запускалось повтоpно if (!RSP(NULL,1)) {return 0;} try { Application->Initialize(); Application->Title = "Kernel32.dll"; Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0; } |