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...]
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...]