Explorer le code d'une DLL

Signaler
Messages postés
161
Date d'inscription
lundi 28 février 2011
Statut
Membre
Dernière intervention
11 février 2013
-
Messages postés
161
Date d'inscription
lundi 28 février 2011
Statut
Membre
Dernière intervention
11 février 2013
-
Salut,

J'essaie depuis plus d'un mois d'utiliser une DLL pour un de mes programmes, mais ceux en vain, je tâtonne et avance au rythme d'une limace.
Je me demandais si il été possible d' "ouvrir" cette DLL affin de voir les codes qu'elle contient affin de vraiment avancer dans ma programmation?

Silvère

4 réponses


Bonjour

Une DLL est une bibliothèque de liens dynamiques, elle permet à Windows de charger une seule fois en mémoire une bibliothèque qui peut être utilisée par plusieurs programmes (ce qui permet de consommer moins de mémoire). Elle ne contient pas du code source écrit dans un langage de programmation mais plutôt du code machine pas très lisible et parfois d'autres ressources. Néanmoins, tu peux utiliser un utilitaire pour explorer les "services" qu'elle expose, je pense à Dependency Walker :
http://www.dependencywalker.com/
it lists all the functions that are exported by that module

En gros, cela te permettra de savoir quelles méthodes de cette DLL tu peux appeler.

N'étant pas un spécialiste Windows et n'utilisant qu'anecdotiquement cette famille de système d'exploitation, je ne pourrai pas t'être d'une grande aide à l'avenir. Bon courage.











T.U.E.R yeah! vive java
Messages postés
161
Date d'inscription
lundi 28 février 2011
Statut
Membre
Dernière intervention
11 février 2013

Merci bien, j'utilise déjà dependency Walker, mais ce n'est pas assé détaillé pour que je sache biens quelles instructions envoyer lors de l'appel des différentes fonctions de ma DLL...
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

Le mieux est de trouver une doc qui correspond à la dll que tu veux utiliser. Sinon, il n'y a pas d'autres choix que le reverse engineering, ce qui suppose de bien connaître l'assembleur.

En c++, les paramètres des fonctions sont indiqués dans les symboles exportés mais cela n'empêche pas de ne pas forcement connaître la forme de l'objet à laquelle la méthode s'applique.

En C, tu as le nombre de paramètres car le symbole exporté indique la taille de la pile qui constitue les paramètres.

D'autres outils pour voir le format PE (portable executable):
PE explorer, objdump, n'importe quel débugger ...

Certain programmes ont des sections cryptées ou compressées et ne sont lisibles qu'après que la section soit decodée. C'est utilisé en général pour la protection des logiciels. Cependant, certaines choses sont forcement compatibles avec ce que Windows permet, il faut forcement un point d'entrée, par exemple.

Le format PE est utilisé pour la plupart des fichiers executables sous Windows (.exe, .dll, .sys, ...)

@++
Messages postés
161
Date d'inscription
lundi 28 février 2011
Statut
Membre
Dernière intervention
11 février 2013

Merci bien pour ces renseignements, je vais essayer de voir avec les logiciels que tu me conseille.