Wie bekomme ich Modul HANDLE von func ptr in Win32?

7

Ich arbeite an nativen Anrufbindungen für eine virtuelle Maschine, und eine der Funktionen besteht darin, Standard-libc-Funktionen zur Laufzeit nach Namen suchen zu können. Unter Windows wird das ein wenig mühsam, weil ich ein Handle auf das msvcrt-Modul bekommen muss, das gerade in den Prozess geladen wird. Normalerweise ist dies msvcrt.dll, aber es könnte auch andere Varianten geben (msvcr100.dll, etc) und ein Aufruf von GetModuleHandle ("msvcrt") könnte fehlschlagen, wenn eine Variante mit einem anderen Namen verwendet wird.

Was ich gerne tun könnte, ist eine umgekehrte Suche, nimm einen Funktionszeiger von libc (den ich im Überfluss habe) und erhalte eine Handhabe für das Modul, das es bereitstellt. Grundsätzlich so etwas wie:

%Vor%

Gibt es in der Win32-API so etwas, ohne in einen manuellen Prozessschritt und Symboltabellen zu gehen? Umgekehrt, wenn ich das Problem überdenke, gibt es einen einfacheren Weg, eine libc-Funktion anhand des Namens auf win32 nachzuschlagen?

    
Whiteknight 18.07.2011, 14:01
quelle

3 Antworten

8
%Vor%     
Joel Lucsy 18.07.2011, 14:18
quelle
14

Der dokumentierte Weg, das Modul-Handle zu erhalten, besteht darin, GetModuleHandleEx .

%Vor%     
Arty 13.08.2012 09:52
quelle
0

Leider müssen Sie wie befürchtet durch Module gehen. Es ist aber nicht so schlimm. Hier ist die Idee, einige Code im Editor geschrieben:

%Vor%     
Mike Kwan 18.07.2011 15:11
quelle

Tags und Links