Software Reverse Engineering
Software der Firma "DESIGN SOFTWARE"

Bitte zuerst den Abschnitt "ANMERKUNG" am Ende des Essays lesen!


Ziel: Finden der korrekten Seriennummern
Autor: VOLATILITY (Immortal Descendants)
Übersetzt von: Vladimir
Programm/e: Sämtliche Software der Firma "DESIGN SOFTWARE"
Wo zu finden: http://execpc.com/~sbd/
Geschützt durch: Kombination aus: User Name/ Organisation/ Seriennummer
Tools, die ihr braucht: SoftIce
Level: Anfänger

Alle Programme dieser Firma, die ich bis jetzt gecrackt habe, konnten mit dieser Methode überlistet
werden. Also denke ich mir mal, das diese bei allen Proggies dieser Firma anwendbar ist. Gregory Braun schreibt verdammt gute, nützliche und innovative Applikationen! Also kauft diese Programme,
und wendet die Crackmethode nicht auf unbezahlte Software an.

Startet das Programm, und schaut es euch ein wenig an. Euch wird der Registrierungsnag bestimmt ins
Auge fallen!

Wie ihr seht, können wir dort den Benutzernamen, die Organisation und die Seriennummer eingeben.
Daher würden wir eher im Code dieses Programms untergehen (zu viele Routinen abzuchecken) wenn wir versuchen würden, einen Patch zu machen (umändern des Codes), als wenn wir direkt versuchen würden,
die für uns passende Seriennummer herauszufinden.

Das Programm aus dem Angebot von D.S., anhand dessen ich diese Methode erklären will, nennt sich
"RGB-EDITOR". Den ersten Weg, den ich ausprobierte, war die HMEMCPY-Funktion in SoftIce-und
sie funktionierte hervorragend. Also, gebt irgendwelche fingierten Daten in die Textboxen ein. (Ich gab "Cracked by Volatility (ID), "Immortal Descendants" und "272727" ein.)

DEN CRACK DURCHFÜHREN:

Nachdem ihr die fingierten Daten eingegeben habt, drückt STRG+D um SoftIce aufzurufen. Nun müßt ihr einen Breakpoint auf die HMEMCPY-Funktion setzten, und zwar mit "BPX HMEMCPY". Verlaßt SICE wieder mit den Tasten STRG+D, um zum Programm zurückzukehern, und clickt auf den OK-Button im Registrierungsnag.
SICE wird sich melden. Nun könntet ihr eigentlich anfangen, den Code nach der Stelle zu durchforsten,
die euch zum Ziel bringt...Aber wenn ihr mal ein bißchen nachdenkt, dann wird euch klar, das die Prozedur
ja DREIMAL aufgerufen wird (einmal für den Benutzernamen, einmal für die Eingabe im Organisationsfeld
und zu guter Letzt bei der Eingabe der Seriennummer. Also müßt ihr noch zweimal STRG+D drücken,
sodaß ihr nun bei der Stelle im Code auskommen, wo diese Funktion zum dritten mal vorkommt.

Drückt nun einmal F11, um diesen Teil des Codes zu verlassen- nun sollet ihr euch an dieser Stelle
befinden:

177F:0B40
177F:0B45
177F:0B47
177F:0B4C
177F:0B4E
177F:0B4F
177F:0B50
177F:0B51

9A189E1701
FF35
9AB0011F01
8BC6
5E
5F
C9
C20A00

CALL KERNEL!HMEMCPY
PUSH WORD PTR [DI]
CALL KERNEL!LOCALUNLOCK
MOV AX,SI
POP SI
POP DI
LEAVE
RET 000A

Wenn ihr nunmal einen Blick in die Zeile über dem CommandFenster in SICE werft, werdet ihr dort die Angabe "USER(0A)" vorfinden. Dies ist eine STelle, die uns nicht besonders weiterbringt, also geht mit
F10
Schritt für Schritt durch den Code, bis ihr in eben dieser Zeile "RGB!.text" steht. Nun befinden wir
uns mitten im Programmcode vom "RGB-Editor".

F10t noch ein bißchen witer durch den Code, um die Stelle zu finden, an der die korrekte Seriennummer berechnet wird. Diese Stelle werdet ihr hier finden:

0137:0040687B
0137:0040687D
0137:0040687E
0137:0040687F
0137:00406884
0137:00406887
0137:00406889
0137:0040688B

8BE8
53
56
E89C2C0000
83C408
3BC5
741E
68CFEA0000


MOV EBP,EAX
PUSH EBX -> Organisation
PUSH ESI -> Benutzername
CALL 00409520 -> Berechnung der S.Nr.
ADD ESP,08
CMP EAX,EBP
JZ 004068A9
PUSH 0000EAC

Nun könne wir uns den Namen der Organisation den wir eingegeben haben ansehen, indem wir mit
F10
über die Codingzeile "PUSH EBX" gehen (also bis 00137:0040687E), und das Kommando
"d ebx"
eingeben. Wir können auch den von uns eingegebenen Namen betrachten, indem wir über die
Zeile "PUSH ESI" gehen, und "d esi" eingeben. Aber wie können wir uns die Seriennummer anschauen? Können wir NOCH nicht, aber wenn ihr über die Zeile "CALL 00409520" geht, können wir uns den
Wert des EAX-Registers mit "? eax" anzeigen lassen. DA IST SIE! In meinem Fall war es die "3727125845".

ANMERKUNG:
Dieses Essay dient nur zur Erweiterung des Wissensstandes! Wir übernehmen keine
Verantwortung für das, was eventuell mit eurem Rechner passiert.
Wenn ihr das Programm erfolgreich gecrackt habt, müßt ihr es sofort löschen! mWenn ihr
weiterhin damit arbeiten wollt, dann erwerbt es rechtmäßig!!
UNTERSTÜTZT SHAREWARE, DENN DAS SIND UNSERE ÜBUNGSANWENDUNGEN!
Es ist verboten, gecrackte/gepatchte Software zu benutzen.

Copyright (c) 1999, Volatility und Immortal Desendants- übersetzt von vladimir