01|)s7y13 |{3yG3|\| |\/|3 (OldStyle Keygenme) solved by Leiche

CDW

0
Mitarbeiter
Bitte nicht ganz ernst nehmen ;)

Ein Crackme der etwas anderen Art - keine bunten Knöpfchen,nur Konsole (in der Userumgangssprache auch inkorrekterweise "DOS" genannt). Keine Angst, es ist ein vollwertiges 32-Bit Programm und lässt sich sehr gut mit Olly betrachten.

Diesesmal habe ich keinen Patchschutz eingebaut - also ist Patchen tabu.

Ziele:
1.finde einen gültigen Namen und dazugehörende Serial
2. dieser Name und Serial sollten nicht nur 1 mal funktionieren ;) (also müsst ihr schon ein paar mal testen und nicht direkt aus Olly ins Forum kopieren).
3. Schreibe eine kurze oder lange Anleitung dazu
4. ein Keygen wäre natürlich optimal

Zusammengefasst: Registriere das Programm, ohne es zu patchen. Achte darauf, dass Du mehrfach die Serial und den Key testest.


Eignung: auch für Anfänger - ihr müsst eventuell noch ein paar WinAPIs bei MSDN nachschlagen, sollte aber flott gehen. Der Keygen an sich, (wenn man es richtig angeht) braucht keinen Assemblycode - er kann genauso gut in Java geschrieben werden.
Das Keygenme an sich ist sehr kurz. Jede Anweisung ist "geplant" ;)
auch die Art der Serialeingabe - (ich teste meine Crackmes in der Regel, bevor ich sie auf die Welt loslasse ;) )
Zweck war eigentlich, zu zeigen, dass man auch mit Konsole "Spass" haben kann.
 
ist das "by design", dass es eine access violation gibt, wenn die CommandLine ein space (20h) enthält? ich nehme an, dass nicht.

werd mich dann nach dem abendessen mal an den eigentlichen schutz machen.

edit: was auch noch ungewollt sein könnte: der name darf höchstens 8 zeichen lang sein. (du gibst die maximale länge als 10 zeichen an, CR+LF bzw. 0Dh 0Ah werden bei der eingabe angehängt, daraus ergibt sich die maximale länge von 8 zeichen.) wird diese länge überschritten, werden die zeichen nach dem 10. zeichen als serial eingelesen, weswegen nach eingabe eines namens mit länge >8 auch gleich die (miss-)erfolgsmeldung kommt.
 
L
ist das "by design", dass es eine access violation gibt, wenn die CommandLine ein space (20h) enthält? ich nehme an, dass nicht.
Die Annahme ist zwar richtig, aber den Fehler kann ich nicht nachvollziehen - bei mir funktioniert es immer (ob mit Quotes oder ohne). Ich habe mich hier auch auf die MASM Bibliothek verlassen, die eigentlich recht zuverlässig funktionieren sollte.

wird diese länge überschritten, werden die zeichen nach dem 10. zeichen als serial eingelesen, weswegen nach eingabe eines namens mit länge >8 auch gleich die (miss-)erfolgsmeldung kommt.
Sorry, das dürfte eigentlich nicht passieren - aber anscheinend benimmt sich hier ReadFile anders als in der Dokumentation beschrieben (was nichts neues wäre :rolleyes: ). Leider habe ich bis jezt kaum Console in MASM programmiert, so dass es mir unbekant war. Habe jetz den Bug gefixt - jetzt kann man Namen/Serial bis 256 Zeichen eingeben ;)

EDIT: man braucht den fertigen Keygen nicht umzuschreiben, am Verfahren ändert sich ja recht wenig ;)
 
hier mein keymaker. source liegt bei. kurzer text dazu folgt... bald... irgendwann.

anleitung:
-keymaker in das verzeichnis kopieren, in dem sich oldstyle.exe befindet
-keymaker von der kommandozeile ausführen
-anweisungen des keymaker befolgen

edit: loesung.txt angehängt
edit: loesung.txt korrigiert
edit: in dem source war eine unschönheit. (mal sehen, ob ich noch den 10. edit schaffe :D.)
 
Zur Lösung: so wars gedacht :)
Auch wenn es imho ein wenig umständlich ist (aber das kann ich ja nicht wirklich objektiv beurteilen;) ). Gibts eventuell ein wenig Feedback?
 
Auch wenn es imho ein wenig umständlich ist
ich wollte halt einen richtigen keymaker machen, nicht einfach zwei vorberechnete dateien mitliefern/droppen. auch wollte ich ein bisschen schöne keys erzeugen, die nicht aus einem nur 16 zeichen langen alphabet zusammengesetzt werden. würd ich nicht als umständlich bezeichnen. =)

Gibts eventuell ein wenig Feedback?
ja... nette idee mit der einen selbstmodifizierung, die von vorhergehenden selbstmodifizierungen abhängig ist. die schlüsselüberprüfungen sind für meinen geschmack zu simpel, aber für andere dürften sie gerade richtig oder gar zu schwierig sein. je nachdem, wo man steht, halt.
 
Zurück
Oben