
S!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
Difficulty: 3 - Getting harder | RatingWaiting for at least 3 votes 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.
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.