1.0 Einleitung
Hallo liebe Scen?€™ler in diesem Tutorial möchte ich euch eine kleine Einführung in die Welt des Crackings geben. In diesem Tutorial werden wir die Anwendung Quick Screen Recorder cracken. Dafür brauchen wir den Quick Screen Recorder, OllyDebug und unser Gehirn.
Ich habe den Quick Screen Recorder gewählt, da der Hersteller einfach ein OpenSource Product in leicht veränderter Form verkauft und ich finde, dass das einfach asosozial ist.
2.0 Let?€™s crack!
Als erstes öffnen wird OllyDbg und öffnen dort unseren Quick Screen Recorder (qsr.exe)
Je nachdem welche Version ihr von OllyDbg habt kann das Laden etwas dauern.
Das Ganze sieht dann so aus:

Wir ihr seht steht bei mir oben CPU ?€“ main thread, module ntdll . Wenn das der Fall ist befinden wir uns noch nicht im Hauptmodul qsr und wir müssen einmal den Play Button drücken.

Sieht schon viel besser aus, oder?
Im nächsten Schritt müssen wir nach Anhaltspunkten suchen, wo Funktionen liegen, die für die Aktivierung / den Registrierungscheck entscheidend sind. Ich habe mir die Software mal genauer angeschaut und festgestellt, dass zwei mal abgecheckt wird, ob die Software registriert ist. Einmal unter Help -> Register und dann wenn man auf den Record Button geht. Um jetzt Anhaltspunkte zu finden, werden wird erstmal uns alle String ausgegeben lassen. Dafür machen wir Rechtsklick in das Codefenster - > Search for -> All referenced text strings. Das Ganze sieht dann folgenderma??en aus:

Hier sehen wir auch schon einen Interessanten String. Das wäre ?€?You have already registred. Thank you.?€? . Dieser String wird wie man sich jetzt denken kann ausgegeben, wenn man auf Help - > Register geht, die Software aber bereits registriert wird. Dort wo auf diesen String zugegriffen wird befindet sich also unsere erste Checkroutine. Also machen wir Doppelklick auf diesen String. Beim Code den wir dort sehen wird u.a. das Offset zu diesem String auf den Stack gepusht um die MessageBox vorzubereiten. Wir müssen jetzt den Teil der Ruotine finden, der überprüft, ob die Software aktiviert ist. Dafür gehen wir im Code erstmal etwas nach oben und halten ausschau nach sogenannten condtional jumps also JNE, JE usw.

Aha? Das rot makierte sieht schon mal interessant aus! Man sieht, wenn man den Code sich genauer anguckt, dass ein Byte geladen wird und dieses dann auf 0 oder 1 getestet wird. Und im entsprechenden Fall die Funktion die sagt, dass wir bereits aktiviert haben übersprungen wird. Ich zitiere hier mal den entscheidenen Code.
mov al, byte ptr ds:[esi+44] ; Lade ein Byte von ds:esi+44 test al, al ; überprüfe ob das geladene Byte 1 oder 0 ist je short qsr.00412073 ; wenn es 0 ist überspringe den folgenden codeWir werden jetzt zunächst den Befehl noppen d.h., wir ersetzen den Befehl mit sog. ?€?No Operations?€?. Dadurch wird immer der Code ausgeführt, der sagt, dass wir bereits registriert haben. Wir doppelklicken auf ?€?JE SHORT qsr.00412073?€?, geben dann nop ein und klicken auf Assemble. Um jetzt das Offset herauszufinden, vom dem das Byte geladen wird, setzen wir einen Breakpoint auf den Ladebefehl sprich ?€?MOV AL, BYTE PTR DS:[ESI+44]?€?. Dadurch hält das Programm an, wenn dieser Code ausgeführt wird. Dafür machen wir einen Rechtsklick auf den Befehl -> Breakpoint -> Toggle . Jetzt führen wir das Programm aus, indem wir wieder auf den Playbutton drücken. Jetzt gehen wir im Menü auf Help -> Register. So, jetzt zeigt sich OllyDbg und das Programm ist erstmal gefreezt.

Ich habe mal den für uns interessanten Bereich in Rot markiert! In den eckigen Klammern steht jetzt das Offset zu dem Boolean, der bestimmt, ob die Anwendung aktiviert ist, oder auch nicht! Als nächsten gehen wir jetzt zu diesem Offset. Dafür Rechtsklick im
Codefenster -> Go to -> Expression. Dort werden wir jetzt einen Breakpoint on Memory Read setzen. Dieser bewirkt, dass das Programm vom Debugger angehalten wird, sobald von dieser Stelle gelesen wird. Dafür machen wir einen Rechtsklick auf unser Offset / Auf den aktuell ausgewählten Befehl, dann Breakpoint -> Memory, on access. Jetzt starten wir wieder das Programm und starten ein Aufnahme. Zuerst werden wir aber noch die Meldung sehen, dass das Programm bereits aktiviert ist


Das ist also die Abfrage Numero Zwei. Wir ändern schnell das JNZ in JE und jetzt müssen wir das cracked Executable nur noch speichern. Dafür Rechtsklick -> Copy to executable -> All Modifications. Dann schlie??en wir das erschienene Fenster und speichern die Datei. Fertig!
3.0 Schlusswort
Ich hoffe das dieses Tutorial so manchem geholfen hat den Weg des Crackings zu verstehen!
Dieses Tutorial ist ?© 2013 bei mir und darf nicht ohne meine Erlaubnis kopiert werden!
LgAnne Frank