2010-08-11 10 views
4

est-ce possible de voir le contenu et les fonctions d'un fichier DLL ... il y a
quelques fois que je jouais avec OlyDBG alors je l'ai trouvé il y a l'option pour voir le contenu de dll ...
alors suggérez-moi un bon outil ou soft pour cela ...Affichage du contenu d'un fichier DLL

et supposons que j'ai une DLL nommée "Python27.dll" ...
maintenant j'ai besoin de voir le contenu de cette DLL alors qu'est-ce que je fais. ..
thanx ...

Répondre

5

Bien que non trivial à utiliser (vous devez comprendre le format d'un exécutable portable, alias PE, fichier), pefile semble un outil bon, puissant et polyvalent dans le but de visualiser une DLL ou tout autre fichier PE (I ne risque pas de l'utiliser pour changer un tel fichier, même si je vois que c'est l'une de ses caractéristiques).

Par exemple, usage examples extrayant (et l'édition pour afficher une dll au lieu du nom de fichier tout aussi hypothétique qu'ils utilisent, ce qui est un exe ;-) du module:

import pefile 
pe = pefile.PE(‘/path/to/pefile.dll’) 
for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols: 
    print hex(pe.OPTIONAL_HEADER.ImageBase + exp.address), exp.name, exp.ordinal 

devrait, selon le wikipage je fait à, afficher quelque chose comme:

0x7ca0ab4f SHUpdateRecycleBinIcon 336 
0x7cab44c0 SHValidateUNC 173 
0x7ca7b0aa SheChangeDirA 337 
0x7ca7b665 SheChangeDirExA 338 
0x7ca7b3e1 SheChangeDirExW 339 
0x7ca7aec6 SheChangeDirW 340 
0x7ca8baae SheConvertPathW 341 
0

J'ai fait un peu de travail avec ctypes, et le chargement de dlls dans w indows, mais je ne pense pas que DLL ait une sorte d'introspection. Ce n'est vraiment pas un gros problème, car tous les appels de fonction dans les DLL sont statiques. Si vous essayez d'utiliser une DLL non documentée, vous devez non seulement connaître les noms des fonctions, mais également les paramètres des fonctions. Vous auriez à faire de l'ingénierie inverse de la DLL, pas une petite tâche. Donc, à mon avis, je dirais que non.

3

Dependency Walker peut fournir ce que vous voulez/besoin - il montre certainement tous les points d'entrée dans une DLL.

1

Sous Windows, DUMPBIN fournit des fonctionnalités d'inspection de DLL. Par exemple:

DUMPBIN /EXPORTS C:\path\to\my.dll 

affichera toutes les définitions exportées.

Questions connexes