2016-06-20 15 views
-2

Ich versuche, einen unserer alten Quellcodes zu dekompilieren, die in .Net 1.1 entwickelt wurden. Ich habe einige verschiedene Decompiler-Tools ausprobiert, aber keine von ihnen konnte mir ein gutes Ergebnis geben, das ich kompilieren kann. normalerweise gibt es Teile des Codes, die viele Fehler in .Net 1.1 haben, aber es ist feiner Code in 2.0 oder später. Also nehme ich an, dass sie zu neueren Version von .Net als 1.1 dekompilieren. Werkzeuge, die ich bereits verwendet habe, sind: Reflektor, dotPeek, CodeReflect und einige mehr. Ich brauche ein Werkzeug, das in 1.1 dekompilieren kann und ich wäre in der Lage, den gleichen Code in 1.1 zu kompilieren, es muss kein kostenloses Werkzeug sein, aber ich muss in der Lage sein, den Code zu speichern, damit ich es kompilieren kann..Net 1.1 dekompilieren Werkzeug

Danke,

+0

Aus Neugier, was machst du das Upgrade auf 2.0 ist keine Option? –

+0

Sie könnten versuchen, eine sehr alte Version von .NET Reflector zu finden, es ist der erste .NET-Dekompierator AFAIK - die anderen wurden nach dem Totalausfall von Red Gate gemacht, um ihr Versprechen zu halten, dass das Tool nach dem Kauf frei bleiben wird. –

+0

Unternehmen an diesem Punkt möchte nicht aktualisieren, da neuer Code kommt, aber inzwischen gibt es einige Änderungen, die es vorziehen, es in dieser Version zu tun, und sie möchten nicht alle einzelnen Teile der Website testen. – Ehsan

Antwort

1

Die Chancen sind diese Baugruppe irgendwie modifiziert wurde (d.h. verschleierten, IL optimiert, konvertiert 2.0 etc. .NET) nach der Kompilierung.

Angenommen, die Assembly wurde in C# erstellt (wäre aber auch für VB gültig), wurde sie in C# 1.2 erstellt. C# 2.0 kam mit .NET 2.0. Sie sagen also, dass Decompiling gültigen C# 2.0-Code und ungültigen C# 1.2-Code erzeugt, dh der dekompilierte Code verwendet in C# 2.0 eingeführte Sprachfeatures wie Generics, Iteratoren usw. Alle in C# 2.0 eingebrachten neuen Features werden jedoch wie IL-Makros implementiert , dh der Compiler würde ein vordefiniertes Stück IL (in einigen Fällen ganze Methoden oder Klassen) für ein gegebenes Sprachmerkmal erzeugen. Daher werden diese Sprachmerkmale durch IL-Musterübereinstimmung dekompiliert, d. H. Der Dekompiler sucht nach genau diesen gleichen spezifischen Compiler-erzeugten Stücken von IL und wandelt sie zurück in Sprachmerkmale um. Es ist sehr unwahrscheinlich, dass der C# 1.2-Compiler dieselben IL-Muster erzeugt, z. Die IL, die vom C# 2.0-Compiler für Generika oder Iteratoren generiert wird, ist ziemlich einzigartig und der C# 1.2-Compiler kann kaum etwas Ähnliches erzeugen.

Versuchen Sie, JustDecompile für diese Assembly zu verwenden, aber tun Sie das auf einem Computer, auf dem .net 1.1 installiert ist (Zugriff auf referenzierte Assemblys unterstützt den Decompiler). Wenn es auf die gleiche Weise fehlschlägt, stellen Sie bitte ein dekompiliertes ungültiges C# 1.1-Codebeispiel bereit

Verwandte Themen