Ergebnis 1 bis 6 von 6
  1. #1

    Standard Reverse-Engineering with a simple crackme

    Jop, ich möchte auch den Free-Hack Nutzern mein Tutorial nicht vorenthalten, da ich denke, auch hier gibt es einige die mit Reversen anfangen möchten, aber nicht so recht wissen wo und wie.
    Natürlich zeigt das nur ein Beispiel und es sind auch schon Grundkenntnisse nötig, sonst kommen 1000 Fragen.
    Das Crackme gibt es hier:
    http://crackmes.de/users/papanyquil/papanyquilkgm/

    ################################################## #####
    # Crackme 1 Tutorial by fred777 #
    ################################################## #####

    0x00 Intro
    Ich fange hier mal mit einem ganz einfachen Crackme an und möchte euch so einen
    kleinen Einstieg in die Reverser-Scene bieten.
    Dafür werde ich auch wie gesagt ein ganz simples Crackme benutzen:
    papanyquiLKGM.exe
    In C++ geschrieben, fordert es ein Password und ein Usernamen, ist dieser falsch
    gibt es einen Error, ansonsten ergibt es eine "true-Meldung".



    0x01 Supplies:

    Benötigen werdet ihr:
    Olly-Debugger (andere gehen natürlich ebenfalls)
    Assembler-Grundlagen (minimal)
    Win32

    ################################################## ############

    0x02 Knowledge:
    Wir starten erstmal die Datei und werden wie schon gesagt mit einem Error aufgrund
    der falsch eingegebenen Daten begrüßt. Eine Taste beendet den Spuk.
    Nun laden wir die Datei mal in Olly und schauen uns mal um:

    Mit Rechtsklick und "search for" "all referenced text strings" sehen wir alle im
    Programm enthaltenen Strings, darunter auch die Fehlermeldung und die True-Meldung.
    Mit einem Klick darauf gelangen wir im Code an die jeweilige Stelle:

    004010B8 |. 85C0 TEST EAX,EAX ; kernel32.BaseThreadInitThunk
    004010BA 74 14 JE SHORT papanyqu.004010D0
    004010BC |. 68 D0514100 PUSH papanyqu.004151D0 ; ASCII "Incorrect password!"
    004010C1 |. 68 E0B44100 PUSH papanyqu.0041B4E0
    004010C6 |. E8 C5220000 CALL papanyqu.00403390
    004010CB |. 83C4 08 ADD ESP,8
    004010CE |. EB 12 JMP SHORT papanyqu.004010E2
    004010D0 |> 68 E4514100 PUSH papanyqu.004151E4 ; ASCII "You did it!"
    004010D5 |. 68 E0B44100 PUSH papanyqu.0041B4E0

    Da die beiden Meldungen so nah bei einander liegen macht es uns das ganze noch einfacher.
    Da dies kein Assmebler Tutorial ist werde ich nicht jeden Befehl erklären.
    Was wir erkenne können ist, falls unsere Eingaben true sind, wird zu der Adresse 004010D0
    gesprungen,welche die "richtige Meldung" mittels Push auf den Stack legt.

    004010D0 |> 68 E4514100 PUSH papanyqu.004151E4 ; ASCII "You did it!"

    Ansonsten verfolgt uns:

    004010BC |. 68 D0514100 PUSH papanyqu.004151D0 ; ASCII "Incorrect password!"

    ################################################## ############

    0x03 Cracking:
    Was uns jetzt logisch vorkommt ist, wenn wir aus JE ein dauerhaften JMP machen und zu der Adresse
    von "You did it!" springen, ohne das unsere Eingaben überprüft werden.

    004010D0 |> 68 E4514100 PUSH papanyqu.004151E4 ; ASCII "You did it!"

    Adresse: 004010D0
    Befehl: JMP

    Wir gehen also in folgende Zeile:
    004010BA 74 14 JE SHORT papanyqu.004010D0
    und verändern unseren JE mit der Leertaste zu:
    JMP 004010D0

    Danach könnt ihr es schon testen, egal was eingegeben wird, es wird immer dank JMP zu der
    Adresse mit der Erfolgsmeldung gesprungen.
    Der gesamte Code sähe dann so aus:

    004010B8 |. 85C0 TEST EAX,EAX
    004010BA EB 14 JMP SHORT papanyqu.004010D0
    004010BC |. 68 D0514100 PUSH papanyqu.004151D0 ; ASCII "Incorrect password!"
    004010C1 |. 68 E0B44100 PUSH papanyqu.0041B4E0
    004010C6 |. E8 C5220000 CALL papanyqu.00403390
    004010CB |. 83C4 08 ADD ESP,8
    004010CE |. EB 12 JMP SHORT papanyqu.004010E2
    004010D0 |> 68 E4514100 PUSH papanyqu.004151E4 ; ASCII "You did it!"
    004010D5 |. 68 E0B44100 PUSH papanyqu.0041B4E0
    004010DA |. E8 B1220000 CALL papanyqu.00403390



    ################################################## ############

    0x04 Complete:
    Demnächst werde ich noch ein paar solcher Papers machen mit ein paar Schwierigkeiten, sozusagen
    Advaced, ich hoffe ihr habt das Prinzip verstanden.
    fred777.de and greezZ to my friendsZ
    _n0p3_

  2. #2
    Bad Times Virus
    Registriert seit
    30.05.2009
    Beiträge
    614

    Standard

    Yes man ! Werd ich mir sofort anschauen!
    ICQ: 599-744-616
    *\ Freund bietet ICQ 6er Digits (UINs) / Stück! +1 gratis 7er Uin! /* - ICQ : 576826717

  3. #3
    NoClose Wurm Avatar von Kolabi
    Registriert seit
    13.07.2007
    Beiträge
    198

    Standard

    Vielleicht ist dieser Link auch noch nützlich :
    www.tuts4you.com/download.php?list.17

    Geändert von Kolabi (10.06.2009 um 15:53 Uhr) Grund: Automerged Doublepost

  4. #4
    Duck and Cover Avatar von $_staX
    Registriert seit
    27.07.2008
    Beiträge
    294

    Standard

    Ich finde es etwas zu mager und wenn man ein Reverse Engineering Tut für Anfänger macht, sollte man vll. auch die wichtigsten Assembler Befehle etc. erklären.
    Die Sprünge und wo Ergebnisse gespeichert werden (Zeroflag etc). Außerdem musst du bedenken, dass ein Newbie noch nie mit Olly gearbeitet hat und desshalb solltest du auch die wichtigsten Funktion von Olly erklären.
    Ansonsten ganz nettes, gut strukturiertes Tutorial

    Btw: Für jedem, der RE richtig erlernen will, kann ich nur das Empfehlen: http://www.tuts4you.com/download.php?list.17
    Geändert von $_staX (10.06.2009 um 16:02 Uhr)

    First you duck and then you cover!
    #

  5. #5

    Standard

    Naja ich habe aber schon gesagt:
    Olly-Debugger (andere gehen natürlich ebenfalls)
    Assembler-Grundlagen (minimal)
    Ich habe weder ein Tutorial über Assembler noch über Olly gemacht. Aber hast schon teilweise Recht. Es ist nur so, dass heutzutage wirklich für jedes Detail eine Beschreibung gesucht wird, kaum einer ist mehr in der Lage selber in extra Assembler Papers zu suchen, aber nun gut
    Danke für das Feedback und klar ist es lange nicht alles aus RE
    _n0p3_

  6. #6
    Kekssuchti =) Avatar von Gargarensis
    Registriert seit
    04.05.2009
    Beiträge
    164

    Standard

    thx, cooles tut, wollte mich schon immer ma damit auseinander setzen,... und was olly angeht,... dess kennt ja nun eig. wirklich jeder, außerdem gibt es mein ich auch n tut hier im forum =) Suchfunktion FTW!

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •