Hook global sur CreateWindow ? [Win32] - C - Programmation
Marsh Posté le 08-02-2007 à 15:39:08
après recherche
il semble ne pas être possible de faire des hooks sans dll externe
sur autre chose que WH_KEYBOARD_LL et WH_MOUSE_LL
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).
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?
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 je n'ai pas encore réussi à hooker WH_CBT via ma DLL ^^
work in progress
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.
Marsh Posté le 09-02-2007 à 12:41:37
j'ai enfin réussi
je me suis inspiré d'un code fonctionnel pour refaire ma DLL.
ca marche ^^
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
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