Obfuscaten – Wie?

Obfuskation (engl. obfuscate „vernebeln“, „unklar machen“, „verwirren“) ist ein Begriff aus der Softwaretechnik und beschreibt die absichtliche Veränderung von Programmcode, so dass der Quelltext für Menschen schwer verständlich oder schwer rückgewinnbar wird. Ziel ist es, den Aufwand für Reverse Engineering stark zu erhöhen, um Veränderung oder Diebstahl von Programmteilen zu erschweren.

Bei Interpreter- oder Skriptsprachen, wo der Quelltext zwangsläufig ausgeliefert wird, bedeutet das, die ausgelieferte Kopie des Quelltextes unkenntlich und (für Menschen) schwerer lesbar zu machen. Bei einem kompilierten Programm verwürfelt und verschleiert ein Obfuskator nicht den Quellcode, sondern entweder direkt das Kompilat oder eine Kopie des Quellcodes unmittelbar vor dem Kompilieren. Hier soll vor allem das (maschinelle) Dekompilieren verhindert werden bzw. das Dekompilat soll möglichst unverständlich werden

Obfuskation verändert den ausführbaren Code eines Programms, jedoch nur so, dass die Funktion des Programms erhalten bleibt. Zum Beispiel werden Variablen- und Funktionsnamen umbenannt, sofern sie aus dem Programm rückgewinnbar wären. Ebenfalls kann (bei einem kompilierten Programm) der Maschinen- oder Bytecode so verwürfelt werden, dass die Befehlsabschnitte, die einem Hochsprachenbefehlentsprechen, sich mit denen des vorherigen/nachfolgenden Hochsprachenbefehls mischen; oft werden auch zusätzliche nicht notwendige (Maschinen-)Befehle eingefügt. Das kann ein maschinelles Dekompilieren in die ursprüngliche Hochsprache deutlich erschweren oder sogar unmöglich machen.[2]

Ein Nebeneffekt kann, je nach Beschaffenheit des Codes, auch die Verkleinerung seines Speicherbedarfs sein (v. a. bei Skriptsprachenprogrammen), z. B. durch die Umbenennung langer Identifier in kürzere.[3] Das ist vor allem bei der Entwicklung von Website-Skripten vorteilhaft, da es das Übertragungsvolumen reduziert. Ebenfalls kann es vorteilhaft sein bei Anwendungsprogrammen für Endgeräte mit geringer Speicherkapazität oder Rechenleistung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.