Michael Haephrati, CodeProject
29.08.2022, 10:29 Uhr
TinyObfucate: Strings verstecken
Der Experte für Softwareentwicklung und Informationssicherheit Michael Haephrati erklärt anhand eines Lehrbeispiels, wie man Programmcode verschleiert.
Der Zweck von Obfuskatoren besteht im Allgemeinen darin, Teile des Codes, des Ablaufs und der Funktionalität eines Programms so zu verbergen, dass sie unverständlich werden. Verräterisch sind vor allem Strings, die in den Programmcode oft lesbar eingebettet sind. Für professionelle Obfuscator-Programme kann man gut und gerne 10.000 US-Dollar ausgeben. Für alle, die wissen wollen was hinter solchen Verschleierungsprogrammen steckt, hat Haephrati mit TinyObfuscate ein kleines C++-Beispiel, genauer einen String Obfuscator gebaut, den er in diesem CodeProject-Artikel vorstellt.
Der Zweck von TinyObfuscate ist es, Strings zu verstecken. Wichtig zu wissen ist, dass Obfuscation KEINE Form der Verschlüsselung ist. Jede Verschlüsselung kann geknackt werden. Obfucation verschlüsselt nicht, sondern versucht quasi die "Nadel" in einem Heuhaufen zu verstecken, beispielsweise durch Hinzufügen von Junk-Code und das Durcheinanderwürfeln der Zeichen. Das Ziel: es wird länger dauern und mehr Ressourcen erfordern, die "Nadel" zu finden, als eine verschlüsselte Zeichenfolge zu entschlüsseln, die in einigen Fällen leicht gefunden werden kann.
Das Tool von Haephrati gibt einen kleinen Vorgeschmack darauf was Obfuskation ist. Außerdem beschreibt sein Artikel nur das Verschleiern von Zeichenketten. Wenn Obfuskation in kommerziellen Produkten durchgeführt wird, umfasst sie auch die Verschleierung von Funktionen, API-Aufrufen und mehr.