能力值:
( LV6,RANK:90 )
|
-
-
2 楼
自己回复一下, 没有简单的逆向,
自己写了一个暴力破解的,效率还算可以.
byte ss[32]="";//注册码
byte binaryArray[20]="";//目标数组
int last=0;
Recursion(0,19,31,0);
Recursion(int inc,int desc_p,int src_p,int last)
{
byte a=0,b=0,c=binaryArray[desc_p];
int i=0,j=0,result=0;
if (inc+5<8)
{
for (a=0x30;a<=0x5A;a++)
{
if ((a>=0x30 && a<=0x39) || (a>=0x41 && a<=0x5A))
{
i=(a>=0x41)?(a-0x37):(a-0x30);
for (b=0x30;b<=0x5A;b++)
{
if ((b>=0x30 && b<=0x39) || (b>=0x41 && b<=0x5A))
{
j=(b>=0x41)?(b-0x37):(b-0x30);
result=(i<<inc) | (j<<(inc+5)) | last;
if((result & 0xff) == c)
{
ss[src_p]=a;
ss[src_p-1]=b;
if (desc_p==0)
{
return 1;//找到匹配的注册码
}
Recursion(inc+10-8,desc_p - 1,src_p-2,(last | result)>>8);
}
}
}
}
}
}else
{
for (a=0x30;a<=0x5A;a++)
{
if ((a>=0x30 && a<=0x39) || (a>=0x41 && a<=0x5A))
{
i=(a>=0x41)?(a-0x37):(a-0x30);
result=(i<<inc) | last;
if ((result & 0xff) == c)
{
ss[src_p]=a;
if (desc_p==0)
{
return 1;//找到匹配的注册码
}
Recursion(inc+5-8,desc_p - 1,src_p-1,(last | result)>>8);
}
}
}
}
return 0;
}
|
|
|