Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert.

Mein erstes tolles crackme ;)

Diskussion: Mein erstes tolles crackme ;) im Forum Hacks & Crackmes, in der Kategorie Software Home; Anzeige Hallo, habe dieses Board erst kürzlich entdeckt und bin prompt auf diesen Thread gestoßen. Er hat mich sehr neugierig ...

Antwort
Alt 20.07.08, 16:13   #1 (permalink)
 
Registriert seit: 20.07.08
enorm Leistung: Facit NTK
Likes: 0
Mein erstes tolles crackme ;)

Anzeige

Hallo,

habe dieses Board erst kürzlich entdeckt und bin prompt auf diesen Thread gestoßen. Er hat mich sehr neugierig gestimmt und sogleich machte ich mich an die Arbeit ein kleines crackme zu entwerfen. Den Schwierigkeitsgrad kann ich leider nicht einschätzen, da ich bis jetzt noch keine Erfahrungen diesbezüglich gesammelt habe und ein absolutes "Greenhorn" in diesem Bereich bin. Ich hoffe es ist trotzdem nicht zu einfach :). Wer das Passwort gefunden hat, bitte mit Spoiler posten. Über Verbesserungsvorschläge wäre ich natürlich dankbar! Viel Spaß!


MFG enorm

Angehängte Dateien
Dateityp: zip crackme.zip (80,8 KB, 135x aufgerufen)
enorm ist offline   Mit Zitat antworten
Alt 20.07.08, 16:34   #2 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Sollte für Anfänger gut geeignet sein - und nur mit einem Hexeditor kommt man hier nicht weiter
passwort   
muss man schon selber im Debugger ablesen ;)
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 22.07.08, 00:14   #3 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Ich sehe gerade ein "Solved-Häckchen" - aber keine Lösungen ?

Nur weil ich manchmal nicht wiederstehen kann und kurz reinschaue/meinen Senf dazugebe, muss es nicht gleich als gelöst gelten
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 22.07.08, 00:24   #4 (permalink)
Themenstarter
 
Registriert seit: 20.07.08
enorm Leistung: Facit NTK
Likes: 0
Standard

dann mach ich das schleunigst wieder rückgängig
enorm ist offline   Mit Zitat antworten
Alt 22.07.08, 09:36   #5 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Es war wirklich nicht so ganz einfach (wobei ich auch noch Anfänger bin)
passwort   
ywmqsakciimi]
Eydeet ist offline   Mit Zitat antworten
Alt 22.07.08, 21:13   #6 (permalink)
Themenstarter
 
Registriert seit: 20.07.08
enorm Leistung: Facit NTK
Likes: 0
Standard

Hut ab! Ich muss aber gestehen, dass ich mich hierbei zu sehr auf die Generierung des zu vergleichenden Keys versteift habe, womit der Vergleichspunkt (das magische "if" ) relativ leicht aufzuspüren und nachzuvollziehen ist. Etwas schwerer gestalltet sich die Sache, wenn auch die Usereingaben manipuliert und durch diverse Funktionen verändert werden. Denke, dass ich einige dieser Schwächen mit meiner 2ten Version ausmerzen konnte.
enorm ist offline   Mit Zitat antworten
Alt 08.08.08, 20:39   #7 (permalink)
 
Registriert seit: 08.08.08
Gapa Leistung: Facit NTK
Gapa eine Nachricht über ICQ schicken
Likes: 0
Standard Lösungsweg

Hallo alle zusammen!

@Eydeet:
Darf ich nach dem Lösungsansatz bzw. nach dem kompletten Lösungsweg fragen? Ich bin auch noch neu hier und suche nach Lösungsansätzen, von denen ich etwas lernen kann...
Ich wäre dir dafür sehr dankbar

Viele Grüße
Gapa
Gapa ist offline   Mit Zitat antworten
Alt 09.08.08, 15:55   #8 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Meine Lösung   
Ich habe erst mal nach der Stelle gesucht, an der der Key eingelesen wurde, indem ich in Olly immer wieder [Strg]+[F8] gedrückt habe, und an der Stelle an der er mit der Ausführung angehalten hat einen Breakpoint gesetzt habe. Dann habe ich das Programm zurückgesetzt, bin mit F9 zum Breakpoint "gesprungen", habe diesen entfernt und bin mit F7 in den Call gegangen usw.

Dann habe ich irgendwann rechts am Rand gesehen, wie der String "pw: " auf den Stack gepusht wurde (= Ausgabe) und habe dann weiter unten den String "done!" gesehen (=Erfolgsmeldung).
Diese Meldung ist von einem Conditional Jump umschlossen, der über die Erfolgsmeldung springt, wenn AL=0 ist. Mir war also klar, dass im Call darüber entschieden wird, ob AL=0 ist, also ob die Serial richtig ist. Ich habe mir also diese Funktion angeguckt:
Code:
00401326    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]             ; eax = *key
00401329    8D56 01         LEA EDX,DWORD PTR DS:[ESI+1]
0040132C    8D4E 02         LEA ECX,DWORD PTR DS:[ESI+2]
0040132F    0FBE0407        MOVSX EAX,BYTE PTR DS:[EDI+EAX]          ; eax = key[i]
00401333    47              INC EDI                                  ; ++i
00401334    8945 EC         MOV DWORD PTR SS:[EBP-14],EAX            ; save char
00401337    89D0            MOV EAX,EDX                              ; irgendeine komplizierte Berechnung
00401339    0FAFC2          IMUL EAX,EDX
0040133C    0FAFC2          IMUL EAX,EDX
0040133F    89CA            MOV EDX,ECX
00401341    0FAFD1          IMUL EDX,ECX
00401344    6BC0 03         IMUL EAX,EAX,3
00401347    6BD2 05         IMUL EDX,EDX,5
0040134A    01D0            ADD EAX,EDX
0040134C    6BD1 0B         IMUL EDX,ECX,0B
0040134F    29D0            SUB EAX,EDX
00401351    83C0 1F         ADD EAX,1F
00401354    99              CDQ
00401355    31D0            XOR EAX,EDX
00401357    29D0            SUB EAX,EDX
00401359    D3E0            SHL EAX,CL
0040135B    BA 1A000000     MOV EDX,1A
00401360    89D1            MOV ECX,EDX
00401362    99              CDQ
00401363    F7F9            IDIV ECX
00401365    83C2 61         ADD EDX,61
00401368    8D46 06         LEA EAX,DWORD PTR DS:[ESI+6]
0040136B    3955 EC         CMP DWORD PTR SS:[EBP-14],EDX            ; prüfe Char mit entschlüsseltem Buchstaben (hier kann man den richtigen Buchstaben in EDX auslesen)
0040136E    A3 10504400     MOV DWORD PTR DS:[445010],EAX
00401373    75 10           JNZ SHORT crackme_.00401385              ; wenn keine Übereinstimmung: setze AL=0 und brich ab
Wenn du in C programmieren kannst, solltest du kein Problem haben, meine Kommentare zu verstehen. ;)

Wenn jemand von den erfahreneren Reversern hier nen Tipp für mich hat, wie man das Crackme schneller/einfacher hätte lösen können, immer her damit! :)
Eydeet ist offline   Mit Zitat antworten
Alt 10.08.08, 13:36   #9 (permalink)
 
Registriert seit: 08.08.08
Gapa Leistung: Facit NTK
Gapa eine Nachricht über ICQ schicken
Likes: 0
Standard Asm

Hallo nochmal!

Erst mal vielen Dank für die Erläuterung!

Ich sehe hier sehr deutlich, dass ich ohne Ahnung von Assembly keine Chance habe, mit dem Cracken weiterzukommen, richtig?

Ich habe da mal noch ein paar Grundfragen:

1. Ist der erste Schritt, wenn man nur ein .exe Programm als Ausgangspunkt hat, OllyDbg zu benutzen und das Programm (mit Assemblerkenntnissen) zu durchforschen? Oder gibts da noch andere Möglichkeiten?

2. Bedeutet "patchen" ein Programm mit OllyDbg analysieren?

3. Wenn ich in OllyDbg das Crackme öffne, und [Strg] + F8 drücke, dann beginnt OllyDbg mit einer Endlosschleife, die immer zwischen ein paar Zeilen hin-und-herspringt, aber was genau soll ich da nun herausbekommen?

Ich hoffe, ihr könnt mir da etwas weiterhelfen! Ich werde mich in der Zeit mal an Assembly ranmachen

Viele Grüße
Gapa

Ach: PS:
Gibts irgendwo ne deutsche Anleitung oder ein Tut für OllyDbg (wenn nicht ist auch egal, dann dauerts eben länger^^)?
Gapa ist offline   Mit Zitat antworten
Alt 10.08.08, 14:04   #10 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

1. Nein. Erstmal beobachtet man das Programm allgemein. Welche Eingabemöglichkeiten hat man, welche Fehlermeldungen gibt es? Was passiert, wenn man große Eingaben tätigt. Mit FileMon und Regmon schaut man auch erstmal, ob es beim Programmstart und bei Serialeingabe ungewöhnliche Zugriffe auf die Registry gibt. Also allgemeine Informationen sammeln.
2.Patchen heißt: Ändern. Also einen Daten/Codebreich des Programms in etwas anderes umschreiben.
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 10.08.08, 15:33   #11 (permalink)
 
Registriert seit: 08.08.08
Gapa Leistung: Facit NTK
Gapa eine Nachricht über ICQ schicken
Likes: 0
Standard Asm

Hm, ok vielen Dank!

Und wie siehts mit den andren Fragen aus? Wo lerne ich am besten etwas über JMP bzw. Calls und was ich daraus schließen kann? Und wo lerne ich OllyDbg richtig zu bedienen (Was sind BreakPoints, wofür brauche ich sie...)

Viele Grüße
Gapa
Gapa ist offline   Mit Zitat antworten
Alt 10.08.08, 17:22   #12 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Du könntest dir mal die Tutorials von Lena151 anschauen (http://www.tuts4you.com/download.php?list.17).
Eydeet ist offline   Mit Zitat antworten
Alt 10.08.08, 21:34   #13 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

... und ganz allgemein erstmal Assembler lernen...
denn Assembler schreiben ist schon eine Kunst, Assembler lesen ist noch wesentlich schwieriger, vorallem, wenn man keine Kommentare mehr im Code hat
beavisbee ist offline   Mit Zitat antworten
Alt 11.08.08, 10:07   #14 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

abgesehen von den üblichen Verdächtigen:
http://grn-project.ath.cx/phpbb3magic/portal.php
http://cip-re.6x.to/
http://rfn.6x.to
schau Dir noch
http://arteam.accessroot.com/tutorials.html
an, speziell:
Win32 Assembler Coding For Crackers:
http://arteam.accessroot.com/tutorials/dl.php?id=173
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Hacks & Crackmes » Mein erstes tolles crackme ;)
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mein erstes Crackme Neoscreamie Hacks & Crackmes 11 09.12.09 17:16
Mein erstes CrackMe! PMTheQuick Hacks & Crackmes 8 15.06.06 18:30
Mein erstes CrackMe Cracker Hacks & Crackmes 26 19.02.06 16:19
Mein erstes CrackMe! ! ! MASH Hacks & Crackmes 10 09.09.05 15:57
Mein erstes CrackMe -Tux- Hacks & Crackmes 5 14.06.05 21:09


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61