Mein erstes Assembler-crackme - solved

So, um ein wenig meine Assemblerkenntnisse zu trainieren, hab ich mal nen kleines Crackme geschrieben. Ich hab mir was einfallsreiches überlegt, als bei meinem c++ crackme. Packer und crypter hab ich nicht benutzt

Schwierigkeitsgrad:anfänger-mittel

Mal sehen, wie lange ihr braucht. Keygen wäre sehr gut, serial ist auch in ordnung, sobald erster keygen da ist, ist es solved. Patchen is nicht erlaubt
Happy cracking

edit: so ich häng mal ne gefixte version an, ich hoffe damit sind die probs beseitigt, sagt mal bitte ob die nun richtig funzt, denn auf meinem system funzte auch schon die alte:
 
EVILHAXOR / 4738615275668980103126

(wobei bei mir keine MessageBox klappt)
 
falsch.wenn die serial richtig ist, erscheint auch ne MessageBox mit der entsprechenden Meldung, hat schon seine Richtigkeit, dass bei dieser Serial ne Fehlermeldung kommt
 
ich meine damit ich bekomme keine meldungen... im debugger spring er aber auf "Congrats, u did it!!!"!
 
Du bekommmst keine Meldungen? auch ohne debugger nicht? die serial stimmt aber nicht, normalerweise müsstest du eine Fehlermeldung bekommen?
 
Ich glaube, so wars nicht gedacht ;)
ein kleiner Bug den Du fixen könntest (siehe Anhang). Ich glaube, es hat was mit dem wsprintf und dem Stack zu tun - jedenfalls kommt es immer, wenn die MessageBox "Serial sucks" aufgerufen wurde.
Ansonsten, nett, dass sich noch jemand Assembly antut ;). Name: cdwcd, Serial: 194641366358
Die Erfolgmeldung (MessageBox) wird zwar aufgerufen, endet jedoch mit dem selben Fehler. Keygen folgt abends.

EDIT: nochmal zur Klarstellung: man sieht keinerlei Fehlernachrichten vom Programm - ich vermute Du benutzt im Moment Win2k, welches in dem Sinne etwas mehr toleranz hat. Check mal auf jedenfall die wsprintfs (notfalls einfach vor jeder Schleife ESP selber sichern), damit hab ich mich auch mal abgeplagt. Der Fehler kommt übrigens auch ganz ohne Debugger: einfach z.b 12345 /12345 eingeben.
 
Die serial ist auch ohne bug falsch, die richtige serial für den namen wäre anders, aber ich werde versuchen den bug zu fixen.
 
API Patchen ist nice, cdwcd 7eb676C340e7EB676c
Der Fehler sollte darin liegen, dass Du die Parameter auf dem Stack irgendwie vertauschst:
Code:
0012FBBC   0040153A  |hOwner = 0040153A
0012FBC0   00000000  |Text = NULL
0012FBC4   004030AC  |Title = "Congrats, u did it!!!"
0012FBC8   00403076  |Style = 6|70|3000|400000
0012FBCC   00000000  \LanguageID = 0 (LANG_NEUTRAL)
0012FBD0  /0012FBE8
0012FBD4  |0040153A  RETURN to asm_cm01.0040153A from <JMP.&user32.MessageBoxA>
so sieht im Dump aus (jedesmal wenn Du versuchst irgendeine Nachricht anzuzeigen). Und da der Textpointer nicht NULL sein darf, kommt wohl der Fehler
Stattdessen ist Style der Pointer zu Deinem Titel. Bin jetzt aber zu faul nachzuschauen, wo es genau passiert ;). OS XP SP1

Edit: schon wieder zu spät, ich werde wohl langsam alt :rolleyes:

EDIT2: korrektur, der Textpoiner darf natürlich 0 sein, es stimmt nur irgendwas nicht so ganz mit dem Stack.
 
mit xp sp2 stürzt es seltsamerweise nicht, dass sich das crackme nach ausgabe der meldung beendet ist normal, die exception jedoch nicht, ich werd mir das morgen mal genauer anschauen
 
Hier das versprochene Tutorial:
Klick
Um es größer zu sehen einfach auf 800 Klicken.
Vielleicht lade ich es später auf meinen Server hoch, dann erkennt man es richtig gut.

Das Tutorial behandelt jetzt nur Serial sniffing also nicht, die Verschlüsslung selber.

Wenn was unklar ist oder nicht stimmt => Fragen.
 
Hallo DolphVS.

Wenn du schon entgegen den hier definierten Regeln keine txt-Lösung anhängst, dann lade die Lösung bitte auf deinen Server hoch. So macht es echt keinen Sinn. :rolleyes:
Man erkennt auf dem Video bei hoher Auflösung so gut wie nichts.

Ich bin, grundsätzlich gesehen, ein großer Freund von Flash-Tuts, da sie ideal sind. Das Problem ist die Grösse und dadurch ist ein Upload im Boardsystem nicht möglich.
Wenn jetzt jeder seine Tuts in Flash erstellt und extern hostet, kann man die Crackmes in dem Forum nach einem halben Jahr abhaken weil das mit Freehostern so eine Sache ist...
Und das ist nicht Sinn der Sache.

Du verstehst sicher, dass es kein böser Wille ist. Hoste es diesmal auf deinem Server und zukünfig bitte ich um TXT-Lösungen, wie es alle tun.

Danke

root
 
der Keygen (sollte eigentlich funktioniere) :P samt Source
Die Routine dürfte in Dolphs tutorial zu finden sein. Der Keygen ist nicht viel mehr, als ein Ripp dieser Routine mit kleinen änderungen.

Jetzt zu dem Bug:
wenn ich an dieser Stelle:

Code:
0040120C    .  83C0 05                           ADD EAX,5
0040120F    .- FFE0                              JMP EAX                                           ;  asm_cm01.004030AC
00401211    .  C9                                LEAVE
also bevor auf die in EAX gespeicherte Adresse gesprungen wird, ESP um 4 erhöhe, sehe ich auch die Nachricht und es kommt kein Fehler.
Ich vermute daher, irgendwo ist ein POP zu wenig.

Ich möchte nochmal betonen, dass ich dieses Crackme sehr originell finde und auch gelungen ;).
 
die jenigen, bei denen es vorher zum crash kam: ladet euch mal bitte die neue version und sagt mir, ob es nun richtig funzt
 
@DolphVS Nice Tutorial und um einiges besser nachzuvollziehen als eine txt Lösung =)
Mit welchen Programm hast du die Flash datei erstelle?

greeetz ReDoX
 
@ReDoX:
Mit Macromedia Captivate

@SUID:root:
Ja okay hatte es nur sehr eilig hatte noch ne verabredung. Darf ich jetzt noch Flash Tuts machen wenn ich sie auf meinem Server hoste oder soll ich TXT lösungen machen.
Ich finde TXT Lösungen manchmal nur so schwer nachzuvollziehen.
 
Hi!
Bin neu auf dem Board hier, aber seit kurzem interresieren mich Crackmes und so bin ich auf dieses Forum gestoßen

Da mich dieses Crackme interresiert hat (vor allem wegen dem Api Hook) hab ich auch nen Keygen dazu gemacht.
Leider kann ich weder in Asm noch in C wirklich eine Gui erstellen.
Deswegen hab ich kurzerhand deine Exe nur etwas verändert.

Das heist nur noch eine Textbox für die Eingabe des Namens und der Check Button wurde umbenannt in "Generate Key" Button
Der Key wird dann in einer Messagebox ausgegeben.

Also eigentlich ist es mehr ein Rip des Programmes da fast nichts selbst geschrieben wurde sondern nur ein paar Befehle genoppt worden sind und so.

Have fun!
 
Zurück
Oben