Ich suche seit geraumer Zeit nach guten Obfuscation Tools für C# Projekte, die ich kommerziell nutzen möchte. Dabei habe ich bisher mit folgenden Tools ein paar Erfahrungen sammeln können:
Generell sind die Tools alle sehr übersichtlich und besonders Smart Assembly bietet wirklich viele Optionen (Code Optimization, Error Reporting, Feature Reporting etc.). Mein Hauptanliegen ist allerdings, dass die Obfushatoren mit Com+ Registrierungen verschiedener Assemblies zurecht kommen müssen, da wir hier Interop zwischen verschiedenen Plattformen benötigen.
Habt ihr hier vielleicht schon gute Erfahrungen mit Obfuskatoren gesammelt? Wenn ja, was könnt ihr empfehlen? Preis der Software spielt erstmal keine Rolle, sie muss nur gut sein und ein tadelloses Ergebnis hervorbringen.
Hat die Software noch zusätzliche Features, wie Copy Protection o.ä. wäre das natürlich super, aber ist kein Muss. Primär geht es nur um Code Protection. Dazu sollten folgende Features im Tool zu finden sein:
- Trial oder Demo Version - Strong Name Signing - Dependencies Merging / Embedding - Pruning - Obfuscation (Types/Methods Name Mangling & Fields Name Mangling) - Encryption (Code & String) - Control Flow Obfuscation - Resources Compression / Encryption - Hinzufügen eines falschen Metadata Streams - Code Optimization
Die fett gedruckten Features sind mir besonders wichtig. Alles Weitere ist optional. Vielen Dank schonmal im Voraus :-)
Soweit ich weiß kann der folgende deiner Wünsche nicht erfüllen: - Code Encryption (wobei ich nicht weiß was du damit meinst) - Code Optimization - Resources Compression / Encryption - Pruning
Damit habe ich bisher allerdings Probleme bei einigen erneuten Strong Name Signing von bereits signierten Assemblies. Generell kein schlechtes Tool, aber hab bisher nicht alle Assemblies zuverlässig obfuskiert bekommen.
Nach einiger Zeit des Testens bin ich neben eziriz .NET Reactor beim Babel.NET Obfuscator gelandet. Ebenfalls sehr zu empfehlen, da sehr viele Optionen geboten werden und alles auch als Kommandozeile läuft.
Alle notwendigen Features sind ebenfalls enthalten wie bspw:
- Symbol Renaming - Generic Types and Methods - XML Rule Files - Unicode Normalizatio - Overloaded Renaming - Custom Obfuscation Character Set - Public Symbol Obfuscation - XAML and BAML Obfuscation
Zusätzlich finden sich noch einige Optionen zur Code-Optimization in dem Tool. Alles in Allem also auch ein super Obfuscator, so wie .NET Reactor auch und bei einem Preis von 199 EUR (Enterprise) auch durchaus für kleinere Gruppen nutzbar!