Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Защита от Hook


Автор: Teran 30.1.2006, 12:58
Привет всем!
Вот такой вопрос:
можно ли определить в что какая нибудь программа ставит hook в систему и отменить его??

может нужно в начале поставить на SetWindowsHookEx
но низнаю в какой dll она находится??
может ктото уже сталкивался? smile

Автор: bems 30.1.2006, 15:54
user32.dll
Добавлено @ 15:57
Цитата(Teran @ 30.1.2006, 12:58 Найти цитируемый пост)

может нужно в начале поставить на SetWindowsHookEx
Это как понимать?

Автор: Teran 31.1.2006, 16:17
что-то вроди этого:
Код

uses Windows, madCodeHook;
....

var
 SetWindowsHookNext :   function (nFilterType: Integer; pfnFilterProc: TFNHookProc): HHOOK; stdcall;
 SetWindowsHookExNext : function (idHook: Integer; lpfn: TFNHookProc; hmod: HINST; dwThreadId: DWORD): HHOOK; stdcall;

function SetWindowsHookExCallback(idHook: Integer; lpfn: TFNHookProc; hmod: HINST; dwThreadId: DWORD): HHOOK; stdcall;
begin

  MessageBox(0,DllPath,DllPath,MB_OK or MB_SYSTEMMODAL);

//  result := 
end;
......

begin
  GetModuleFileName(0,DLLPath,MAX_PATH);


  HookAPI('user32.dll', 'SetWindowsHookA', @SetWindowsHookExCallback, @SetWindowsHookExNext);
  HookAPI('user32.dll', 'SetWindowsHookW', @SetWindowsHookExCallback, @SetWindowsHookExNext);
  HookAPI('user32.dll', 'SetWindowsHookEx', @SetWindowsHookExCallback, @SetWindowsHookExNext);

end.

Автор: bems 31.1.2006, 17:47
Ну да, должно работать.
Поделись ссылкой на madCodeHook плиз
Добавлено @ 17:49
Ты хочешь "защитить" только свою программу или всю систему?
Если второе, то перестанут работать переводчики (те что переводят по месту) и еще какие-то вполне полезные программы

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)