Obfuskation (Software)
Obfuskation (engl. obfuscate „vernebeln“, „unklar machen“, „verwirren“, „verschleiern“) 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, unerwünschtes Kopieren von Programmteilen oder Diebstahl von geistigem Eigentum zu erschweren oder um die Funktionalität z. B. von Schadsoftware zu verschleiern.
Bei Interpreter- oder Skriptsprachen, sofern der Quelltext 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 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.