Willkommen zu einem ungewöhnlichen "Tutorial". Ich werde in diesem Dokument keine Erklärung geben, wie man einen Schutz zu knacken hat. Wir patchen heute kein Target, entpacken nichts und werden auch keinen Keygen coden. Doch um letztere wird es trotzdem gehen.
Ich möchte in diesem Text die Funktion eines Keygens genau analysieren. Dabei werden wir auf rein funktionale Aspekte aber auch ästhetische Gesichtspunkte zu sprechen kommen.
|
|
Ein Keygen ist ein Programm, dass zu einem Programm, das mit einer Serial-Protection ausgestattest ist, einen passenden Freischaltcode erzeugt. Es gibt mehrere Möglichkeiten einen solchen Freischaltcode zu generieren:
Serial-only-Targets prüfen die Serial, bzw. testen, ob sie gewissen Eigenschaften erfüllt. Hierbei gibt es Schwierigkeitsabstufungen. Manchmal wird aus den ersten Zeichen der eingebenen Serial eine Summe berechnet, die den letzen Zeichen der Serial entsprechen muss. Solche Targets sind meist leicht zu keygennen. Schwieriger wird es, wenn die komplette Serial irgendwelche mathematischen Bedingungen erfüllen muss. Meist wird dabei mit vielen logischen Operationen, MagicValues, etc. gearbeitet, was dazu führt, das gültige Serials meist nur über Bruteforce-Attacken herauszufinden sind.
Die härteste Form von Serial-only-Targets sind die Crypto-Targets. Dabei wird ein Verschlüsselungs-Algorithmus verwendet. Beispielsweise könnte man die eingegebene Serial mit MD5 verschlüsseln und den daraus gebildeten Hash mit im Programm harcodeten Strings vergleichen. MD5 erzeugt aus jedem beliebigen String einen immer gleich langen Hash. Dieser Hash ist immer eindeutig, d.h aus 2 verschiedenen Serials kann nicht der gleiche MD5-Hash hervorgehen. Sind nun also der Hash der eingegebenen Serial und der harcodete String gleich, so bedeutet dies, dass der User eine gültige Serial eingegeben hat. Das eigentliche Problem besteht darin, dass MD5 nicht umkehrbar ist. Ansonsten könnte man einfach die harcodet Strings in die Original-Serials dekodieren. Rein theoretisch ist MD5 über eine Bruteforce-Attacke knackbar, allerdings beträgt die Rechenzeit bei langen serials (d.h. > 4 Zeichen) einfach zu lange, und ist damit nicht durchführbar. Nur weil es Crypto-Targets gibt, heißt das allerdings noch lange nicht, dass diese unknackbar sind. Blowfish zum Beispiel ist ein umkehrbarer Algorithmus, der mit Hilfe eines Keys Daten kodiert und mit dem gleichen Key dekodiert. Alles, was man dann benötigt ist der Key und die verschlüsselten Serials, und alle Freischaltcodes lassen sich herausfinden.
Die zweite große Gruppe berechnet einen Freischaltcode aus zuvor zusätzich eingegebenen Daten. Die könnte zum Beispiel ein eingegebener Name, eine Mail-Adresse oder eine UserID sein. Die Daten fließen dann aktiv in die Berechnung mit ein. Manche Targets nutzen System-Informationen, um eine Serial zu berechnen. Die Laufwerksbezeichnung des Datenträgers, auf dem das Target installiert wurde, die Windows OEM-Nummer oder aber auch das aktuelle Datum können in diese Berechnung eingehen. Sowas findet man allerdings häufiger bei CrackMes, da sich diese Technik nicht für kommerzielle Zwecke eignet. Beispielsweise kann man die Datenträgerbezeichnung ändern oder das Programm auf einem anderen Rechner installieren, womit die Serial ungültig geworden wäre.
Aufgabe des Reversers ist es jetzt den Algorithmus zu finden und vor allem zu verstehen. Mit Hilfe eines Debuggers kann man den Serials auf den Leib rücken. Danach entscheidet man sich für eine beliebige Programmiersprache und codet den Algorithmus einfach nach, d.h. man macht das gleich, wie das Programm auch macht, allerdings zeigt man das Ergebnis der Berechnung in einem kleinen Fenster an ;)
|
|
Für wen erstellt man eigentlich Keygens? Nun, dass ist eine Frage, die ihr Euch selber stellen müsst. Das ist eng verknüpft mit der Frage, warum Ihr eigentlich crackt. Macht ihr das aus Spaß, aus Wettbewerb, weil ihr etwas können möchtet, was andere nicht können? Oder geht es Euch darum einfach schnell ein Programm gecrackt zu haben?
Crackt Ihr für andere, um Usern zu ermöglichen ein Programm zu nutzen ohne es zu bezahlen? Crackt Ihr für Euch, um Euch selbst zu zeigen, was ihr könnt? Crackt ihr in einer Group, um euch mit anderen zu messen und einen Wettbewerb zu führen, um die qualitativ besten Releases?
Je nachdem, welche Einstellung ihr dazu habt, werdet ihr das folgende nachvollziehen können oder einfach falsch finden :D
Ein Keygen besteht aus 3 verschiedenen Einheiten.
1) Code 2) Gfx 3) Musik
Die 3 aufgeführten Punkte führen dazu, dass an einem Keygen auch immer mehrere Leute beteiligt sind. Der Reverser selbst ist die oberste Instanz, der alle anderen zusammenführt. Er ist verantwortlich dafür, dass der Keygen seine eigentliche Funktion erfüllt, nämlich eine Serial auszuspucken, die Musik im Hintergrund spielt und das ganze seinen optischen Touch von den verwendeten Gfx erhält. Das ganze muss allerdings überschaubar bleiben, d.h. ein Keygen sollte ein kleines Programm sein, weswegen sich Asm oder C besser eignen als beispielsweise Delphi.
Musik und Gfx stammen in den seltensten Fällen vom Reverser selber. Es gibt spezielle Artgroups, die ihr Hobby zum virtuellen Beruf machen und euch ihre dienste anbieten. Sie erstellen euch eure tunes und gfx für den keygen nach euren Wünschen. Die Musik liegt dabei meist im xm-format vor. Das hat den Vorteil, dass ein relativ langes Musikstück 2:00 wenig Speicherplatz beansprucht (35 kb) und damit direkt in den Keygen mit eingebunden werden kann. Der xm-Sound ist ebenfalls etwas besonderes, theoretisch lassen sich mit diesem Format auch "moderne" Klänge erzeugen, allerdings verzichtet man häufig darauf und kehr lieber zum good old C64-sound zurück.
Alle 3 Komponenten ergeben dann den Keygen. Gfx können als Hintergrundbild den kompletten Dialog bilden, die Musik wird mit Hilfe einer speziellen Lib (miniFMod) eingebunden und abgespielt. Ein Keygen ist deswegen nicht einfach nur ein Programm, sondern ein kleines Kunstwerk.
Den Enduser eines Keygens, also alle, die Software einfach nur kostenlos nutzen wollen, interessiert es überhaupt nicht, was da im Keygen dudelt, wie die Gfx aussehen, usw. Diese Leute wollen einfach nur Ihre Registriernummer, das wars. Die aber, die sich auskennen, selber keygennen, sehen den Keygen mit anderen Augen.
An Keygens hängt ein Stück Kultur, auch wenn dies nur für "Eingeweihte" nachvollziehbar ist. Ihr habt die Wahl diese Kultur am Leben zu erhalten oder darauf zu verzichten und weiterhin langweilige, graue Keygenboxen zu erstellen.
|
|
Ich bin ein begeisterter Fan von xm-Musik und guten gfx. Ich bewundere alle, die in der Lage sind Programme wie FastTracker und Photoshop so zu bedienen, dass dabei geniale Kunstwerke rauskommen.
Das war mein ungewöhnliches Tutorial zum Thema Keygens. Ich habe es geschrieben, weil viele nicht verstehen, warum in einen Keygen Musik hineingehört oder warum Keygens ohne gfx langweilig sind.
Have phun, happy cracking, ZeroJump
|
|
|
|
|