1. Einleitung
Die Aufgabe eines Obfuscators besteht darin, überflüssige Informationen aus einem Quelltext zu entfernen. Zum einen sind hierzu alle Kommentare zu löschen. Zum anderen sollen Konstanten, Variablen, Klassen und Funktionen zufällige Namen erhalten. Falls möglich, soll die Lesbarkeit des Quelltextes auch noch durch eine andere Formatierung verschlechtert werden. Ursprünglich wurde ein Obfuscator eingesetzt, um kommerziellen Quelltext vor der Neugier der eigenen Kunden zu schützen.
Viel wichtiger ist jedoch der Schutz von Skripten vor potentiellen Angreifern. Falls ein hartnäckiger Angreifer einen Web-Server erobern will, so wird er früher oder später die Quelltexte der Skripte erhalten. Auf dieser Basis ist es dann wesentlich einfacher, einen Einbruch vorzubereiten.
Bestimmte Angriffe auf Web-Applikationen benötigen die Kenntnis einzelner Variablennamen. Auch hier kann ein Obfuscator eingesetzt werden, um die Anwendung bis zur Installation des Patches zu schützen.
Nun stellt sich die Frage, wozu ein weiterer Obfuscator notwendig ist. Natürlich wäre es sinnvoller, bei einem bestehenden Projekt mitzuarbeiten und diese Programme zu verbessern. Mir ist es jedenfalls nicht gelungen, meine Programme mit einem anderen Obfuscator zum Laufen zu bringen. Andererseits habe ich die Quelltexte der anderen Projekte nicht verstanden. Hinzu kommt, dass die Programmierung von iddin weniger Zeit in Anspruch nahm, als alle meine bisherigen Versuche.
Da wir einmal dabei sind, was hat es mit dem Namen "iddin" eigentlich auf sich? Der Name des Programms wurde von Assur-iddin abgeleitet, dem Neffen des assyrischen Königs Asarhaddon (681-669 v.u.Z.). Er war Leiter des assyrischen militärischen Geheimdienstes (alles schon mal da gewesen). Seine besondere Spezialität war die Verwirrung seiner Gegner durch Fehlinformationen. Siehe: "König Asarhaddons Karawane" von Jerzy Edigey (kein Ungar, sondern polnischer Tatar).
|