Thema: Delphi Hook auslösen!

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#22

Re: Hook auslösen!

  Alt 15. Feb 2004, 11:44
Hooks können nur in Prozesse injeziert werden die über einen Messagequeue verfügen. Nachdem ein globaler Hook installiert wurde, wird er nicht sofort in alle Prozesse installiert. Man kann mit PostMessage(hWnd_Broadcast, wm_Null, 0, 0); nun erzwingen das jeder Messagequeue aktiv werden muß. D.h. man sollte obige PostMessage() nach dem Aufruf SetWindowsHookEx() durchführen damit alle betroffenen Prozesse die Hook-DLL laden und somit aktiv werden. Wird dies nicht gemacht kann es durchaus vorkommen das ein Prozess lange Zeit keienrlei Messages bearbeitet, und somit unsichtbar für den globalen Hook ist.

Allerdings, Hooken auf diesem Wege funktioniert nur mit Prozessen die einen Messagequeue besitzen, und Services.exe hat keinen Messagequeue. Dies stellt nämlich ein Sicherheitsrisiko dar.

Gruß Hagen
  Mit Zitat antworten Zitat