Où peut-on trouver une spécification pour les structures de données représentant une dll en mémoire?

StackOverflow https://stackoverflow.com/questions/381487

  •  23-08-2019
  •  | 
  •  

Question

Plus précisément, je veux savoir ce que la structure de données pour la section des importations (de idata) ressemble.

Était-ce utile?

La solution

Le format de fichier DLL est le même que celui des fichiers EXE, le format PE (Portable Executable). Vous pouvez obtenir une copie de la spécification de Microsoft. Vous pouvez également essayer Wotsit des informations fichier format général.

Windows fournit l'API ImageHlp pour travailler avec des fichiers exécutables. La fonction LoadImage ressemble à un bon endroit pour commencer.

Vous devriez aussi jeter un oeil à le chapitre « Format de fichier Portable Executable » de Undocumented Windows NT . Il semble décrire comment utiliser ImageHlp pour obtenir à différentes parties d'un binaire. Je pense que la partie que vous êtes le plus intéressé est sur la quatrième page, qui décrit la partie IMAGE_DIRECTORY_ENTRY_IMPORT du fichier PE.

Autres conseils

Il semble que je me trompais - la structure du fichier PE semble être identique dans la mémoire

.

On peut utiliser les structures définies dans winnt.h pour interpréter la mémoire.

Lorsque l'on regarde ces structures, il faut se rappeler que les décalages (ou « RVA de [1]) sont little endian . Je n'aurais probablement pas été aussi confus si je viens de signaler un programme à la mémoire pertinente plutôt que d'utiliser un débogueur.

[1] En parler microsoft.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top