Hook API GetProcAddress

NeoUmbrella Messages postés 117 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 15 janvier 2013 - 11 déc. 2005 à 15:30
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 11 déc. 2005 à 16:07
Salut, voila j'ai codé une dll qui a pour but de trouver toutes les fonctions chargées via l'API GetProcAddress. Pour ca j'ai fais un hook global pour que ma dll soit chargée dans tout les processus.
Puis je modifie l'import adress table pour que GetProcAddress pointe vers ma fonction, la voici :


FARPROC WINAPI My_GetProcAddress(HMODULE hModule, LPCSTR lpProcName)
{
OutputDebug("Appel API :
\n");
OutputDebug((char *)lpProcName);
OutputDebug("
\n");
if (!lstrcmpi( lpProcName, "GetProcAddress" ) )
return ( FARPROC ) &My_GetProcAddress;

return Old_GetProcAddress(hModule, lpProcName);
}
//OutputDebug écris dans un fichier html


Ca marche nikel pour certains programmes mais pour d'autres je ne récupère aucune fonction, pourtant avec un sniffer PE il y'a bien des fonctions importées. Par exemple pour Counter Strike 1.6, aucune fonction n'est loggée, quelqu'un peut m'aider sur le problème ?
Merci

NeoUmbrella Corp.

1 réponse

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 déc. 2005 à 16:07
L'appel à GetProcAddress est-il vraiment systématique pour un programme utilisant une DLL? Je ne sais pas mais je pense que c'est une question à se poser. En tous cas l'appel n'est pas obligatoire dans un source C++, mais peut être que le système effectue un appel à GetProcAddress qu'on ne voit pas
0
Rejoignez-nous