
ror32's Crackme #01
Download r32crkme01.zip, 4 kb (password: crackmes.de) Browse contents of r32crkme01.zip The validation algorithm is simple arithmetic.
Difficulty: 3 - Getting harder | RatingWaiting for at least 3 votes View profile of ror32 » |
Solutions
Solution by SFeS, published 23. mar, 2011; download (2 kb), password: crackmes.de or browse.
SFeS has not rated this crackme yet.
Discussion and comments
promix17 12. Feb 2011 | Is it real to reverse this algorithm? Especially this part of code: int f1(char* a1) { int result; char* v2; int v3; char v4; v2 = a1; result = 0; while ( 1 ) { v4 = *v2; if ( !v2 ) break; v3 = 16 * result; if ( v4 < 48 || v4 > 57 ) { if ( v4 < 65 || v4 > 70 ) { if ( v4 < 97 || v4 > 102 ) return -1; result = v3 + v4 - 87; } else { result = v3 + v4 - 55; } } else { result = v3 + v4 - 48; } ++v2; } return result; } |
---|---|
promix17 12. Feb 2011 | Or it is possible... I will think more. |
ror32 Author 12. Feb 2011 | If you see the function in isolation, you cannot make the inverse function because an input and the output of the function don't have a one to one correspondence. But with the range of input values possible in the crackme, you can make the inverse function. Maybe needless to say, the function is only the first step and not the core of the crackme. |
SFeS 04. Mar 2011 | Add: (value + constant_add) % 2^64 = value_2 reverse if (value_2 < constant_add): value_2 += 2^64 value = (value_2 - constant_add) % 2^64 Mul: (value * constant_mul) % 2^64 = value_2 reverse ????? |
KKR_WE_RULE 04. Mar 2011 | Well Modular Multiplicative Inverse :) |
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.