downloadbrowseror32's Crackme #01

Download r32crkme01.zip, 4 kb (password: crackmes.de)
Browse contents of r32crkme01.zip

The validation algorithm is simple arithmetic.

If you figure out a way to generate a license key for a given user name, then create a keygen and send it to me with the source code. Povided that the keygen works, you will get the source code of this crackme and my keygen!

Rules:
1) No patching
2) No bruteforce

Tasks:
1) Find a license key for your name
2) Create a keygen that generates a license key for any given user name

Difficulty: 3 - Getting harder
Platform: Windows
Language: C/C++

Published: 11. Feb, 2011
Downloads: 325

Rating

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

Rate this crackme:

Send a message to ror32 »

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.

Submit your solution »

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.