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