Christmas Crackme

Howhowhow :D
Code:
ChristmasCrackme (crypto) by sd333221
_____________________________________
Release date: 24.12.2006

=)

There are two steps:
Step 1: A simple algo and a simple serial :-)
Step 2: Cannot be solved by Olly, if yes please write a tutorial

Greetings,
and happy Xmas
hxxp://www.rantanplan.5gigs.com/ChristmasCrackme.rar

Code:
Aber gebt acht,
dies ist kein "normales" Crackme...
Intelligenz ist gefragt oder ihr werdet versagen
(jetzt außer bei CDW und Lesco ^^)
:O
Bitte nicht zu viel verraten wenn ihr es geschafft habt,
die anderen wollten auch Spaß haben, aber
ne kurze Anleitung wär nett...

Wenn möglich routine 1 nicht patchen, das wär nen bisschen
zu leicht :D
an routine 2 dürft ihr jedoch machen was ihr wollt

Viel glück und frohe Weihnachtszeit
 
Gewalt ist manchmal eine lösung - hier bleibt man auch mit einem Java-vierzeiler unter 0.5 Sekunden (zumindest auf einem älteren P4 3.0GHz keine spührbare Verzögerung - gemessen habe ich es nicht ;))
entweder betrachtet man wofür der Eingabecode gebraucht und welche Routine dann nach dem "Verrechnen" aufgerufen wird, anschließend betrachtet man:
http://de.wikipedia.org/wiki/XOR-Verknüpfung
und gleich danach
http://de.wikipedia.org/wiki/Aufrufkonvention
(stdcall)
http://en.wikibooks.org/wiki/Reverse_Engineering/Calling_Conventions#STDCALL


oder löst das Rätsel
jedenfalls gibt es massig Eingabemöglichkeiten ;)
 
Original von CDW
Gewalt ist manchmal eine lösung - hier bleibt man auch mit einem Java-vierzeiler unter 0.5 Sekunden (zumindest auf einem älteren P4 3.0GHz keine spührbare Verzögerung - gemessen habe ich es nicht ;))
entweder betrachtet man wofür der Eingabecode gebraucht und welche Routine dann nach dem "Verrechnen" aufgerufen wird, anschließend betrachtet man:
http://de.wikipedia.org/wiki/XOR-Verknüpfung
und gleich danach
http://de.wikipedia.org/wiki/Aufrufkonvention
(stdcall)
http://en.wikibooks.org/wiki/Reverse_Engineering/Calling_Conventions#STDCALL


oder löst das Rätsel
jedenfalls gibt es massig Eingabemöglichkeiten ;)
Schön gemacht :-)
Ich dachte das erste wäre schwerer weil Derive es auch nach einer Minute noch nicht gelöst hatte, aber dein Programm ist anscheinend besser als Derive :D

Und zum zweiten, Man muss ja das Rätsel lösen oder wie soll man sonst
an den Cryptkey kommen? :-)
 
Und zum zweiten, Man muss ja das Rätsel lösen oder wie soll man sonst
an den Cryptkey kommen? :-)

Known-Plaintext-Angriff:
stdcall-Funktionen beginnen (fast) immer mit push ebp,mov ebp,esp. Also 55 8B ... Dies sieht man auch an den anderen Funktionsanfängen im CrackMe. Ein Schutz dagegen wäre es gewesen, die Routine anders aufzubauen oder evtl. sogar in einer Art VM-code zu schreiben, was den Angriff um einiges erschwert hätte.

Daher gilt: key ^ 73h = 55h
also key = 55h ^ 73h = 26h
Nun bleibt noch folgende triviale Gleichung:
9 + 5 + 1 + x1 + x2 + x3 + x4 + x5 = 26h
x1 + x2 + x3 + x4 + x5 = 17h
Bsp.: 9 3 3 4 4 oder 19 1 1 1 1

Daher muss die Lösung auch nicht zwingend für das Rätsel gültig sein, damit dein CM diese akzeptiert.
 
Ich dachte das erste wäre schwerer weil Derive es auch nach einer Minute noch nicht gelöst hatte
Ich denke Derive rechnet da genauer - es gibt aber ziemlich viele Lösungen, da hier ziemlich große Potenzen im Spiel sind und FPU nur 80-bit Genauigkeit hat - ab einer bestimmten Kommastelle sind weitere Stellen egal. Ich kann ja später den BF-Source posten ;)

PS: wenn möglich bitte Crackmes immer als Anhang dazupacken - um spätere Deadlinks zu vermeiden.
 
meine aktiven crackme-zeiten sind eigentlich vorbei - aber es reizt mich grad mal wieder...
...let's give it a try...

warum soll dieses cm mit olly 'unlösbar' sein?!?

womit geh ich am besten ran?? w32dasm??

...es scheint mir nicht ge-upx-packt aus -
- genausowenig liegt's in msil vor...

naja - vielleicht antwortet mir jemand

grüße aus einem arschkaltem kaff in oberösterreich,

daef


edit:

erste routine hab ich zumindest auf brutal...:
s/DFE0F6C4440F8A/DFE0F6C4440F85/g
 
Code:
warum soll dieses cm mit olly 'unlösbar' sein?!?
Weil man den richtigen Schlüssel braucht um es zu entschlüsseln

Code:
womit geh ich am besten ran?? w32dasm??
Mit olly und Verstand

Code:
...es scheint mir nicht ge-upx-packt aus -
- genausowenig liegt's in msil vor...
Ist nicht gepackt
 
also jetzt doch mit'm olly?!

however...
...soll das ziel jetzt sein das rätzel zu lösen oder das teil zu patchen?!
 
bevor ich es wieder vergesse:
Code:
   public String getKey()
   {
	   double startwert=0;
	   double addwert= 0.1;
	   double delta=0.000000000001;   
	   double sollwert=1.9391607046127319040;
       
       while (Math.abs(Math.pow(startwert,3031)+Math.pow(startwert,3139)-sollwert)>delta)
       { 
    	   while((Math.pow(startwert+addwert,3031)+Math.pow(startwert+addwert,3139)>sollwert))
    			   addwert=addwert*0.1;
    	   
    	   startwert=startwert+addwert;
       }
       
       return Double.toString(startwert);
   }

;wobei der deltawert natürlich viel größer gewählt werden kann (ab der 4 oder 5 Nachkommastelle)
;es lebe die moderne Rechenpower ;)
 
Zurück
Oben