web-dev-qa-db-fra.com

Quel outil peut décompiler un DLL en code source C ++?

J'ai un ancien DLL qui a cessé de fonctionner (log2vis.dll) et je veux regarder à l'intérieur pour voir quels objets il utilise.
Le DLL a été écrit en C++ (pas .NET). Existe-t-il un outil qui décompilera/désassemblera les fichiers C++?

28
Lea Cohen

Cela pourrait être impossible ou du moins très difficile. Le contenu de la DLL ne dépend pas (beaucoup) de son écriture en C++; c'est tout le code machine. Ce code a peut-être été optimisé, de sorte que de nombreuses informations présentes dans le code source d'origine ont tout simplement disparu.

Cela dit, ici est un article qui passe en revue de nombreuses informations à ce sujet.

27
unwind
11
Malkocoglu

Je pense qu'un C++ DLL est un fichier de code machine. Par conséquent, la décompilation ne produira que du code assembleur. Si vous pouvez lire cela et créer C++ à partir de cela, vous êtes prêt à partir.

8
RvdK

Je ne connais aucun décompilateur. W32dasm est un bon désassembleur Win32.

5
Szczepan

Il n'y a vraiment aucun moyen de le faire car la plupart des informations utiles sont rejetées dans le processus de compilation. Cependant, vous voudrez peut-être jeter un œil à ce site pour voir si vous pouvez trouver un moyen d'extraire quelque chose de la DLL.

4
anon

Le plus proche que vous aurez jamais pour faire une telle chose est un dissasembler, ou des informations de débogage (Log2Vis.pdb).

0
Naim Arnold