Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Visual C++ / MFC / WTL > CTRL+ALT+DELETE |
Автор: NewGye 31.01.06, 18:35 |
Доброго времени суток! Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE? |
Автор: NewGye 31.01.06, 18:43 |
Ну т.е. чтоб ее не было видно в списке процессов в диспетчере задач Windows? Так точнее будет. |
Автор: A1ex_D 31.01.06, 19:49 |
Сам такое искал и то, что находил, работало вроде только для Win 9X, ME. Можно попробовать таким способом (только для NT-систем): 1) Найти хэндл TaskManager'a(по заголовку "Диспетчер задач Windows" в русской винде, а в английской, наверное "Task Manager Windows"). 2) Найти хэндл ListView со списком процессов 3) Найти в ListView например по имени наш процесс и удалять его постоянно из списка(например в таймере). Как раз статья про это есть (правда там на Delphi, но переделать на Си недолго Вот линк на статью: http://www.ddsoft.hoha.ru/notes/lvmgetitem/ |
Автор: B.V. 31.01.06, 20:24 |
Достаточно назваться Winlogon |
Автор: NewGye 01.02.06, 07:55 |
а можно поподробнее, если не сложно |
Автор: B.V. 01.02.06, 13:26 |
Это не выход - это вариант решения. Стандартный менеджер задач не завершит процесс с именем winlogon. |
Автор: nastenka 01.02.06, 14:11 |
Цитата Доброго времени суток! Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE? вирус пишите? |
Автор: Revenge_Angel 01.02.06, 17:02 |
b]A1ex_D[/b]Я тоже находит под Win 9X/ME, ну вот под Win 2000/Xp сложнее! nastenka, ну почему сразу вирус... Мне эта тема тоже интересна! в личных (не корыстных) целях.. |
Автор: LuckLess 01.02.06, 17:06 |
перехватываешь ZwQuerrySystemInformation() и NtQuerrySystemInformation() |
Автор: NewGye 02.02.06, 08:02 |
Цитата nastenka @ Цитата Доброго времени суток! Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE? вирус пишите? Нет это не вирус, а прога для борьбы с узерами которые любят играть в игрушки на рабочем месте, и надо чтоб юзер не мог выгрузить мою прогу) И всетаки я чета не могу разобраться, если у кого есть пример как это сделать выложите пажалуста)) |
Автор: LuckLess 02.02.06, 08:06 |
Цитата NewGye @ Нет это не вирус, а прога для борьбы с узерами которые любят играть в игрушки на рабочем месте, и надо чтоб юзер не мог выгрузить мою прогу) напиши сервис. или запускай прогу под учеткой админа и в АКЛ пропиши что бзерам ее нельзя мочить |
Автор: NewGye 02.02.06, 08:15 |
А если этот юзер другой админ, ну т.е. у некоторых юзеров есть привелегии админа, тогда как быть, ведь они могут выгружать приложения запущенные другим админом. Выход - убрать из списка процессов в диспетчере задач |
Автор: sprut_nsk 02.02.06, 08:18 |
Да кстати интересная тема, мне бы тож хотелось узнать как это сделать мона? |
Автор: LuckLess 02.02.06, 09:10 |
это не вариант. т.к. если админ хоть намного чеото понимает , то он все равно твою прогу найдет и убъет. я например такой типа task manager написал.. берешь этому админу вырубаешь TAKE OWNERSHIP привилегию , и он ее убить не сможет уже никак. к томуже , думаю , стандартный таск манагер не умеет использовать take ownership и другой админ прогу все равно загрыть не сможет. ну если очень хочется , то как я говорил перехватывай ZwQuerrySeystemInformation() и NtQuerrySystemInformation() |
Автор: NewGye 02.02.06, 18:40 |
Цитата LuckLess @ это не вариант. т.к. если админ хоть намного чеото понимает , то он все равно твою прогу найдет и убъет. я например такой типа task manager написал.. берешь этому админу вырубаешь TAKE OWNERSHIP привилегию , и он ее убить не сможет уже никак. к томуже , думаю , стандартный таск манагер не умеет использовать take ownership и другой админ прогу все равно загрыть не сможет. ну если очень хочется , то как я говорил перехватывай ZwQuerrySeystemInformation() и NtQuerrySystemInformation() А если не очень сложно, расскажите тупому ламеру, как я могу перехватить ZwQuerrySeystemInformation() и NtQuerrySystemInformation()? |
Автор: sprut_nsk 02.02.06, 19:03 |
Цитата A1ex_D @ Сам такое искал и то, что находил, работало вроде только для Win 9X, ME. Можно попробовать таким способом (только для NT-систем): 1) Найти хэндл TaskManager'a(по заголовку "Диспетчер задач Windows" в русской винде, а в английской, наверное "Task Manager Windows"). 2) Найти хэндл ListView со списком процессов 3) Найти в ListView например по имени наш процесс и удалять его постоянно из списка(например в таймере). Как раз статья про это есть (правда там на Delphi, но переделать на Си недолго Вот линк на статью: http://www.ddsoft.hoha.ru/notes/lvmgetitem/ Ну вот кароче решил памоч бедному админу, и переложил код на С++, но если честно то это балавство, прогу твою так скрывать не очень хорошо, просто если она находится вверху списка, сам список мигает(ну если эту функцию вызывать циклически).... Вот код: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> bool func(){ if(HWND hWnd=::FindWindow("#32770", "Диспетчер задач Windows")){ HWND hList = ::FindWindowEx(hWnd, 0, "#32770", ""); hList=::FindWindowEx(hList, 0, "SysListView32", NULL); int vItemCount = ::SendMessage(hList, LVM_GETITEMCOUNT, 0, 0); char *buf=new char[100]; char vBuffer[255]; DWORD vProcessId; SIZE_T vNumberOfBytesRead=255; HANDLE vProcess; LVITEM vItem; ::GetWindowThreadProcessId(hList, &vProcessId); vProcess = ::OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, false, vProcessId); LPVOID vPointer; CString st; vPointer = ::VirtualAllocEx(vProcess, NULL, 4096, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); for(int i=0;i<vItemCount;i++){ vItem.mask=LVIF_TEXT; vItem.iItem=i; vItem.iSubItem=0; vItem.cchTextMax=sizeof(vBuffer); vItem.pszText=LPTSTR(SIZE_T(vPointer) + sizeof(LVITEM)); ::WriteProcessMemory(vProcess, vPointer, &vItem, sizeof(LVITEM), &vNumberOfBytesRead); ::SendMessage(hList,LVM_GETITEM,i,LPARAM(vPointer)); ::ReadProcessMemory(vProcess,LPVOID(SIZE_T(vPointer) + sizeof(LVITEM)),&vBuffer[0],sizeof(vBuffer),&vNumberOfBytesRead); st=vBuffer; if (st=="Твоя_прога.exe"){ ::SendMessage(hList,LVM_DELETEITEM,i,0); } } VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE); // освобождаем память CloseHandle(vProcess); // закрываем дескриптор доступа к процессу return true; } return false; } |
Автор: Revenge_Angel 05.02.06, 06:22 |
Вот еще есть что то: http://www.hackzona.ru/hz.php?name=News&file=article&sid=4718 А это наш любимый гугл: http://www.google.com/search?hs=WrH&hl=ru&client=opera&rls=ru&q=%22type+SYSTEM_INFORMATION_CLASS%22&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr= |