Bonjour, après avoir lu plusieurs sources de ce site sur le hook de l'API, j'essaye de réaliser ma propre source, pour bien comprendre comment cela fonctionne.
Je réalise donc un hook global, puis lorsque l'application qui m'intéresse map ma DLL, je récupère l'adresse de la fonction qui m'intéresse via les instructions suivantes :
[code]
HMODULE hDll;
GetModuleHandleEx( 0, dllName, &hDll );
DWORD *adresse = (DWORD*)GetProcAddress( hDll, fonction );
[/code]
Peut être qu'il y a un problème à ce niveau?
Puis je veux ensuite modifier cette adresse, donc je doit modifier les accès à cette zone mémoire, via la fonction VirtualProtect :
[code]
MessageBox( 0, L"Ici", L"Debug", 0 );
VirtualProtect( (LPVOID)adresse, 4, PAGE_EXECUTE_READWRITE, previousProtection );
MessageBox( 0, L"Ici2", L"Debug", 0 );
[/code]
J'ai entouré la fonction de MessageBox, pour m'assurer que c'est bien à ce niveau que l'application plante. Donc je n'ai pas d'erreur de compilateur, mais lors de l'exécution, je recois ma première MessageBox, puis l'application cesse de fonctionner.
Ce que je ne comprends pas c'est pourquoi la fonction n'échoue pas tout simplement auquel cas je pourrais récupérer le message d'erreur...
Merci pour votre aide.