|
|
#1
|
|||
|
|||
Антихуки
Здравствуйте!скажите пожалуйста,хочу написать программку что бы запрещала ставить хуки.Например если в системе пытается установится хук на перехват клавишь!то надо как то не дать установится хуку на перехват клавишь.
Вот знаю что с помощью вот этой функции можно сделать антихуки: function DebugProc(Code: integer; WParam: WPARAM; LParam: LPARAM): Longint; stdcall Вот код написал но что то он не работает. Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; const WH_DEBUG = 9; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; hook:hhook; implementation function DebugProc(Code: integer; WParam: WPARAM; LParam: LPARAM): Longint; stdcall begin code := 0; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if hook <> 0 then hook:=SetWindowsHookEx(wh_debug,@DebugProc,HINSTANCE,0); end; end. |
#2
|
||||
|
||||
МСДН читал?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
Ловушка с флагом WH_DEBUG выполняется в очереди (цепочке) хуков самой первой, если что-то сделать в ней (напр. как в данном случае - code := 0; т.е. выдаётся запрет на выполнение последующих ловушек) работать они не будут, что ни есть хорошо, есть большое колво "хороших" прог которые просто перестанут работать правильно, если не ошибаюсь, даже трейный переключатель раскладки вешает свои хуки, раскладка переключаться в таком случае не будет. Если это нужно для обеспечения безопасности при вводе секретных данных, то лучше использовать виртуальную клавиатуру, толку и пользы от этого будет больше, поскольку "снимать" инфу с клавы можно не только хуками, но ещё и опросом состояния клавиш, либо подключением своего драйвера к ядру или прямым обращением к API, а это отследить значительно труднее. Зачем портить систему?
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Bomj (16.10.2013)
|
#4
|
|||
|
|||
Знаю что есть хорошие программы!но охота своё писать))
|
#5
|
||||
|
||||
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |