| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Пишу программу на Delphi. В общем, надо сделат так, чтобы её не было видно в Task Manager, или же надо вообще отключить действие CTRL+ALT+DELETE. Кто-нибудь знает как это сделать в Windows XP\2000\NT при помощи какой-нибудь API-функции или реестра???. Смысл в том, чтобы не было выхода из моей проги способом CTRL+ALT+DELETE.
|
|
|
# 2 |
|
Мечта 3-х админов
Регистрация: 29.10.2003
Адрес: Ищите в ЖЖ
Сообщения: 666
![]() |
Хмм... всё было бы просто, но сервисы на Дельфи не пишутся, такая вот беда. У кого есть идеи?
__________________
Умение властвовать собой - наивысшая форма власти. ...другими - тоже не плохо, за неимением лучшего
|
|
|
|
|
# 4 |
|
::VIP::
Регистрация: 20.08.2003
Адрес: г. Тюмень
Пол: Male
Сообщения: 472
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Malone32®
Я, конечно, в программировнии ничего не понимаю, но какие бы я проги не пользовал, я во всех могу выйти по CTRL+ALT+DELETE (это относится к 2000/ХР). Так что я думаю, что это не возможно...
__________________
Всё будет хорошо. Готовьтесь... |
|
|
|
|
# 5 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Kitana Haru
Ну как же так не пишутся? Всегда писались. Как же VCL-классы TService, TServiceApplication, TServiceThread? Да и при создании приложения можно выбрать тип - хоть для Web-сервиса. А вот про сервисы на Delphi, но на чистом API http://www.delphiworld.narod.ru/base..._services.html P.S. Тему нужно в программирование. |
|
|
|
|
# 7 |
|
::VIP::
Железный Дровосек Регистрация: 01.10.2003
Адрес: 1/6 суши
Пол: Male
Сообщения: 3 510
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Malone32®
Имхо, с помощью реестра ты ничего не сделаешь. CTRL+ALT+DELETE -- это базовая комбинация Win32, и никакими копаниями в реестре ее отключить невозможно. Тут тебе надо вешать хук на клавиатурный драйвер и фильтровать ввод пользователя. Таким образом можно отфильтровать практически всё, вот только насчет CTRL+ALT+DELETE я не уверен.
__________________
Я только снаружи страшОн, а внутри... внутри я... просто УЖАСЕН! |
|
|
|
|
# 8 |
|
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 064
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Мне кажется - тема более уместна для раздела "Программирование", куда и перенес. + что-то подобное я здесь вроде видел.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
|
|
|
|
# 9 |
|
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
По поводу CTRL+ALT+DELETE:
В винде всё, что посылает клавиатура, сначала обрабатывает RIT (raw input thread), работающая как часть ядра в кольце защиты 1 (по-моему). Так вот эта RIT при виде сигнала CAD вызывает ф-ю типа [GinaSASчто-то там] из gina.dll, отвечающюю за визуализацию процесса logon/logoff/lock. Виндовые сервисы работают в кольце 2, а приложения - вообще в 3. Так что в NT/2k/XP единственный способ отлова - либо свой сервис для кольца защиты 0 (по типу SoftICE ), либо свой драйвер клавиатуры (хотя в работоспособности этого способа я не уверен). 1ый сработает 100%, но написание вещей для ring0 - тема для не одной большой беседы....
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. Последний раз редактировалось chesnok; 03.01.2005 в 15:25. |
|
|
|
|
# 10 |
|
Мечта 3-х админов
Регистрация: 29.10.2003
Адрес: Ищите в ЖЖ
Сообщения: 666
![]() |
ЕЖ
Можно конечно и так извернуться... Но может проще обратиться к С++? Всё-таки для него человек примеров написания найдёт гораздо больше... А реестр оставьте в покое, здесь нужно просто написать не приложение (task) и не процесс (process), а службу (serviсe), которая в Task Manager не отображается...
__________________
Умение властвовать собой - наивысшая форма власти. ...другими - тоже не плохо, за неимением лучшего
|
|
|
|
|
# 11 |
|
Guest
Сообщения: n/a
|
Есть такие АПИ, но они работают только в 9х, потому что процесс не скроешь. Как один из вариантов - написать свой таск менеджер, ставить хук, при нажатии заветной комбинации показывать свой менеджер и оттуда убирать процесс. Еще на одном форуме я читал, что можно как-то прицепиться к чужому процессу, если найду - кину. Удачи!
|
|
|
# 12 |
|
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Если нужно спрятать свой процесс от task manager'а - дык надо сразу было так говорить. Это ГОРАЗДО проще. Достаточно просто перехватывать вызовы функции NtQuerySystemInformation (все списки процессов так или иначе формируются с помощью неё) и заменять их своими, убирающими тот или иной процесс из списка. За инфой по NtQuerySystemInformation - Read The F***ing MSDN!!!. За инфой по перезвату сис. вызовов - статья.
BTW: не стоит думать, что если в MSDN или статьях примеры на c/c++, то на Дельфи этого нельзя сделать. В большинстве случаем как раз можно, если есть нужный модуль. Вот только я сильно сомневаюсь, что в Дельфи есть модуль Winternl, так что, возможно, придётся извращаться с явным поиском её адреса в ntdll.dll (по-моему там, но возможно и в kernel32.dll). Ну и конечно, в любом случае нужно будет проштудировать Winternl.h и переписать оттуда все struct'ы и прочие #define'ы в синтаксисе Дельфи.
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. |
|
|
|
|
# 13 | |
|
Member
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245
![]() ![]() |
Цитата:
__________________
Best Regards |
|
|
|
|
|
# 14 | |
|
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. |
|
|
|
|
|
# 15 |
|
Member
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245
![]() ![]() |
Спорить не буду,но не уверен что это так. Поскольку NT 4 не подерживает Tool Help, а Win9x поддерживает. Вполне возможна сомостоятельная реализация в kernel32.dll без изпользования функций Nt... из ntdll.dll.
__________________
Best Regards |
|
|
|
|
# 17 |
|
Newbie
Регистрация: 25.08.2004
Сообщения: 11
![]() |
Malone32®
За мониторинг комбинации ctrl+alt+delete в Windows 2000/XP отвечает winlogon.exe, который при её нажатии вызывает экспортируемую модулем msgina.dll функцию WlxLoggedOnSAS. Способ блокировки CTRL+ALT+DEL заключается в написании собственной GINA.DLL с последующей регистрацией её в реестре: KeyName: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon Value Type: REG_SZ Value Name: GinaDLL Собственно надо написать только реализацию функции WlxLoggedOnSAS, которая всегда будет возвращать WLX_SAS_ACTION_NONE, а остальные функции могут связыватся с оригинальной msgina.dll. Подробности с примерами смотри в MSDN - раздел Platform SDK: Logon Authentication |
|
|