Seehr einfaches Crackme

Hi, ich würd mich sehr freuen wenn jemand das hier mit OllyDBG Cracken könnte und kurz sagt wie er es gemacht hat.
Ich denke es wird für euch überhaupt kein Problem sein aber ich blick in OllyDBG irgendwie überhaupt nicht durch und brauch erstmal einen "Anschubser" zu Beginn ^^
Danke!

Achso es ist mit Visual C++ gemacht..
 
Das Passwort lautet "p"

Um zum folgenden Code zu gelangen, kannst du einfach die entsprechenden Strings wie "Fasslch" über: Search for --> All referenced text strings suchen

004105A8 |. 68 F0604200 PUSH crackme.004260F0 ; /Arg1 = 004260F0 ASCII "wie ist das pwd?
"
004105AD |. B9 C0894200 MOV ECX,crackme.004289C0 ; |ASCII "HPB"
004105B2 |. E8 B90CFFFF CALL crackme.00401270 ; \crackme.00401270
004105B7 |. C645 FC 70 MOV BYTE PTR SS:[EBP-4],70
004105BB |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
004105BE |. 50 PUSH EAX ; /Arg1
004105BF |. B9 188C4200 MOV ECX,crackme.00428C18 ; |
004105C4 |. E8 17FFFFFF CALL crackme.004104E0 ; \crackme.004104E0
004105C9 |. 0FBE4D FC MOVSX ECX,BYTE PTR SS:[EBP-4] ; ECX wird der Wert "p" zugewiesen
004105CD |. 0FBE55 F8 MOVSX EDX,BYTE PTR SS:[EBP-8] ; Erster Buchstabe des Passwortes wird eingelesen
004105D1 |. 3BCA CMP ECX,EDX ; Der Wert "p" wird mit dem ersten Buchstaben des eingegebenen Passwortes verglichen
004105D3 |. 75 11 JNZ SHORT crackme.004105E6 ; Stimmen die Werte nicht überein, springe zu 004105E6
004105D5 |. 68 B4604200 PUSH crackme.004260B4 ; /Arg1 = 004260B4 ASCII "Sauber!!
"
004105DA |. B9 C0894200 MOV ECX,crackme.004289C0 ; |ASCII "HPB"
004105DF |. E8 8C0CFFFF CALL crackme.00401270 ; \crackme.00401270
004105E4 |. EB 0F JMP SHORT crackme.004105F5
004105E6 |> 68 E4604200 PUSH crackme.004260E4 ; /Arg1 = 004260E4 ASCII "Faaslch
"
004105EB |. B9 C0894200 MOV ECX,crackme.004289C0 ; |ASCII "HPB"
004105F0 |. E8 7B0CFFFF CALL crackme.00401270 ; \crackme.00401270
 
Nice, ich danke dir :)
Dann werd ich jetzt mal probieren das zur Laufzeit nachzuvollziehen..

[Edit]
Was hättest du eigenltich gemacht wenn ich komplett auf texte wie "falsch", "richtig" verzichtet hätte?
 
Wenn die entsprechenden Strings nicht vorhanden sind, kannst du die Eingabe des Users über: Search for --> Alll intermodular calls abfangen. Diese Calls könnten z.B. GetDlgItem, SendMessage, scanf oder diverse andere Calls sein. Hierbei kommt es darauf an, in welcher Programmiersprache du das Crackme geschrieben hast und welchen Compiler du verwendet hast. Jeder Compiler übersetzt den Code ein wenig anders in die Maschinencodesprache um.
 
Zurück
Oben