Tutorial Ollydbg + Crackme

05/21/2009 19:13 crank1337#1
Was ist OllyDbg?

OllyDbg ist ein von Oleh Yuschuk entwickelter 32-Bit-Debugger für Windows-Betriebssysteme. Hauptsächlich kann OllyDbg zur binären Codeanalyse verwendet werden, um beispielsweise eine Fehlerbereinigung von Programmen durchzuführen.

OllyDbg arbeitet auf Ring 3-Ebene und zeichnet sich durch folgende Features aus:

* Debugging von Multithreadprogrammen
* Anhängen an laufende Prozesse
* Konfigurierbarer Disassembler mit Unterstützung der Formate MASM und IDEAL
* MMX, 3DNow!, SSE, ASCII und Unicode-Unterstützung
* Hardware- und Software-Breakpoints
* Suchen über Speicherbereiche
* Modifikation von Speicherbereichen "on-the-fly"

Einer der besonderen Vorteile von OllyDbg ist, dass der Debugger auch von mobilen Datenträgern gestartet werden kann. Er benötigt keinerlei Installation, erlaubt aber ein Add-In in den Windows Explorer.

[Only registered and activated users can see links. Click Here To Register...]

Download OllyDbg

[Only registered and activated users can see links. Click Here To Register...]

Da Bilder aber mehr sagen als Worte installiert ihr OllyDbg nun und startet ihn. Wenn das Programm geladen ist, seht ihr vor euch so ein Fenster:

[Only registered and activated users can see links. Click Here To Register...]

Wichtige Funktionen von OllyDbg:

Viele Fenster ohne alles. Aber keine Sorge, da kommt bald ganz viel unverständliches Zeug rein.

Oben am Rand seht ihr, wie in jedem anderen Programm auch, eine Buttonleiste mit verschiedenen Funktionen:

[Only registered and activated users can see links. Click Here To Register...]

Für dieses erste Tutorial habe ich ein kleines CrackMe (CrackMe, dessen einziger Nutzen das Cracken ist) gecodet, welches ihr im Archiv findet.

Rechts unten seht ihr zusätzlich noch den Status des Programms:

[Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...]

Cracken eines CrackMe‘s:

Startet nun das CrackMe einmal. Ihr werdet diese unschöne Meldung vor euch sehen:

[Only registered and activated users can see links. Click Here To Register...]

Hm… Das ist aber doof. Was machen wir da nur? OllyDbg wird uns helfen!

Wenn ihr nun ein Programm in OllyDbg cracken oder was auch immer wollt, dann geht ihr wie folgt vor:

[Only registered and activated users can see links. Click Here To Register...]

Nun wird OllyDbg das CrackMe laden und setzt den Status automatisch auf:

[Only registered and activated users can see links. Click Here To Register...]

Das bedeutet, dass das Programm solange nicht weiterläuft, bis ihr es weiterlaufen lässt. Das macht ihr entweder über drücken von F9 oder über einen Klick auf den Playbutton oben in der Leiste. Dies macht ihr nun auch. Wie ihr seht, kommt wieder die ungeliebte Fehlermeldung von vorhin und das Programm beendet sich wieder. Ihr müsst es allerdings nicht nochmal in OllyDbg starten, sondern ihr klickt oben in der Leiste auf den „Programm zurücksetzen“-Button. Nun ist das Programm wieder im Uhrzustand. Lasst es diesmal aber auf Pause stehen.

Nun werden sich die leeren Felder mit viel viel Zeug füllen:

[Only registered and activated users can see links. Click Here To Register...]

Da wir eine Messagebox suchen, die wir verhindern wollen, schauen wir uns nun den Code an und suchen diese Stelle:

[Only registered and activated users can see links. Click Here To Register...]

Doch wie ich annehme, versteht ihr nicht sonderlich viel von dem, was ihr hier vor euch seht. Deswegen gibt es jetzt erst einmal einen kleinen Crashkurs in Assembler.

ASM Funktion -> Beschreibung
call -> Aufruf einer Funktion
jmp -> unbedingter Sprung
je/jz -> Sprung wenn gleich oder null
jne/jnz -> Sprung wenn ungleich
return -> Rückgabe einer Funktion
nop -> keine Funktion (nichts machen)
mov -> Kopiervorgang
sleep -> Programm pausieren
goto -> unbedinger Sprung

Das sollte auch schon als kleiner Einstieg reichen. Wie die einzelnen Sachen genau funktionieren seht ihr sicher selbst im Laufe der Zeit bzw. ich komme darauf zurück.

Nun konzentrieren wir uns wieder auf den Teil mit der Messagebox.

[Only registered and activated users can see links. Click Here To Register...]

Ich habe das Programm so geschrieben, dass erst eine Messagebox kommt, die sagt, dass keine Lizenz gefunden werden konnte. Nun wird überprüft, ob auf OK geklickt wurde. Wenn ja wird das Programm beendet. Da es nur OK als Auswahl gibt, hat man auch keine andere Wahl, als dass sich das Programm nun beendet. Die Überprüfung ob auf OK geklickt wurde, seht ihr in der Zeile in der das rote JNZ steht. Zum einfacheren Überblick habe ich hinter den Zeilen Kommentare eingefügt. In dem Code steht nun, dass über die Funktion zum Beenden gesprungen wird, wenn ihr nicht auf OK geklickt habt. (Was aber unmöglich ist!) Nun wollen wir aber, dass über diese Funktion gesprungen wird und wir zur zweiten Messagebox kommen.

Diese Abfragen kann man recht leicht aushebeln, indem man dem Programm sagt, dass es entweder immer an dieser Stelle springt (JMP) oder immer gegenteilig springt. In diesem Fall hier (wenn ungleich) dann muss im entgegengesetzten Fall (wenn gleich) gesprungen werden. JNZ <-> JE

In diesem Beispiel werden ich die Methode des „immer Springens“ benutzen. Also müssen wir nun irgendwie das JNZ in JMP umwandeln. In OllyDbg markiert ihr nun die Zeile mit dem JNZ und macht einen Rechtsklickt und klickt auf Assemble. Alternativ markiert ihr die Zeile und drückt einfach die Leertaste.

[Only registered and activated users can see links. Click Here To Register...]

Nun öffnet sich ein kleines Fenster, in dem die aktuelle Zeile steht und ihr sie bearbeiten könnt.

[Only registered and activated users can see links. Click Here To Register...]

Falls bei „Fill with NOP’s“ ein Haken ist, macht den nun heraus.

Nun wollten wir ja unseren Sprung ändern. Dies tun wir, indem wir das JNZ und durch JMP ersetzen.

[Only registered and activated users can see links. Click Here To Register...]

Klickt nun auf Assemble und ihr landet wieder bei eurem Programm. Ihr seht nun, dass sich die Zeile mit dem JNZ geändert hat.

[Only registered and activated users can see links. Click Here To Register...]

Nun lasst ihr das Programm laufen (F9) und es erscheint wieder die böse Messagebox. Klickt wieder auf OK und siehe da, dass Programm beendet sich nicht, sondern es kommt die rettende Messagbox.

[Only registered and activated users can see links. Click Here To Register...]

Ich wiederhole einfach mal das, was die Messagebox schon gesagt hat. Glückwunsch, ihr habt es geschafft!
Wenn ihr nun ein Programm verändert habt und diese veränderte Version speichern wollt, dann macht ihr wieder Rechtsklick -> Copy to executable -> All modifications

[Only registered and activated users can see links. Click Here To Register...]

Im nächsten Fenster klickt ihr auf Copy all

[Only registered and activated users can see links. Click Here To Register...]

Im nächsten Fenster macht ihr wieder einen Rechtsklick. Wählt diesmal aber Save file

[Only registered and activated users can see links. Click Here To Register...]

Speichert nun das Programm unter anderem Namen ab. Wenn ihr dieses nun startet, dann kommt ihr gleich zur Glückwunsch-Messagebox.

Hoffe man konnte euch anhand dieses Tutorials ein wenig einsicht in die Matherie verschaffen.

[Only registered and activated users can see links. Click Here To Register...] -> [Only registered and activated users can see links. Click Here To Register...]

Du hast ein Tutorialwunsch? Schreib mir eine PM.

credits by crank1337 @ [Only registered and activated users can see links. Click Here To Register...]
05/21/2009 20:03 Akorn#2
Bist du auch der Autor von dem tutorial?
Den soweit ich weis ist der autor "KN4CK3R" von der seite OldSchoolHack.
05/21/2009 21:46 fr3ddy#3
jo kenn ich auch von KN4CK3R
07/24/2009 10:10 AlLiAnCe#69#4
hi jungs
ich bin neu hier im forum, weiß auch nicht ob das überhaupt hier
her gehört aber durch zufall habe ich die falsche version von olly geladen,
war eine china oder japan version, die aber einen neuen style hatte ...
ich würde gerne wissen, was das für eine versionist,
und wo ich mir das ding runterladenkann ???


bedanke mich im vorraus
AlLiAnCe#69

screenshot
[Only registered and activated users can see links. Click Here To Register...]
07/24/2009 11:18 Adroxxx#5
Die Orginale Version gibts auf [Only registered and activated users can see links. Click Here To Register...]
Das was du da hast ist (nach aussehen zu urteilen) OllyIce. Ist eine Modifizierte Version.
DL [Only registered and activated users can see links. Click Here To Register...]
07/24/2009 16:20 AlLiAnCe#69#6
danke adroxxx,
habs gefunden ... läuft sogar unter windwos 7,
aber was ist das besondere daran ??? oder worin besteht der unterschied ???

gruß
AlLiAnCe#69
07/24/2009 16:54 Syc0n#7
Findet ihr Ollydbg 2.0 eigentlich unausgereift?

Beziehungsweise, würde es sich lohnen mit 2.0 oder 1.0 zu arbeiten und wo sind Vor- Nachteile?
07/24/2009 18:37 0x1337#8
würde mit ida arbeiten find ich persönlich besser mit den richtigen plugins kannst sogut wie alles debuggen was mit olly nicht kannst aber für anfänger ist olly zu empfehlen.

[Only registered and activated users can see links. Click Here To Register...]
07/26/2009 12:48 AlLiAnCe#69#9
Wenn ich in olly eine *.exe datei auswähle
und debuggen will, lande ich immer in ein und der
gleichen datei, ntdll.dll ?!? hat das was mit plugins zutun ???
kann mir einer einen rat geben ???
07/26/2009 13:44 bUTL9R#10
Quote:
Originally Posted by Adroxxx View Post
Die Orginale Version gibts auf [Only registered and activated users can see links. Click Here To Register...]
Das was du da hast ist (nach aussehen zu urteilen) OllyIce. Ist eine Modifizierte Version.
DL [Only registered and activated users can see links. Click Here To Register...]
Sieht für mich stark nach standart Olly + custom Windows Skin aus o_O
07/26/2009 15:21 AlLiAnCe#69#11
Quote:
Originally Posted by bUTL9R View Post
Sieht für mich stark nach standart Olly + custom Windows Skin aus o_O
nein, bUTL9R
adroxxx hat recht, das ist ollyice 1.10 :cool:
07/26/2009 16:34 AlLiAnCe#69#12
nein, Adroxxx hat recht ... ollyice 1.10 ... ;)
08/11/2009 02:34 Adroxxx#13
Quote:
Originally Posted by bUTL9R View Post
Sieht für mich stark nach standart Olly + custom Windows Skin aus o_O
Mein Post war bezogen auf :

Quote:
Originally Posted by AlLiAnCe#69 View Post
hi jungs
ich bin neu hier im forum, weiß auch nicht ob das überhaupt hier
her gehört aber durch zufall habe ich die falsche version von olly geladen,
war eine china oder japan version, die aber einen neuen style hatte ...
ich würde gerne wissen, was das für eine versionist,
und wo ich mir das ding runterladenkann ???


bedanke mich im vorraus
AlLiAnCe#69

screenshot
[Only registered and activated users can see links. Click Here To Register...]
Und bei ihm sieht olly so aus:

Im Tutorial ist es olly mit windows skin, da hast du recht :)
02/08/2010 20:11 nitey#14
Super Geiles TuT danke dir!!!
03/18/2010 12:56 fr33g#15
Könnt ihr mir vll sagen, wo das Crack Me aus dem Tutorial zu finden ist?

Danke gruß freeG