Adresse de base de l'image EXE ou DLL
Est-il possible en C++/windows pour obtenir le fichier exe/DLL adresse de base d'image?
merci 🙂
source d'informationauteur Idov
Vous devez vous connecter pour publier un commentaire.
Est-il possible en C++/windows pour obtenir le fichier exe/DLL adresse de base d'image?
merci 🙂
source d'informationauteur Idov
Vous devez vous connecter pour publier un commentaire.
Si vous chargez le fichier binaire dans votre propre processus, vous pouvez utiliser GetModuleHandle. Elle renvoie une HMODULE, mais c'est le même que HINSTANCE et l'adresse de base.
Si vous voulez savoir ce que la base de l'adresse binaire préfère vous devriez lire l'en-tête PE. Voir ici et de regarder pour l'ImageBase champ dans IMAGE_OPTIONAL_HEADER.
Edit: GetModuleHandle(NULL) sera de retour l'adresse de base (bien que le type spécifié est HMODULE) pour le processus en cours.
Si vous êtes l'examen d'une DLL ou EXE fichier sur le disque, utiliser le dumpbin utilitaire. Il est installé avec Visual Studio ou le SDK.
Exemple de Sortie de dumpbin /en-têtes,:
J'ai trouvé que le plus pratique et précise pour obtenir l'adresse de base du module (et en mémoire la taille de l'image) est par GetModuleInformation (inclure psapi.h, lien vers psapi.lib):
Si vous souhaitez obtenir votre propre ImageBase Adresse de l'intérieur d'une DLL/EXE comment à ce sujet:
Si vous souhaitez énumérer tous les processus de modules, vous pouvez également utiliser CreateToolhelp32Snapshot:
Trouver code ci-dessous pour trouver de l'Adresse de Base d'Image en RPC :