|
|
Lexikon auf Ihrer Homepage |
|
Lexikon als Lesezeichen hinzufügen |
Der Begriff Obfuscator (engl. obfuscate „verdunkeln“, „verwirren“) bzw. Quelltextverschleierung bezeichnet ein Mittel zur Verschleierung von Quelltext. Es wird in erster Linie eingesetzt, um Programme vor Reverse Engineering zu schützen. Hierzu wird aus einem gut les- und nachvollziehbaren Programmcode – meist unter Nutzung speziell dafür entwickelter Tools – eine für Menschen schwerer lesbare Form generiert, die aber von der verarbeitenden Maschine etwa genauso schnell ausgeführt wird und die gleiche Funktionalität ausübt wie der Originalcode.
Inhaltsverzeichnis |
Ein Obfuscator muss die Funktionalität des Originalprogramms erhalten und sollte als Resultat ein Programm liefern, das nicht wesentlich langsamer ausgeführt wird als das Originalprogramm.
Ein Nebeneffekt kann, je nach Beschaffenheit des Codes, auch die Verkleinerung dessen Speicherbedarfs sein, z. B. durch die Umbenennung langer Identifier in kürzere. Dies ist vor allem bei der Entwicklung von Anwendungsprogrammen für mobile Endgeräte mit geringer Speicherkapazität oder Rechenleistung vorteilhaft.
Die Veränderung eines Programmes mit einem Obfuscator führt in der Regel dazu, dass der Ergebnis-Code kaum zu debuggen ist, weil die nachträgliche Zuordnung einer Fehlerquelle im umgewandelten Code zu ihrem Pendant im Originalcode (zwecks genauerer Fehleranalyse) sehr zeitaufwendig bis unmöglich sein kann.
Ein Obfuscator ist keine Anwendung der sogenannten Steganografie oder Kryptografie, da beim Obfuscator nur das Verständnis für den Menschen die Hürde ist (also „Security through obscurity“), nicht jedoch in formaler Hinsicht für die ausführende Maschine oder z. B. einen Decompiler.
Um verschiedene Skripte wie JScript-, VBScript- und insbesondere ASP-Dateien zu verschleiern, empfiehlt Microsoft, den Windows Script Encoder zu benutzen. Im Falle einer Kompromittierung des Webservers soll der Angreifer nicht in der Lage sein, zu verstehen, wie die ASP-Anwendung funktioniert. Mittlerweile gibt es jedoch Decoder, um die Verschleierung rückgängig zu machen.
Für das Verschleiern von Java Bytecode gibt es eine Reihe von Code-Obfuscatoren. Diese sind: bb_mug, CodeShield, DashO, jarg, JavaGuard, JCloak, jmangle, JOBE, Jode, JShrink, Marvin, ProGuard, Sandmark, Retroguard, Smokescreen, yGuard und Zelix Klassmaster
Des Weiteren gibt es Programmierwettbewerbe für die am kreativsten verschleierten Programm-Quelltexte: