downloadbrowseS!x0r's Crackme#1 by S!x0r

Download Crackme#1_S!x0r.zip, 6 kb (password: crackmes.de)
Browse contents of Crackme#1_S!x0r.zip

First, sorry for my bad English my main language is German

I have been created a keygenme, called Crackme#1
It is not so hard,but nothing for newbies.
The difficulty is your choice.


The Goal: Create a working keygen

Difficulty: 3 - Getting harder
Platform: Windows
Language: Assembler

Published: 07. Dec, 2014
Downloads: 329

Rating

Waiting for at least 3 votes
(we have only 1).

Rate this crackme:

Send a message to S!x0r »

View profile of S!x0r »

Solutions

Solution by Office Jesus, published 17. dec, 2014; download (24 kb), password: crackmes.de or browse.

Office Jesus has rated this crackme as nothing special.

Solution by redoC, published 17. dec, 2014; download (251 kb), password: crackmes.de or browse.

redoC has not rated this crackme yet.

Solution by baderj, published 17. dec, 2014; download (123 kb), password: crackmes.de or browse.

baderj has not rated this crackme yet.

Submit your solution »

Discussion and comments

redoC
07. Dec 2014
Does you used any special bignum library?
redoC
07. Dec 2014
Anyone good in modulo arithmetics? Here's the algo:

Big_md5hash = MD5 (username) // username slightly modified
BigConst = AD08D0361CC7FE8D1D3EAC5A68394C95
BigNum = BigSerial // 'Code' number
_004011D1:
for (i=0; i<15; i++)
{
BigNum *= BigNum // power of two
BigNum %= BigConst // modulo
}
_004011F2:
BigNum *= BigNum
BigNum *= BigSerial
BigNum %= BigConst
// final condition:
BigNum == Big_md5hash
S!x0r
Author
07. Dec 2014
No special bignum. With the IDA flirt signature called

"RESIGSv014PUB RE-SIGS v0.14 PUBLIC by dihux"

You can create a label.map for OllyDBG

Sorry for my bad English
S!x0r
Author
07. Dec 2014
Sry...

I see, you have understand this Code.
redoC
08. Dec 2014
(maybe important) correction: after computing Big_md5hash first five bytes of it is overwritten to 53 21 78 30 72
tamaroth
Moderator
09. Dec 2014
redoC: you're very close, you must first grasp what the loop does.

If you look at it, in most simple form, it multiplies our serial by itself 15 times, this looks something like this if you unroll the loop:

01: s * s = s ^ 2 = s ^ (2 ^ 1)
02: (s ^ 2) * (s ^ 2) = s ^ 4 = s ^ (2 ^ 2)
03: (s ^ 4) * (s ^ 4) = s ^ 8 = s ^ (2 ^ 3)
04: (s ^ 8) * (s ^ 8) = s ^ 16 = s ^ (2 ^ 4)
and so on...


By now you should see that at the end of the loop, the result will be s ^ (2 ^ 15) and it will be multiplied by itself once more so we get s ^ (2 ^ 16) and multiplied by original self, giving us the final value of

(s ^ (2 ^ 16)) * s = s ^ ((2 ^ 16 + 1)

Now, what is numerical value of (2 ^ 16) + 1 in decimal and hexadecimal? once you answer this question, you will continue with the rest no problem!

Best regards,
tamaroth
redoC
09. Dec 2014
Thanks dude

redoC : 9E110727261B5B301BACC23860A7880B
S!x0r
Author
09. Dec 2014
@tamaroth

Realy nice!

@redoC

Correct!
tomkol
09. Dec 2014
tamaroth you spoiled the whole fun for redoC with figuring out it's three letters crypto :)
S!x0r
Author
20. Dec 2014
Thanks a lot, for all solutions.
Mimo0Cool
28. Dec 2014
Just Modifie some jump ...
i didn't use the correct password :/'

http://im75.gulfup.com/Q1afS6.png
tamaroth
Moderator
30. Dec 2014
Yeah, I guess it's a big spoiler.

Next time just little hints :>

You may leave your comment, thoughts and discuss this crackme with other reversers here.
Acting childish will not be tolerated.
HTML and such will be left as-is, so don't try.