Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

alt+ctrl+del   Найти похожие ветки 

 
Maksss   (2004-02-18 18:31) [0]

не подскажите как перехватить альт+контолдел в 98\нт но не спрятать приложени а запуститься как это делает таск менеджер
т.е. приостановить(в 98) все процесы и показать свою форму


 
Игорь Шевченко ©   (2004-02-18 18:55) [1]


> как перехватить альт+контолдел


Никак.


 
Gero ©   (2004-02-18 20:00) [2]

> Игорь Шевченко ©   (18.02.04 18:55) [1]

Почему Вы всегда на подобные вопросы так отвечаете? Боитесь вирусописателей? Ведь на самом деле это можно сделать


 
Vit@ly ©   (2004-02-18 20:05) [3]

Очен боится, а мне кажется просто не понимает что такое альт+контолдел , так же как и я :)


 
clickmaker ©   (2004-02-18 20:08) [4]


> Vit@ly ©   (18.02.04 20:05) [3]
> Очен боится, а мне кажется просто не понимает что такое
> альт+контолдел

Какой-то навороченный музыкальный инструмент, наверно?


 
Vit@ly ©   (2004-02-18 20:12) [5]

Похоже


 
juicenman   (2004-02-18 21:39) [6]

Долго смеялся )))
2 maksss:
В ХП/2000 простая подмена таскменеджера;
в 98ой ставь хук на окно таскменеджера;


 
Игорь Шевченко ©   (2004-02-19 11:08) [7]

juicenman   (18.02.04 21:39)

Пример в студию - я тоже хочу долго посмеяться :) Особенно для Win2k


 
dr Tr0jan ©   (2004-02-19 12:12) [8]


var
 OldVal : LongInt;

{Off}
SystemParametersInfo (97, Word (True), @OldVal, 0);

{On}
SystemParametersInfo (97, Word (False), @OldVal, 0);


 
Игорь Шевченко ©   (2004-02-19 12:18) [9]

>SystemParametersInfo (97, Word (True), @OldVal, 0);

SPI_SETSCREENSAVERRUNNING ?
И что, позволяет _перехватить_ Ctrl+Alt+Del ?


 
NightAngel ©   (2004-02-21 00:47) [10]

> т.е. приостановить(в 98) все процесы и показать свою форму

program NewCloseAPC;

uses
 Windows;

procedure KERNEL32_ORD_0001(Var1,Var2,Var3:dword); stdcall;
         external "Kernel32.dll" index 1;

const
 REBOOT_VXDID = $090000;
 R0TCB_OFFSET = $00004C;
 TitleMessage : PChar = "Тест!";
 TextMessage  : PChar = "Нажата комбинация CTR+ALT+DEL!";

procedure NewCloseProgramAPC;
begin
 KERNEL32_ORD_0001(REBOOT_VXDID+1,3,0);

// Здесь можно создать свой аналог диспетчера задач
 MessageBox(0,TextMessage,TitleMessage,MB_OK or MB_SYSTEMMODAL);

 KERNEL32_ORD_0001(REBOOT_VXDID+1,0,0);
end;

asm
 push ebp
 mov ebp, esp
 add esp, -8
 call GetCurrentThread
 lea ecx, dword ptr ss:[ebp-8]
 push ecx
 push fs
 push eax
 call GetThreadSelectorEntry
 test eax,eax
 je @Failed
 mov ah, byte ptr ss:[ebp-1]
 mov al, byte ptr ss:[ebp-4]
 shl eax, 16
 mov ax, word ptr ss:[ebp-6]
 push [eax+R0TCB_OFFSET]
 push offset NewCloseProgramAPC
 push REBOOT_VXDID
 call KERNEL32_ORD_0001
 push 0
 push 0
 push REBOOT_VXDID+1
 call KERNEL32_ORD_0001
@Loop:
 push true
 push infinite
 call SleepEx
 jmp @Loop
@Failed:
 push eax
 call ExitProcess
end.


Это только для Win9x/ME. Для NT-платформ всё гораздо сложнее и недокументировано.


 
juiceman ©   (2004-02-21 12:12) [11]


> Игорь Шевченко ©   (19.02.04 11:08) [7]
> juicenman   (18.02.04 21:39)
>
> Пример в студию - я тоже хочу долго посмеяться :) Особенно
> для Win2k

Зачем код? Это руками все делают, CTRL+C  CTRL+V


 
KSergey ©   (2004-02-22 10:35) [12]

А Gina.DLL не позволяет это делать? Или там только логин? Вроде как раз она это и есть... Я ошибаюсь?


 
DVM ©   (2004-02-22 19:14) [13]


> Зачем код? Это руками все делают, CTRL+C  CTRL+V

Ты пробовал или это предположение? Попробуй найди TaskMan.exe и переименуй/замени. Потом нажми Ctrl+alt+del и полюбуйся на то, что ничего не изменилось.


 
Igoryok   (2004-02-22 19:16) [14]

Я не понимаю - отличный вопрос про реестр почему бы Вам не покапаться и проверить, Вас не заколебали эти прыщавые вирусологи???


 
alex134   (2004-02-22 21:06) [15]


> DVM ©   (22.02.04 19:14) [13]
>
> > Зачем код? Это руками все делают, CTRL+C  CTRL+V
>
> Ты пробовал или это предположение? Попробуй найди TaskMan.exe
> и переименуй/замени. Потом нажми Ctrl+alt+del и полюбуйся
> на то, что ничего не изменилось.

В XP пробовал. В NT нет. В NT такое не проходит?


 
DVM ©   (2004-02-22 21:47) [16]


> В XP пробовал. В NT нет. В NT такое не проходит?

Win XP Pro не проходит. Срабатывает автоматическое восстановление системных файлов. Иногда прямо на глазах меняется.


 
Игорь Шевченко ©   (2004-02-22 23:05) [17]

Перехват ctrl+Alt+Del на NT-системах не проходит.

Запустить свой TaskManager можно, по крайней мере, в NT 4, но толку-то ? Остальные процессы все равно не остановятся...


 
Gero ©   (2004-02-22 23:16) [18]

> Перехват ctrl+Alt+Del на NT-системах не проходит

Проходит. Я видел своими глазами.


 
Игорь Шевченко ©   (2004-02-22 23:18) [19]

Gero ©   (22.02.04 23:16)

WinLogon таки перехватывает...


 
Gero ©   (2004-02-23 00:00) [20]

> Игорь Шевченко ©

Слышали про Novell Client? Я когда-то работал за чужим компом (Win2k), и очень удивился, когда нажав ctrl+alt+del, вместо привычного окошка увидел окно Novell Client.
Если ребята из Novell сделали, чем мы хуже?


 
Игорь Шевченко ©   (2004-02-23 00:12) [21]

Gero ©   (23.02.04 00:00)

Про Novell Client я слышал и охотно верю, что там это сделали.
Но боюсь, что автор вопроса все-таки несколько меньшим опытом обладает...


 
Gero ©   (2004-02-23 00:53) [22]

> Игорь Шевченко ©   (23.02.04 00:12) [21]

Да, но в [1] вы все же погорячились.


 
Gero ©   (2004-02-23 00:53) [23]

> Игорь Шевченко ©   (23.02.04 00:12) [21]

Да, но в [1] Вы все же погорячились.


 
Almaz ©   (2004-02-23 01:45) [24]


> Перехват ctrl+Alt+Del на NT-системах не проходит.
>


Просто перехватить чем-то типа хука конечо не выйдет, но имея права администратора можно следующее: пишете DLL - прозрачную копию MSGina.DLL, т.е. экспортируете все ее функции и на их вызов вызываете соответствующие функции из MSGina. Затем перехватываете WlxLoggedOnSAS - это обработчик SAS при залогиненном пользователе и пишете примерно следующее:


function Gina_WlxLoggedOnSAS(pWlxContext: Pointer;
 dwSasType: DWORD; pReserved: Pointer): Integer; stdcall;
begin
 if MessageBox(0, "Обработать нажатие CTRL+ALT+DEL ?", "Обнаружено SAS",
   MB_YESNO or MB_ICONQUESTION) = IDYES then
   Result := WlxLoggedOnSAS(pWlxContext, dwSasType, pReserved) else
   Result := WLX_SAS_ACTION_NONE;
end;


Затем копируете свою DLL в %WINNT%/SYSTEM32/ и в реестре (вот тут нужны права администратора) создаете в ветке HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon значение GinaDLL, в которое и пишете название файла своей DLL. Перезагружаетесь и получаетет требуемый эффект.

Удачи.

Удачи.


 
KSergey ©   (2004-02-23 09:39) [25]

> Игорь Шевченко ©   (23.02.04 00:12) [21]
> Про Novell Client я слышал и охотно верю, что там это сделали.
> Но боюсь, что автор вопроса все-таки несколько меньшим опытом
> обладает...

Ну дело, видимо, все же не в опыте, а в наличии документированного механизма, правда?
А я лично так до сих пор и не могу понять: ест ьон этот документированный механизм или нет...
Во всяком случае упомянутый новеловский клиент видимо вклинивается как-то отлично от упомянутого Almaz ©   (23.02.04 01:45) [24] механизма... Во всяком случае в данной ветке реестра ничего нет (на сашине, где он установлен). Или есть еще вариант? Или они прямо нагло подменяют MSGina.dll своей?

to Almaz ©   (23.02.04 01:45) [24]

Спасибо, так и запишем! ;)

PS
Я же говорил, что надо Gina.dll копать! ;)


 
Anatoly Podgoretsky ©   (2004-02-23 09:48) [26]

Ну там не перехва этих клавиш, а вызов системой новеловского клиента, как gina.dll


 
Игорь Шевченко ©   (2004-02-24 16:15) [27]

Gero ©   (23.02.04 00:53)

Читаем Руссиновича с Соломоном, где русским по белому написано: SAS на прикладном уровне не перехватывается.


 
Gero ©   (2004-02-24 17:25) [28]

> Игорь Шевченко ©   (24.02.04 16:15) [27]

Не буду с Вами спорить.

P.S. Руссинович с Соломоном тоже могли ошибаться...


 
DNS   (2004-02-27 08:22) [29]

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr
Оба поставить в 1 и Таск мэнеджер в XP (на других не пробовал) запустить невозможно, конечно если не знать оба ключя и не уметь писать REG файлы (некоторые локеры в инте кафе так и убиваються - DisableRegistryTools 0 и включаем мэнеджер ==> убить процесс :)


 
VMcL ©   (2004-02-27 11:23) [30]

>>DNS  (27.02.04 08:22) [29]
>некоторые локеры в инте кафе так и убиваються

Кто мешает админу в Local/Domain Policies запретить запись в
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\
?


 
Anatoly Podgoretsky ©   (2004-02-27 11:37) [31]

В Win9x это не поможет


 
VMcL ©   (2004-02-27 12:32) [32]

[31]

Это слишком правильно, чтоб с этим можно было не согласиться ))


 
DNS   (2004-02-28 23:50) [33]

[30] очень редко вижу не ленивых админов, которые еще и думают что пользователи таким занимаються а не в инете лазят %)
Вообще в XP получаеться можно от него избавиться навсегда... Одна проблема решена. Теперь к 98 - тут все сложнее в 98 самый простой способ - поиск окна, но он и самый не надежный :-(
Но в 98 тоже есть фокус - можно спрятать свое окно из Ctrl-Alt-Del, а в XP нельзя. Комбинируем оба метода и получаем то что требовалось (или почти то что надо).


 
DNS   (2004-02-29 13:19) [34]

// Убираем процесс из Ctrl+Alt+Del.
Function RegisterServiceProcess(dwProcessID, dwType : DWord): DWord;
stdcall external "Kernel32.dll" name "RegisterServiceProcess";

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterServiceProcess(GetCurrentProcessId(), 1);
//1- скрыть , 0 - показать
end;


 
DeadMeat ©   (2004-02-29 13:29) [35]


>  и получаем то что требовалось

Я думаю, что даже близко это не то, что требовалось...

не подскажите как перехватить альт+контолдел в 98\нт но не спрятать приложени а запуститься как это делает таск менеджер


 
DNS   (2004-02-29 14:00) [36]

[16] можно отключить защиту файлов...


 
Alexander666 ©   (2004-03-01 06:55) [37]

Кстати, в НТ-системах про Ctrl-Alt-Del еще и Рихтер упоминал. Я вот спрашивал тут про работу с RIT-ом, так как именно там обрабатываются все эти комбинации. Ответ был отрицательным, да я впрочем и сам ничего не нашел. Единственный выход, на мой взгляд, - работа с GINA.


 
dr Tr0jan ©   (2004-03-01 08:54) [38]

2 Игорь Шевченко ©   (19.02.04 12:18) [9]

> >SystemParametersInfo (97, Word (True), @OldVal, 0);

SPI_SETSCREENSAVERRUNNING ?
И что, позволяет _перехватить_ Ctrl+Alt+Del ?


Позволяет, еще как! только это дело стопудово канает в Win98. Не знаю в чем глюк, но эта шняга не отрубает [Tab].


 
DeadMeat ©   (2004-03-01 14:44) [39]


Позволяет, еще как!

Это шутка или как...??


 
MyNick   (2004-03-24 10:15) [40]

Не проще запретить винде перезапись системных файлов и сделать подмену файла TASKMGR.EXE ?



Страницы: 1 2 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.028 c
11-1068801575
Deimos
2003-11-14 12:19
2004.04.11
Проблема с потоками


3-1079533564
Kein
2004-03-17 17:26
2004.04.11
какая база данных побыстрей


7-1076246345
sadretro
2004-02-08 16:19
2004.04.11
как програмно можно зашарить доступ к папке


1-1082655742
Seldon
2004-04-22 21:42
2004.04.11
Не получается TButton.Default :(


7-1075901785
voron
2004-02-04 16:36
2004.04.11
Определение даты создания файла!