![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Невидимые или неубиваемые приложения в Win2000
Wistler © (2003-07-05 17:16:00)
Доброго времени суток.
Нужно написать программу, которую юзеры не смогли закрыть из под win2000. Я вижу выход в следующем: либо спрятать его, что бы никто е нашел (в Win 9x это просто, а в 2000?) или как в последних версиях AVP: при попытке убить процес, AVP ругается и процес не закрывается.
Если кто знает доки, которые мне помогут или кто сталкивался с данной проблемой подкинет мыслишки, буду благодарен.
ZZ (2003-07-28 19:52:00) [1]
Как отключить клавиатуру и мышь? :)
Dimrix (2003-07-28 16:54:00) [2]
Моё предложение может и не потеме, но для данной задачи тоже подойдёт: может просто отключить клавиатуру и мышь из админовской машины. Выход довольно банальный и реализован, наверное, во всех наших местных инет-кафе. Может и неправильно жить по принципу умный в гору не пойдёт... но ведь так всётаки гораздо проще
С уважением, Дмитрий
Игорь Шевченко (2003-07-23 18:32:00) [3]
Сергей Енин (23.07.03 12:46)
Только от учетной записи, обладающей соответствующими правами :)
Сергей Енин (2003-07-23 12:46:00) [4]
> Avenger[NhT] (06.07.03 12:41)
> 2Song
> Чтоб "невозможно" было убить процесс диспетчером процесс
> надо запустить как сервис с правами LoacalSystem
Остаются, правда, весьма веселые утилитки tlist и kill из поставки Win2k...
Первая вываливает полный список всех процессов, а вторая киляет любой из них...
Burmistroff (2003-07-07 18:37:00) [5]
>Avenger[NhT]
Да нет. Не сможет закрыть ни одна программа, использующая NtQuery.... Из всех программ что я видел, не пользуются ntqsi (прямо или косвенно, через toolhelp) только qprocess.exe (в WinXP), и, соответственно только она (из тех программ, что я видел) сможет обнаружить и закрыть такой процесс.
Однако, как правильно подметил Игорь Шевченко, драйвер может вручную произвести энумерацию процессов используя PsActiveProcessesHead (по-моему так называется), при этом, естественно все процессы будут видны.
R4D][ (2003-07-07 18:20:00) [6]
>>Игорь Шевченко © (07.07.03 10:09)
А откуда еще???
Игорь Шевченко (2003-07-07 15:52:00) [7]
Avenger[NhT] © (07.07.03 13:54)
А в ToolHelp откуда информация берется ? Оттуда же, там как раз и вызывается NtQuerySystemInformation, в NT-системах...
Avenger[NhT] (2003-07-07 13:54:00) [8]
> Игорь Шевченко © (07.07.03 10:09)
> Burmistroff (06.07.03 15:40)
>
> Дело в том, что NtQuerySystemInformation - не единственный
> источник получения списка процессов :)
Да и им пользуется в основном только стандартный диспетчер...
остальные юзают ToolHelp...наскока я знаю...
> Ghost_ © (07.07.03 11:38)
> А компьютере в домене не управляются? Че огород-то городить?
Я вот и говорю людям, что проще его нафиг отрубить...к томуже это делается административными утилитами...
Ghost_ (2003-07-07 11:38:00) [9]
А компьютере в домене не управляются? Че огород-то городить?
Игорь Шевченко (2003-07-07 10:09:00) [10]
Burmistroff (06.07.03 15:40)
Дело в том, что NtQuerySystemInformation - не единственный источник получения списка процессов :)
Black_phoenix (2003-07-07 07:33:00) [11]
> Wistler
Пиши на мыло , я делал такие програмы как ты . У меня есть 3 решение этого вопроса ! Договоримся
Avenger[NhT] (2003-07-06 16:30:00) [12]
> Burmistroff (06.07.03 15:40)
> Можно поступить еще более экзотическим способом - перехватывать
> NtQuerySystemInformation, но не прятать свой процесс, а
> заменять его PID (скажем на 8). Тогда все его конечно же
> видеть будут, а вот закрыть - не смогут :)
Опять же, только через стандартный менеджер...
Burmistroff (2003-07-06 15:40:00) [13]
Можно поступить еще более экзотическим способом - перехватывать NtQuerySystemInformation, но не прятать свой процесс, а заменять его PID (скажем на 8). Тогда все его конечно же видеть будут, а вот закрыть - не смогут :)
Avenger[NhT] (2003-07-06 12:41:00) [14]
2Song
Чтоб "невозможно" было убить процесс диспетчером процесс надо запустить как сервис с правами LoacalSystem
и всеже если диспетчер запустишь с с правами системы, то его всеже убьешь...но как это сделать не все знают ;)
а через сторонние менеджеры(фар) убить вообще любой процесс можно, т.к. используется привилегии отладчика, но если у менеджера нет прав SeDebugPrivileges, то у него ничего не выйдет :)
Song (2003-07-06 12:33:00) [15]
Нет-нет, я о не о том, чтобы скрыть, а только о том, что когда пытаешь терминировать процесс он пишет "Невозможно завершить процесс".
Пришли исходник посмотреть, если можешь.
Avenger[NhT] (2003-07-06 12:23:00) [16]
> Song © (05.07.03 18:21)
> В w2k это (не возможность закрытия процесса) легко решается.
> А вот в XP уже не катит.
В Хр, тоже все очень хорошо скрывается...
моя прога во всяком случае...
мне кажется что нет ничего невозможного...
Но есть выход проще...просто отключить диспетчер задач...
это возможность операционки, в хр это даже есть через консоль!
Мелкософты всегда о нас заботятся :)
R4D][ (2003-07-06 11:03:00) [17]
Вопрос сокрытия процесса где-то на форуме уже обсуждался. Вот вкратце, варианты:
1) Перехватываешь NtQuerySystemInformation() и убираешь из списка свой процесс - по-моему наилучший вариант;
2) С помощью CreateRemoteThread/SetWindowsHookEx/ИЛИ_ЕЩЕ_ЧЕГО_НИБУДЬ_В_ЭТОМ_ДУХЕ подгружаешь в чужой процесс библиотеку, которая и выполняет основной код(свое главное приложение можешь закрыть) - насколько я понял для тебя этот вариант не катит.
В общем это дело не простое. Хотя вариант 2 полегче, чем 1. Тем более пример подгружения библиотеки с помощью CRT() описан у Рихтера. А вот насчет перехвата - есть статья на wasm.ru, но там естественно на ассемблере. В общем тебе решать.
Song (2003-07-05 23:08:00) [18]
Нет процесс скрыть легко не получится. Возможно сделать так чтобы его нельзя было терминировать. Это легче. Пиши по мылу.
Wistler (2003-07-05 23:03:00) [19]
В общем я пишу прогу управления компьютерным клубом. В Win9x я эту проблему решил, а как здесь не знаю.
Song вопросы заключаются в том, с какой стороны к этой проблеме подойти, как это лучше сделать.
Регистрация приложения как системного не проходит, говорит, что нет функцииRegisterServiceProcess(в Win98 есть).
Song (2003-07-05 22:05:00) [20]
2Morfein © (05.07.03 19:49)
Читаем исходный пост:
Доброго времени суток.
Нужно написать программу, которую юзеры не смогли закрыть из под win2000. Я вижу выход в следующем:... ...буду благодарен.
Any questions?