Salut à tous ;)
Je me permet de poser une chtite question car après avoir passé du temps à chercher la réponse à mon problème, bah j'ai toujours pas trouvé...

Alors voila : je code un programme afin de mieux comprendre les hooks. J'ai un programme en 2 parties : une partie dll écrite en ASM (assemblée avec nasm) et l'autre écrite en C (même si pour l'instant le programme de test est en ASM en fait).
A l'assemblage et au linkage, tout va bien. Mais à l'éxécution, j'ai une splendide erreur du style "Le point d'entrée de procédure SetWindowsHookEx est introuvable dans la bibliothèque de liaisons dynamique USER32.dll"
Voici le code en question (tout est simplifie, je veux juste faire appelle à la fonction donc il manque encore pas mal de choses) :
; Section externes
[EXTERN MessageBoxA]
[EXTERN SetWindowsHookEx]
; Section des imports
[IMPORT MessageBoxA user32.dll]
[IMPORT SetWindowsHookEx user32.dll]
; Section des exportations des fonctions presentes dans la dll
[GLOBAL TestFunc]
[GLOBAL SetHook]
[EXPORT TestFunc]
[EXPORT SetHook]
[SEGMENT CODE USE32 CLASS=CODE]
..start
mov eax, 1
ret 12
; Fonction de test
TestFunc
push dword 0
push dword MsgTitle
push dword MsgText
push dword 0
call [MessageBoxA]
ret
; Mise en place du crochet clavier
SetHook:
push dword 0
push dword KeyboardHookProc
push dword 2 ; WH_KEYBOARD = 2
call [SetWindowsHookEx]
; Verification
cmp eax, 0
jmp __HOOK_FAILED__
jmp __HOOK_SUCCESS__
__HOOK_FAILED__:
push dword 0
push dword MsgFailed
push dword MsgTitle
push dword 0
jmp __END__
__HOOK_SUCCESS__:
push dword 0
push dword MsgGood
push dword MsgTitle
push dword 0
mov dword [HandleHook], eax
jmp __END__
__END__:
ret
; Fonction CallBack
KeyboardHookProc:
ret
[SEGMENT DATA USE32 CLASS=DATA]
MsgTitle db "DLL", 0
MsgText db "En bref voici du texte a l'interieur de ma DLL", 10, 13, "Ici je saute une ligne ;-)", 0
MsgFailed db "Echec de la mise en place du hook", 0
MsgGood db "Hook En place ;-)", 0
[SEGMENT BSS USE32 CLASS=BSS]
HandleHook resd 1
Pour info, la fonction Test marche impec' et il semble que SetHook également mais à l'appel de la fonction SetWindowsHookEx(), tout foire :s
Si quelqu'un pouvait m'aider sa serait super

Merki ++