Crackme#1

Moin
Hab mich hier grad angemeldet und hier ein paar Crackmes zu lösen...

Nachdem mir die Crackmes aber zu leicht waren hab ich eben was eigenes gemacht.
Das Ganze Crackme hat gerade mal 11 Zeilen Code.

*****************Ziel*****************
Die Crackme ist dann gecracked wenn eine Messagebox 3 Zahlen anzeigt.
Mich würde ja außer eurem dem Lösungsweg intresieren wie lange ihr gebraucht habt.

*****************Info*****************
Alles ist erlaubt ! Hier noch ein kleiner Hinweis....
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
( D | a | s ) ( i | s | t ) ( e | i | n ) ( H | i | n | w | e | i | s )
\_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/

//Schade um die Verschiebung aber naja man kapiert vieleicht was gemeint ist.

Viel spass
 
Schließt alles ist erlaubt auch patchen ein?

Weil wenn ja, habe ich eine recht einfache Lösung gefunden:

Es muss aus:
004028E8.....33C0..........XOR EAX,EAX
folgendes gemacht werden:
004028E8.....B0 01..........MOV AL,1

Das Ergebnis ist, dass immer (egal welche Eingabe) die MessageBox aufgerufen wird.
Danach noch den Text der MessageBox von "1 + ascii" in "1 2 3" (oder was auch immer) ändern.

Gilt das als Lösung? Wenn alles erlaubt ist...?

Die gepatchte Executable hab ich angehängt.
 
Naja das wäre zu einfach X(
Dann hätte man ja auch den Speicher Direkt zu Laufzeit Manipulieren können. ( Ich wollte es erst reinschreiben dass das nicht gilt aber ich dachte das würde eh keiner machen, weil bei einem richtigen Programm weiß man ja auch nicht was die Antwort ist ... )

Hätte ich das mit den 3 Zahlen nicht hingeschrieben hättest du das ja nicht gemacht ?

Wäre schön wenn die vorgefertigten Zahlen rauskommen würden :)

EDIT
Mit deiner Version haste aber noch mehr als nur die 3 Zahlen gepached ...
 
Ok, das war klar =)

Hatte mich schon gewundert.

Ich habe aber nur den String geändert und ein Null-Byte drangehängt, sowie 2 Bytes geändert um xor eax,eax auf mov al,1 zu patchen.

Naja, versuch ich mal weiter mein Glück
 
Leider falsch X(
Wäre doch auch zu einfach :D

@GregorSamsa
Mit dem Patchen was du gemacht hast, hast du das eigentliche Ergebnis zerstört, deswegen hab ich gefragt :D
 
Hier an dieser Adresse:
Code:
00401089  |. 0F85 E1000000  JNZ crackme.00401170
Findet ein Vergleich mit mit dem !-Zeichen statt. Scheint ganz so, als ob es das schon die Lösung wäre. Trägt man in der TextBox nur ein Ausrufezeichen ein, erscheint eine MessageBox mit dem Titel "1" und zwei "11" als Text.

Den restlichen Code, der nach dem Lades des Offsets des Strings(LEA) ausgeführt wird, ist voll von Funktionen und Vergleichen. Womöglich liegt da die Lösung. X(
 
Super, wunderbar gelöst.

Es gibt eben 3 Methonden an die Lösung zu kommen

Einmal eben schauen welches "Passwort" gesucht wird ( in dem fall "!" )
Brutforcen .... (wäre man nach wenigen augenblicken an die Lösung gekommen )

Oder die ganzen abfragen richtig stellen (4 Stück ingesammt )

Wie lange haste gebraucht ?
 
Zurück
Oben