Wie extrahieren Sie Klassen-Quellcode aus einer DLL-Datei?
-
11-10-2019 - |
Frage
Gibt es eine Software, dies zu tun? Ich habe keine nützlichen Informationen im Internet finden, so ich hier fragen.
Lösung
Andere Tipps
Nur verwaltete Sprachen wie c#
und Java
können dekompiliert completely.You vollständigen Quellcode anzeigen können.
Für Win32 dll
können Sie nicht Quellcode erhalten.
Für CSharp dll Verwenden Sie DotPeek becoz es kostenlos und funktioniert gleich wie RedGate Net Compiler
Haben Sie Spaß.
Verwenden Sie .NET Reflektor .
Sie können mit Reflector und verwenden auch Add-In Filegenerator Extrakt Quellcode in ein Projekt.
Mit Refraktor. Download von hier .
- Öffnen Sie die Software nach der Installation.
- Drücken Sie Strg + O und wählen Sie Ihre DLL-Datei.
- DLL wird in der linken Fensterbereich angezeigt werden.
- Rechtsklick auf Dll und Export Source Code auswählen.
- Wählen Sie den Ordner, in dem Sie Ihre Dateien exportieren
- Warten Sie eine Weile, es 2-3 Minuten dauern
Wenn Sie nur einige Grundlagen in der dll wissen wollen Montage z.B. Klassen, Verfahren usw., um sie zu laden dyanamically
Sie können die Verwendung von IL-Disassembler-Tool von Microsoft zur Verfügung gestellt werden.
Im Allgemeinen finden Sie unter: "C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ V7.0A \ Bin"
Ich benutzen Refraktor meinen Skript / Code aus dll zu erholen Datei.
Sie können mit dotPeek Das einzige, was ich zu sagen habe ist, dass, wenn es mit der rechten Maustaste auf die Klasse dekompilierte Quelle statt Doppelklick auswählen, da andernfalls nur dotpeek den Inhalt der lokalen cs-Datei angezeigt werden, nicht den dekompilierten Inhalt. Option Instanz
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"));
}
}