Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.59.122.162] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток!
Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE? |
Сообщ.
#2
,
|
|
|
Ну т.е. чтоб ее не было видно в списке процессов в диспетчере задач Windows? Так точнее будет.
|
Сообщ.
#3
,
|
|
|
Сам такое искал и то, что находил, работало вроде только для Win 9X, ME.
Можно попробовать таким способом (только для NT-систем): 1) Найти хэндл TaskManager'a(по заголовку "Диспетчер задач Windows" в русской винде, а в английской, наверное "Task Manager Windows"). 2) Найти хэндл ListView со списком процессов 3) Найти в ListView например по имени наш процесс и удалять его постоянно из списка(например в таймере). Как раз статья про это есть (правда там на Delphi, но переделать на Си недолго Вот линк на статью: http://www.ddsoft.hoha.ru/notes/lvmgetitem/ |
Сообщ.
#4
,
|
|
|
Достаточно назваться Winlogon
|
Сообщ.
#5
,
|
|
|
Цитата B.V. @ Достаточно назваться Winlogon а можно поподробнее, если не сложно |
Сообщ.
#6
,
|
|
|
Это не выход - это вариант решения.
Стандартный менеджер задач не завершит процесс с именем winlogon. |
Сообщ.
#7
,
|
|
|
Цитата Доброго времени суток! Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE? вирус пишите? |
Сообщ.
#8
,
|
|
|
b]A1ex_D[/b]Я тоже находит под Win 9X/ME, ну вот под Win 2000/Xp сложнее!
nastenka, ну почему сразу вирус... Мне эта тема тоже интересна! в личных (не корыстных) целях.. |
Сообщ.
#9
,
|
|
|
перехватываешь ZwQuerrySystemInformation() и NtQuerrySystemInformation()
|
Сообщ.
#10
,
|
|
|
Цитата nastenka @ Цитата Доброго времени суток! Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE? вирус пишите? Нет это не вирус, а прога для борьбы с узерами которые любят играть в игрушки на рабочем месте, и надо чтоб юзер не мог выгрузить мою прогу) И всетаки я чета не могу разобраться, если у кого есть пример как это сделать выложите пажалуста)) |
Сообщ.
#11
,
|
|
|
Цитата NewGye @ Нет это не вирус, а прога для борьбы с узерами которые любят играть в игрушки на рабочем месте, и надо чтоб юзер не мог выгрузить мою прогу) напиши сервис. или запускай прогу под учеткой админа и в АКЛ пропиши что бзерам ее нельзя мочить |
Сообщ.
#12
,
|
|
|
Цитата LuckLess @ или запускай прогу под учеткой админа и в АКЛ пропиши что бзерам ее нельзя мочить А если этот юзер другой админ, ну т.е. у некоторых юзеров есть привелегии админа, тогда как быть, ведь они могут выгружать приложения запущенные другим админом. Выход - убрать из списка процессов в диспетчере задач |
Сообщ.
#13
,
|
|
|
Да кстати интересная тема, мне бы тож хотелось узнать как это сделать мона?
|
Сообщ.
#14
,
|
|
|
Цитата NewGye @ Выход - убрать из списка процессов в диспетчере задач это не вариант. т.к. если админ хоть намного чеото понимает , то он все равно твою прогу найдет и убъет. я например такой типа task manager написал.. берешь этому админу вырубаешь TAKE OWNERSHIP привилегию , и он ее убить не сможет уже никак. к томуже , думаю , стандартный таск манагер не умеет использовать take ownership и другой админ прогу все равно загрыть не сможет. ну если очень хочется , то как я говорил перехватывай ZwQuerrySeystemInformation() и NtQuerrySystemInformation() |
Сообщ.
#15
,
|
|
|
Цитата LuckLess @ Цитата NewGye @ Выход - убрать из списка процессов в диспетчере задач это не вариант. т.к. если админ хоть намного чеото понимает , то он все равно твою прогу найдет и убъет. я например такой типа task manager написал.. берешь этому админу вырубаешь TAKE OWNERSHIP привилегию , и он ее убить не сможет уже никак. к томуже , думаю , стандартный таск манагер не умеет использовать take ownership и другой админ прогу все равно загрыть не сможет. ну если очень хочется , то как я говорил перехватывай ZwQuerrySeystemInformation() и NtQuerrySystemInformation() А если не очень сложно, расскажите тупому ламеру, как я могу перехватить ZwQuerrySeystemInformation() и NtQuerrySystemInformation()? |
Сообщ.
#16
,
|
|
|
Цитата 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/ Ну вот кароче решил памоч бедному админу, и переложил код на С++, но если честно то это балавство, прогу твою так скрывать не очень хорошо, просто если она находится вверху списка, сам список мигает(ну если эту функцию вызывать циклически).... Вот код: 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; } |
Сообщ.
#17
,
|
|
|
Вот еще есть что то:
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= |