[Win32] Hook global sur CreateWindow ?

Hook global sur CreateWindow ? [Win32] - C - Programmation

Marsh Posté le 08-02-2007 à 14:24:35    

qqu pourrait m'indiquer un tutorial ou moyen de faire un Hook global sur CreateWindow / CreateWindowEx ?
ou un tutorial sur les Hook globaux avec SetWindowsHookEx par ex :x

 

ou alors me suggérer un moyen de savoir quand une nouvelle fenêtre est ouverte.

 


Cordialement :O

 

Edit: je fais un exe et j'utilise SetWindowsHookEx de cette façon:

 

gExe = GetModuleHandle(NULL);
gHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)Proc, gExe, 0);


Message édité par BenO le 08-02-2007 à 15:28:11
Reply

Marsh Posté le 08-02-2007 à 14:24:35   

Reply

Marsh Posté le 08-02-2007 à 15:39:08    

après recherche :o

 

il semble ne pas  être possible de faire des hooks sans dll externe
sur autre chose que WH_KEYBOARD_LL et WH_MOUSE_LL


Message édité par BenO le 08-02-2007 à 15:39:29
Reply

Marsh Posté le 08-02-2007 à 19:04:17    

non c faux!!!
 
de maniere facile il nest possible que de hooker la souris et le clavier, cependant tu peut tres bien ouvrir tout les process et injecter des jmp a l'entree CreateWindow de maniere a les intercepter dans une dll (comme bcp de programmes le font).

Reply

Marsh Posté le 08-02-2007 à 19:55:14    

Et pour les programmes qui sont lancés par la suite, tu les détectes comment?
Tu parles de les intercepter dans une dll, donc tu es bien obligé d'avoir une dll en plus de ton programme?


Message édité par IrmatDen le 08-02-2007 à 19:55:27
Reply

Marsh Posté le 09-02-2007 à 08:37:45    

bah, dans mon cas. je n'ai pas de contre indication à faire une DLL avec mon exe pour hooker WH_CBT :x
 
au départ, et de manière simple (documentée sur le web^^) je pensais qu'il n'était pas nécessaire de faire une DLL pour cet hook.
 
néanmoins :D je n'ai pas encore réussi à hooker WH_CBT via ma DLL ^^
work in progress

Reply

Marsh Posté le 09-02-2007 à 12:31:35    

Comment testes-tu ça? Quand j'ai debuggé le mien, j'ai cru que je passerais sur mon breakpoint quelque soit le process auquel il appartient ce qui s'est révélé faux (vu que je lançais le debug par le programme créant le hook -mauvaise utilisation du debugger peut-être?).
Le plus simple est de créer un fichier texte où tu marques tes infos de debug, et là tu es sûr d'avoir les infos pour tout tes process :)
 
Si tu n'y arrives pas, je posterais le code correspondant ce soir. Il n'y a pas eu trop de modif par rapport à celui que j'ai posté il y a quelques semaines, mais tu l'auras en version 100% fonctionnel.

Reply

Marsh Posté le 09-02-2007 à 12:41:37    

j'ai enfin réussi :O
je me suis inspiré d'un code fonctionnel pour refaire ma DLL.
ca marche ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed