Kann ich Meine Dll-Datei
Habe ich eine .cs-Datei gibt es meines codes.Ich kompiliert habe, und ich habe ein .dll Datei.
Kann ich mein .dll-Datei und sehen Sie, meine c# - codes, weil ich wollen, kompilieren Sie es wieder?
- Bitte nicht setzen "C#" in Ihrem Titel, nur um zu zeigen, dass es eine C# - Frage. Das ist es, was die tags werden für.
- Wo haben Sie es nach dem kompilieren?
- Er soll gesagt haben: "nudge nudge wink wink" zusammen mit seinem Frage-er hat offenbar versucht, zu dekompilieren etwas, für das er nicht die Quelle.
- Oh! Wie naiv von mir
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ähm, Sie haben gesagt, dass Sie es kompiliert haben einmal. Dies bedeutet, dass tat Sie schon den source-code. Es scheint mir ein wenig abwegig zu versuchen, Sie zu dekompilieren, einer DLL, um es neu kompilieren, vorausgesetzt, Sie haben den Quell-code. Dies sagte der C# - compiler spuckt MSIL-code, was bedeutet, dass könnte man diesen MSIL-code zurück, aus dem Sie die kompilierte assembly mit einem tool wie ildasm.exe zum Beispiel. Dann könnten Sie ändern den resultierenden IL und kompilieren Sie es wieder in eine verwaltete assembly mit dem ilasm.exe - Dienstprogramm.
Natürlich, wenn die ursprüngliche Versammlung unterzeichnet wurde, mit einem starken Schlüssel, werden Sie nicht in der Lage sein, es zu unterzeichnen, mit dem selben key, wenn Sie nicht entsorgen Sie die mit dem privaten Schlüssel.
Gibt es einige tools, wie ILSpy (kostenlos) und .NET Reflector (kommerziell), die Sie zu zerlegen, eine verwaltete assembly wieder in einige managed Sprachen (C#, VB.NET, ...). Natürlich wird während dieses Prozesses können Sie nicht erwarten, um die exakt gleiche Quellcode verwendet wurde, die zum kompilieren der assembly zunächst, vor allem, wenn es kompiliert wurde, im Release-Modus mit Optimierungen eingeschaltet, wie Dinge wie die Namen lokaler Variablen und Kommentare sind einfach nicht Teil der resultierenden assembly.
Verwenden
Reflector.Net
, Ihre code-Ansicht und Sie können es verwenden, um zu zerlegen die DLL. Alternativ, wenn Sie die original-cs-Dateien, dann können Sie neu erstellen mit Hilfe eines C# - compiler.Können Sie mit einem disassembler wie Reflektor (oder eine der vielen alternativen) zerlegen des CIL zurück zu C#.
Nicht sicher, warum Sie würde es brauchen, wenn Sie die kompilierte DLL-sich - sicherlich haben Sie den source-code?
Da Sie mit .NET, ja. .NET-assemblies sind eigentlich entwickelt, um leicht dekompiliert, so ist die Reflexion einfacher und schneller.
Müssen Sie einfach eine Dekompilierung tool wie .NET Reflector zu tun, die Dekompilierung. Reflektor ist jetzt ein retail-Produkt, aber es gibt einige freeware-alternativen, die ich verwenden CodeReflect.
Jedoch, obwohl Sie ein tool wie dies wird Ihnen zeigen, etwas in der Nähe zu Ihrem ursprünglichen code, first off, es wird nicht exakt sein (bedingt kompilierten code wird nicht angezeigt, und bestimmte Anrufe und Konstrukte optimiert werden kann, oder gleich Aussehen in IL als ein etwas anderes Konstrukt), und die zweite, es wird nicht ermöglichen es Ihnen, etwas zu ändern. Wenn Sie die .cs-Datei und eine Kopie von Visual Studio (oder MSBuild; ein command-line tool von VS), neu kompilieren der Quelldatei in die DLL.