imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 02.01.2005, 23:44     # 1
Malone32®
Guest
 
Сообщения: n/a

Question CTRL+ALT+DELETE

Пишу программу на Delphi. В общем, надо сделат так, чтобы её не было видно в Task Manager, или же надо вообще отключить действие CTRL+ALT+DELETE. Кто-нибудь знает как это сделать в Windows XP\2000\NT при помощи какой-нибудь API-функции или реестра???. Смысл в том, чтобы не было выхода из моей проги способом CTRL+ALT+DELETE.
 
Старый 03.01.2005, 00:07     # 2
Kitana Haru
Мечта 3-х админов
 
Аватар для Kitana Haru
 
Регистрация: 29.10.2003
Адрес: Ищите в ЖЖ
Сообщения: 666

Kitana Haru - Гад и сволочь
Хмм... всё было бы просто, но сервисы на Дельфи не пишутся, такая вот беда. У кого есть идеи?
__________________
Умение властвовать собой - наивысшая форма власти.
...другими - тоже не плохо, за неимением лучшего
Kitana Haru вне форума  
Старый 03.01.2005, 00:29     # 3
Malone32®
Guest
 
Сообщения: n/a

Мне можно и на VB!!
 
Старый 03.01.2005, 00:57     # 4
Riddler
::VIP::
 
Аватар для Riddler
 
Регистрация: 20.08.2003
Адрес: г. Тюмень
Пол: Male
Сообщения: 472

Riddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех ГуруRiddler Отец (мать) всех Гуру
Malone32®
Я, конечно, в программировнии ничего не понимаю, но какие бы я проги не пользовал, я во всех могу выйти по CTRL+ALT+DELETE (это относится к 2000/ХР). Так что я думаю, что это не возможно...
__________________
Всё будет хорошо. Готовьтесь...
Riddler вне форума  
Старый 03.01.2005, 01:05     # 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. Тему нужно в программирование.
ЕЖ вне форума  
Старый 03.01.2005, 01:32     # 6
Malone32®
Guest
 
Сообщения: n/a

Сложно, сложно, но всё-таки можно

Да, просто я думаю может с помощью реестра как-нибудь получится сделать..............
 
Старый 03.01.2005, 12:15     # 7
Mg0
::VIP::
Железный Дровосек
 
Аватар для Mg0
 
Регистрация: 01.10.2003
Адрес: 1/6 суши
Пол: Male
Сообщения: 3 510

Mg0 СуперБогMg0 СуперБогMg0 СуперБог
Mg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБогMg0 СуперБог
Malone32®
Имхо, с помощью реестра ты ничего не сделаешь. CTRL+ALT+DELETE -- это базовая комбинация Win32, и никакими копаниями в реестре ее отключить невозможно. Тут тебе надо вешать хук на клавиатурный драйвер и фильтровать ввод пользователя. Таким образом можно отфильтровать практически всё, вот только насчет CTRL+ALT+DELETE я не уверен.
__________________
Я только снаружи страшОн, а внутри...
внутри я... просто УЖАСЕН!
Mg0 вне форума  
Старый 03.01.2005, 12:50     # 8
Plague
Administrator
 
Аватар для Plague
 
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 064

Plague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague Демиург
Plague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague Демиург
Мне кажется - тема более уместна для раздела "Программирование", куда и перенес. + что-то подобное я здесь вроде видел.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!!
~~~~~~~~~~~~~~~~~~~~~~

The time has come it is quite clear, our antichrist is almost already here.
M.M.
Plague вне форума  
Старый 03.01.2005, 15:22     # 9
chesnok
Member
 
Аватар для chesnok
 
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206

chesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форуме
По поводу 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.
chesnok вне форума  
Старый 03.01.2005, 15:27     # 10
Kitana Haru
Мечта 3-х админов
 
Аватар для Kitana Haru
 
Регистрация: 29.10.2003
Адрес: Ищите в ЖЖ
Сообщения: 666

Kitana Haru - Гад и сволочь
ЕЖ
Можно конечно и так извернуться...
Но может проще обратиться к С++?
Всё-таки для него человек примеров написания найдёт гораздо больше...
А реестр оставьте в покое, здесь нужно просто написать не приложение (task) и не процесс (process), а службу (serviсe), которая в Task Manager не отображается...
__________________
Умение властвовать собой - наивысшая форма власти.
...другими - тоже не плохо, за неимением лучшего
Kitana Haru вне форума  
Старый 03.01.2005, 16:00     # 11
gvozd
Guest
 
Сообщения: n/a

Есть такие АПИ, но они работают только в 9х, потому что процесс не скроешь. Как один из вариантов - написать свой таск менеджер, ставить хук, при нажатии заветной комбинации показывать свой менеджер и оттуда убирать процесс. Еще на одном форуме я читал, что можно как-то прицепиться к чужому процессу, если найду - кину. Удачи!
 
Старый 03.01.2005, 16:13     # 12
chesnok
Member
 
Аватар для chesnok
 
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206

chesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форуме
Если нужно спрятать свой процесс от 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.
chesnok вне форума  
Старый 04.01.2005, 12:01     # 13
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Цитата:
chesnok:
Достаточно просто перехватывать вызовы функции NtQuerySystemInformation (все списки процессов так или иначе формируются с помощью неё) и заменять их своими, убирающими тот или иной процесс из списка. За инфой по NtQuerySystemInformation
Не только. B 2000 и XP еще подерживется Tool Help как это было в Win9x. С помощью Tool Help Functions тоже можно получить список процессов потоков, модулей и т.п.
__________________
Best Regards
alexey_ma вне форума  
Старый 04.01.2005, 12:36     # 14
chesnok
Member
 
Аватар для chesnok
 
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206

chesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форуме
Цитата:
Сообщение от alexey_ma
Не только. B 2000 и XP еще подерживется Tool Help как это было в Win9x. С помощью Tool Help Functions тоже можно получить список процессов потоков, модулей и т.п.
Ну дык ToolHelp API собственно использует NtQuerySystemInformation (ToolHelp API - просто удобная надстройка), которая в свою очередь просто читает данные из системных таблиц.
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you?
<bob> why not? people use windows as one.
chesnok вне форума  
Старый 04.01.2005, 16:35     # 15
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Спорить не буду,но не уверен что это так. Поскольку NT 4 не подерживает Tool Help, а Win9x поддерживает. Вполне возможна сомостоятельная реализация в kernel32.dll без изпользования функций Nt... из ntdll.dll.
__________________
Best Regards
alexey_ma вне форума  
Старый 04.01.2005, 17:35     # 16
Avoidik
Newbie
 
Регистрация: 20.12.2003
Сообщения: 18

Avoidik Путь к славе только начался
y0da.cjb.net -> Code Snippets -> Invisibility
Avoidik вне форума  
Старый 12.01.2005, 03:52     # 17
blacklist
Newbie
 
Регистрация: 25.08.2004
Сообщения: 11

blacklist Путь к славе только начался
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
blacklist вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:41.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.