So wird z.B. aus folgendem:
attachment_1.png (5,23K)
Anzahl der Downloads: 68
folgendes:
attachment_2.png (4,43K)
Anzahl der Downloads: 81
Wie zu erkennen ist, wurden die Methoden- sowie Variablennamen umbenannt. Bei dieser simplen Beispielfunktion ist der Programmablauf auch im verschleierten Zustand noch gut nachzuvollziehen. Handelt es sich jedoch um eine komplexere Funktion, so ist das nachvollziehen um einiges schwerer aber nicht unmöglich. Dieses Beispiel habe ich mit dem Dotfuscator in der CommunityEdition verschleiert, welcher kostenlos bei dem VisualStudio (nicht den Express Versionen) dabei ist.
Leider ist der Funktionsumfang sowie die Qualität der Verschleierung in der Community Edition des Dotfuscators sehr beschnitten. Ein gutes Resultat ist nur mit kostenpflichtigen Produkten zu erzielen, im folgenden eine Liste mit den bekanntesten:
- Dotfuscator Professional (Preis unbekannt)
- Spices.Net Obfuscator (699 USD)
- Xenocode Postbuild(1599 USD)
- Skater .NET Obfuscator (Light Kostenlos* /Standard 98.89USD/Professional 198.89USD)
- {smartassembly} (Standard 349€/Professional 499€/Enterprise 649€)
- Eziriz .Net Reactor (129€)
- Microsoft Software Licensing And Protection Services
- Macrobject Obfuscator.NET(199 USD)
- Cryptor Obfuscator(49 USD)
- XHEO CodeVeil(99 USD Express / 1199 USD Professional / 2499 USB Team Build)
- Phoenix Protector(Kostenlos, empfehlenswert)
- Babel .NET Obfuscator(Kostenlos, ebenfalls empfehlenswert)
* = Die Light-Edition ist nicht empfehlenswert!
Im folgenden das gleiche Beispiel, welches mit {smartassembly} verschleiert worden ist:
attachment_3.png (4,61K)
Anzahl der Downloads: 90
Hier werden unter anderem absichtlich ungültige Metadaten in den Code injeziert, welche den Programmablauf nicht stören, aber bei Reflektoren Abstürze oder Meldungen wie in dem Bildausschnitt erzeugen.
Abschließend ist noch zu erwähnen, dass Zeichenfolgen (Strings) welche im Klartext im Programm gespeichert werden auch durch gute Obfuskatoren meißt ungeschützt im Programmcode zu finden sind. Es ist daher nicht zu empfehlen Passwörter o.ä. als Variablen im Programm zu speichern.
Dieser Beitrag wurde von Dennis Alexander bearbeitet: 12. Feb 2010 - 13:29
Änderungsgrund: Update


Hilfe




.



















RSS Feed