Explorer le code d'une DLL

JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013 - 21 avril 2011 à 10:36
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013 - 22 avril 2011 à 13:58
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

Utilisateur anonyme
21 avril 2011 à 11:00
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
0
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
21 avril 2011 à 11:25
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...
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
21 avril 2011 à 11:42
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, ...)

@++
0
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
22 avril 2011 à 13:58
Merci bien pour ces renseignements, je vais essayer de voir avec les logiciels que tu me conseille.
0
Rejoignez-nous