Problème hooking [Résolu]

Signaler
Messages postés
29
Date d'inscription
mardi 7 février 2006
Statut
Membre
Dernière intervention
3 janvier 2011
-
Messages postés
29
Date d'inscription
mardi 7 février 2006
Statut
Membre
Dernière intervention
3 janvier 2011
-
Bonjour !
Alors voilà j'ai un petit problème lors de l'installation d'un hook pour faire du subclassing. J'injecte un DLL dans un processus et il doit se répandre dans d'autres processus grâce au hook.

BOOL APIENTRY DllMain(  HANDLE hModule,  DWORD  ul_reason_for_call, LPVOID lpReserved)
{
   hMod    = (HINSTANCE) hModule;
   if(ul_reason_for_call == DLL_PROCESS_ATTACH)
    {
    char g_exePath[512];
    GetModuleFileName(0,g_exePath,MAX_PATH);
    MessageBox(NULL,g_exePath,"",MB_OK);
    hHook = SetWindowsHookEx(WH_CALLWNDPROC, HookProc, hMod, 0);
    }
    return TRUE;
}

Si je laisse la messagebox, le hook s'installe, tout est OK. Mais si je l'enlève, rien ne va plus, le hook ne fonctionne pas est le fichier DLL reste dans le processus dans lequel il a été injecté sans se répandre. Merci beaucoup si vous trouvez une astuce car ça fait plusieurs jours que j'essaie des variantes, mais en vain.

2 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Tu veux lancer un hook depuis une DLL qui est déjà une injection par hook ?
Si oui tu vas avoir un prob de réentrance en faisant cela. Lance direct un hook global WH_CALLWNDPROC
depuis l'EXE au lieu de la DLL.

ciao...
BruNews, MVP VC++
Messages postés
29
Date d'inscription
mardi 7 février 2006
Statut
Membre
Dernière intervention
3 janvier 2011

merci, ça marche !!