.NET Assembly (DLL, EXE) Disassembler und Manipulator

Di, 23.02.2010 - 16:27 -- admin

Insofern man in .NET kompilierte Assemblies nicht extra schützt, liegen die erstellen Dateien innerhalb von z.B. DLL und EXE quasi im Quelltext vor. Dies ist auch durchaus so gewollt, da man hiermit per Verweise in eigenen Projekten auf diese Datei zugreifen kann und somit mit unterschiedlichen Programmsprachen auf die Funktonionen innerhalb der fremden Datei zugreifen kann.

Zum Einsehen in den kompilierten Dateien gibt es mittlerweile recht gute freie Tools, die sogar in bereits kompiliert vorliegenden Dateien noch Veränderungen durchführen können.

.NET Reflector

.NET Reflector ist eigentlich das beste Produkt überhaupt. Nach Auswahl einer Dateien stellt das Programm alle Methoden, Funktionen, Klassen, ... dar. Um sich den genauen Quelltext eines Objektes anzeigen zulassen, genügt ein Rechtsklick und per Disassamble wird der Source-Code ausgegeben. Man kann gleichzeitig noch eine Sprache auswählen z.B. Visual Basic, C# in welcher der Quelltext ausgegeben werden soll.

.NET Reflector Addon: Reflexil

Der .NET Reflector ist ein reines "ReadOnly" Programm, soll heißen, man sieht zwar den Source-Code kann aber keine Änderungen vornehmen. Allerdings lässt sich das Programm durch Addins erweitern. So stellt der Reflexil (CodeProject Tutorial) eine Editorfunktion innerhalb der gewohnte Oberfläche bereit. Neben ändern der Funktionsaufrufen und Parametern kann auch direkt Code über die Funktion Replace all with code... eingetragen werden, den das Addin dann entsprechend umwandelt und direkt in die Datei einbindet.
Zum Installieren reicht es die aktuelle Version runterzuladen und die DLL aus einem beliebigen Ordner über die Addinfunktion einzubinden.

Dotnet IL Editor

Der Dotnet IL Editor kann sich an jeden Windows Prozess hängen, der .NET Funktionen ausführt. So lässt sich ein Process während der Laufzeit im Quelltext ansehen (über das Menü Debug > Attach to process). Ebenso ist es natürlich möglich wie mit dem .NET Reflector bereits ein kompiliertes Assembly im Source-Code anzusehen.

Obfuscator

Möchte man sein "geistiges Eigentum" vor derartigen Programmen schützen, so muss man sich einen .NET Obfuscator besorgen. Diese Tools sind allerdings meist nicht gerade günstig. Im Microsoft Visual Studio ist hier bereits ein einfachen Programm Dotfuscator Community Edition enthalten