Codeerzeugung unter .NET
.NET arbeitet mit einer Runtime. Sind die Programme dann nicht zu langsam?
.NET-Anwendungen ("Assemblies") enthalten Microsoft-Intermediate-Language-Code (MSIL). Das ist ein Zwischencode, der vor der Ausführung in x86-Machinencode compiliert wird. Dabei sind Optimierungen auf den aktuellen Prozessortyp möglich, daher ist Performance akzeptabel. In vielen Fällen geht mehr Leistung verloren, wenn Programmierer die .NET-Klassen falsch einsetzen.
Mit der VM gewinnt man aber extrem an Stabilität, da (fast) keine falschen Pointer oder uninitialisierten Variablen usw. wie bei C++ vorkommen!
Und: Der Just in Time Compiler (JIT) arbeitet auf Methodenbasis. Innerhalb der Commen Language Runtime (CLR) wird dafür gesorgt, dass eine noch nicht aufgerufene und somit ausgeführte Methode erst compiliert wird, wenn sie tatsächlich aufgerufen wird. Dies hat den Vorteil, dass nicht die ganze Assembly auf einen Schlag bearbeitet werden muss.
Wie kann ich meinen IL-Code gegen Disassemblierung schützen?
Alle .NET-Sprachen erzeugen MSIL-Code, und das ist ein Prozess, der sich auch umkehren lässt. Durch Optimierungen erhält man ggf. nicht genau den Originalcode, jedoch dessen Funktionalität. Das Problem ist so alt, so lange es Prozessoren gibt und gilt selbst für x86-Maschinencode.
Die eigentliche Frage ist also letztlich nur, wie einfach es ist, Eigentum zu stehlen. Die MSIL-Abstraktionsebene lässt sich deutlich leichter lesen als Assembler. Das mit Visual Studio .NET gelieferte Tool ILDasm zeigt, wie es geht. Noch besser kann es der seit geraumer Zeit verfügbare Dienst "Salamander" (http://www.remotesoft.com/salamander/). .NET Reverse Engineering per Mausklick.
Die einzige Gegenwehr, die sich fuer .NET anbietet, sind so genannte "Obfuscators": Die erzeugen Änderungen an MSIL-Codes, die die Funktionalität der Codes nicht beeinträchtigen, den Durchblick durch solchen Code aber erschweren. Microsoft liefert mit VS .NET 1.0 keinen Obfuscator aus. Es gibt auch nichts, was da unter der Haube entsprechend agieren würde. Solcher Code ist ohne weitere Schutzmassnahmen Freiwild.
Ein E-Book zum Thema inkl. einer Obfuscation Engine gibt es von DanAppleman (http://www.desaware.com/Ebook4L2.htm)
Entsprechende Lösungen von 99 bis 2.500 US-Dollar gibt es von diversen Anbietern, wobei der Preis im Allgemeinen nicht auf die Produktqualität schließen lässt.