Comment extraire-vous le code source de classes à partir d'un fichier dll?
-
11-10-2019 - |
Question
Y at-il un logiciel pour le faire? Je n'ai pas trouvé des informations utiles sur Internet, donc je vous demande ici.
La solution
Vous ne pouvez pas obtenir le code exact, mais vous pouvez obtenir une version décompilé de celui-ci.
L'outil (et le meilleur) le plus populaire est réflecteur , mais il y a aussi d'autres décompilateurs .Net (comme Dis # ). Vous pouvez également décompiler le IL en utilisant ILDASM , qui est livré avec les outils .Net Framework SDK.
Autres conseils
langues gérées comme seul c#
et Java
peut être décompilé completely.You peut afficher le code source complet.
Pour Win32 dll
vous ne pouvez pas obtenir le code source.
Pour CSharp dll Utilisez dotPeek becoz gratuitement et fonctionne même que Redgate .Net compilateur
Amusez-vous.
Vous pouvez utiliser réflecteur et utiliser aussi Add-In FileGenerator pour extraire le code source dans un projet.
Utilisez Refractor. Télécharger de .
- Ouvrez le logiciel après l'installation.
- Appuyez sur Ctrl + O et sélectionnez votre fichier DLL.
- dll sera affiché dans le volet gauche.
- Faites un clic droit sur dll et sélectionnez Exporter le code source.
- Sélectionnez le dossier dans lequel vous souhaitez exporter vos fichiers
- Attendez pendant un certain temps peut prendre 2-3 minutes
Si vous voulez savoir que quelques notions de base à l'intérieur du dll assemblage par exemple Classes, méthode, etc., pour les charger dyanamically
vous pouvez utiliser l'outil IL désassembleur fourni par Microsoft.
En général situé à: "C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin"
Refractor pour récupérer mon script / code de dll fichier.
Vous pouvez utiliser dotPeek La seule chose que je dois dire que lorsque vous l'utilisez, faites un clic droit sur la classe pour sélectionner décompilé Source au lieu de double-cliquant, sinon dotPeek affiche uniquement le contenu du fichier cs local, et non le contenu décompilé. instance Option
var destinationfilename = "";
if (System.IO.File.Exists("nameoffile.dll"))
{
destinationfilename = (@helperRoot + System.IO.Path.GetFileName(medRuleBook.Schemapath)).ToLower();
if (System.IO.File.Exists(destinationfilename)) System.IO.File.Delete(destinationfilename);
System.IO.File.Copy(@'nameoffile.dll", @destinationfilename);
}
// use dll-> XSD
var returnVal =
await DoProcess(
@helperRoot + "xsd.exe", "\"" + @destinationfilename + "\"");
destinationfilename = destinationfilename.Replace(".dll", ".xsd");
if (System.IO.File.Exists(@destinationfilename))
{
// now use XSD
returnVal =
await DoProcess(
@helperRoot + "xsd.exe", "/c /namespace:RuleBook /language:CS " + "\"" + @destinationfilename + "\"");
if (System.IO.File.Exists(@destinationfilename.Replace(".xsd", ".cs")))
{
var getXSD = System.IO.File.ReadAllText(@destinationfilename.Replace(".xsd", ".cs"));
}
}