7
votes

Code de décompilation (langue indépendante)

Quel logiciel peut être utilisé pour afficher le code source dans un fichier .dll, quel que soit le langage de programmation utilisé pour le code source?


0 commentaires

10 Réponses :


1
votes

Vous êtes intéressé par des assemblages de décompilation. Eh bien, voici un démarrage sur décompilation .NET assemblages: http://aspnet.4guysfromrolla.com/ Articles / 080404-1.aspx

Un outil populaire dans la communauté .NET pour les assemblages de décompilation est réflecteur .NET


2 commentaires

Pour diverses définitions de "View Source Code". Acclamations.


Ya .. .NET DLL code que je peux voir, mais j'ai la dll de langue win32. La compilation est-elle possible pour cela.



1
votes

Ce sont des formats différents.

Pour une DLL .NET, vous pouvez utiliser ildasm.exe (installé avec .NET Framework) ou .NET réflecteur (téléchargement)


2 commentaires

Merci, mais que diriez-vous de Win32 DLL?


Ils ne sont pas si facilement décompilés dans leurs langues d'origine. Je ne connais pas d'un bon outil, autre qu'un dissaseMbler (et ensuite vous verrez uniquement l'assemblée X86 ...)



17
votes

Si c'est une DLL gérée (.NET), vous pouvez l'ouvrir à l'aide d'outils tels que réflecteur ou Ildasme et vous Voir le code IL . (Editer 2017-02-03: En 7 ans et plus, les démonbleurs .NET ont bien sûr progressé beaucoup et sont maintenant en mesure de produire un code C # très décent)

Si c'est une DLL non gérée (natif), vous n'avez pas de chance. Le mieux que vous puissiez faire est de charger un désassembleur. Ce qui vous conduit presque nulle part à moins que vous sachiez exactement où vous voulez aller.


0 commentaires

0
votes

Pour décompiler une dll .NET, vous pouvez utiliser réflecteur .NET . Cela fonctionnera pour des dlls écrites dans n'importe quelle langue .NET.

Pour décompiler un fichier JAR JAVA, essayez Java Decompiler .

Décompiler le code natif (C ++) est beaucoup plus difficile.


0 commentaires

1
votes

Ce n'est pas possible (1) de décompiler le code d'objet pour le code source. Inspecter une interface est une autre question tout à fait; Il existe des outils qui existent mais je ne sais pas de rien.

(1) - Eh bien, d'accord, il est possible pour certaines langues et sous certaines conditions, mais le code produit ne sera pas lisible exactement ...

Le seul code lisible que vous obtiendrez est la langue d'assemblage (il existe de nombreux programmes pour cela). Certaines langues peuvent être décompilées au code source originale (ou proche de), telle que Visual Basic 3. mais qui écrit des programmes dans VB3 de nos jours? Personne. En ce qui concerne les importations / exportations de la DLL, vous pouvez utiliser le programme Walker de dépendance de: http://www.dependencywalker.com/

Pour certaines langues, par exemple Visual Basic ou C #, vous pouvez obtenir un code source lisible si vous utilisez un bon décompiler et que le code n'est pas obscope (ce que la plupart du temps n'est pas)

Vérifiez ce site si vous êtes intéressé par la décompilation: http://www.program-transformation.org/transform/decompilationPossible

Pour .NET, le réflecteur .NET est la voie à suivre. Il va décompiler votre DLL dans le C # ou vb.net http://www.aisto.com/roderer / dotnet /


0 commentaires

0
votes

sauf si vous êtes dans la terre .NET, qu'est-ce que la DLL est un code binaire. La seule langue que vous puissiez voir cela en est assemblable - qui est juste un moyen mnémonique de présenter la langue de la machine.


0 commentaires


0
votes

Indépendamment d'une langue .NET que vous utilisez - tout sera compilé vers MSIL (langue intermédiaire Microsoft). Vous pouvez utiliser des outils tels que l'ildasque pour le convertir en "texte démonté" lisible:

http://msdn.microsoft.com/en-us/library /f7dy01k1.aspx

Vous pouvez également utiliser le réflecteur: http://www.builderau.com.au/program/asp/soa/look-inside-net-dll-files-with-reflector/0,339028371,339287377,00.htm < / p>

examiner les classes et les méthodes (il prend en charge différentes langues .NET)


0 commentaires

1
votes

Il y avait assez de choses sur la décompilation .NET. Si vous décidez de commencer par des fichiers natifs inverse-ingénierie, je vous recommande d'utiliser IDA . < / p>

Il prend en charge différentes architectures de processeur, détecte et affiche une utilisation des bibliothèques standard (afin que vous puissiez facilement trouver des lieux d'intérêt), affiche des graphiques de dépendances entre les sous-routines, montre des arguments de procédures à la pile, etc. Il peut également être scripté et il peut également être scripté et là re scripts que détecter les classes C ++ et try-attraper des blocs , < a href = "http://www.openrce.org/downloads/details/250/classandinterfacetonames" rel = "nofollow noreferrer"> trouve les noms des interfaces COM des UUIDS et de nombreuses autres choses. C'est un excellent outil et il y a une version gratuite de celui-ci.


1 commentaires

Quelques CAVEATS À propos de l'IDA: 1. La version gratuite (disponible sur le Centre de téléchargement ) est de nombreuses sorties de la version commerciale et ne prend en charge que 32 bits binaires; 2. La version commerciale "Starter" coûte actuellement 589 USD et "ne prend pas en charge les fichiers 64 bits;" 3. La version "professionnelle" (qui prend en charge les fichiers 64 bits) coûte 1129 USD.



0
votes

pour DLL natif de dll's Ce programme , décompiler des rayons hexagonaux (une couche sur le dessus de l'excellent désassembleur Idapro-débogueur) est probablement aussi proche que possible de l'obtenir. Il ne restaure pas le code d'origine mais convertit le démontage dans un pseudocode de type C. Ce n'est pas bon marché cependant.


0 commentaires