能力值:
( LV9,RANK:200 )
|
-
-
2 楼
我不厚道 不会算法
直接抠代码出来
来了一个for循环遍历
生成了16363个Key
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
算法挺长,分析了一小半.明天在继续.
+11111,+22222,+33333,+44444.....
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
Thanks For Analyze
Hard Find Password!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
bp GetDlgItemTextA 注意[EBP-5]=12FBA7处的值,此处是标志,为零则失败。
注册码等于8位,必需是“0123456789ABCDEF”字符 假码=“12345678”
将“1234”转化为1234H,将“5678”转化为5678H
算法分析:所有计算结果都只取4位16进制....
(11111=2B67H,22222=56CEH)
设A=1234H B=5678H
X=(B +11111) xor A
Y=(X +22222) xor B
X、Y取4位16进制,前后2位交换位置,如xchang 1234H,结果为3421H
X前后交换后->X
Y前后交换后->Y
X=(X +33333) xor Y
Y=(X +44444) xor X
同样,将X取4位16进制,前后2位交换、Y也是。
X前后2位交换->X
Y...........->Y
X=(X+44444) xor Y
Y=(X+33333) xor X
又是前后交换
X=(X+22222) xor Y
Y=(X+11111) xor X
Y取4位,右移后=33H就OK! 现在求逆向过程。
不知道对不对,因为编了个程序自动算注册码,,到现在也没结果,...可能没搞定.
无解!!
我试了最后一句Y=(X+11111) xor X
设Y=3300~33FF循环,而X从1~FFFF循环,,想碰撞出33XXH出来,(XX是任意数)
可是根本不存在此数.
for(y=0x3300;y<0x33FF;y++)
{ for(x=0;x<0xFFFF;x++)
if(((x+0x2b67)^x)==y)
break;
printf(" %d %x ",count++,x);
}
请楼主解释原因.HEHE
作者:看雪论坛.thatsme
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
Thanks thatsme Very Nice Solved
Error Compiled This Code Please Upload Poject
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
无解!!
我试了最后一句Y=(X+11111) xor X
设Y=3300~33FF循环,而X从1~FFFF循环,,想碰撞出33XXH出来,(XX是任意数)
可是根本不存在此数.
for(y=0x3300;y<0x33FF;y++)
{ for(x=0;x<0xFFFF;x++)
if(((x+0x2b67)^x)==y)
break;
printf(" code %x ",x);
}
请楼主解释原因.HEHE
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
Thanks You thatsme
|
能力值:
( LV6,RANK:90 )
|
-
-
9 楼
IDA直接扣出来就好了...我是来膜拜2L的
[color=#0000D0]void[/color] main([color=#0000D0]int[/color] argc, [color=#0000D0]char[/color]* argv[])
{
[color=#0000D0]int[/color] v5; [color=#008000]// edx@10[/color]
[color=#0000D0]int[/color] v7; [color=#008000]// ebx@10[/color]
[color=#0000D0]int[/color] v8; [color=#008000]// edx@10[/color]
[color=#0000D0]int[/color] v9; [color=#008000]// eax@10[/color]
[color=#0000D0]int[/color] v10; [color=#008000]// ebx@10[/color]
[color=#0000D0]int[/color] v11; [color=#008000]// edx@10[/color]
[color=#0000D0]int[/color] v12; [color=#008000]// eax@10[/color]
[color=#0000D0]int[/color] v13; [color=#008000]// ebx@10[/color]
[color=#0000D0]int[/color] v14; [color=#008000]// edx@10[/color]
[color=#0000D0]int[/color] v15; [color=#008000]// eax@10[/color]
[color=#0000D0]int[/color] v16; [color=#008000]// ebx@10[/color]
[color=#0000D0]int[/color] v17; [color=#008000]// [sp+8h] [bp-Ch]@1[/color]
[color=#0000D0]int[/color] v18; [color=#008000]// [sp+4h] [bp-10h]@1[/color]
[color=#0000D0]int[/color] v19; [color=#008000]// [sp+0h] [bp-14h]@1[/color]
[color=#0000D0]char[/color] v22; [color=#008000]// [sp+Fh] [bp-5h]@1[/color]
v17 = 0;
v18 = 0;
v19 = 0;
[color=#008000]//FILE* fp = fopen("psd.txt","a+");[/color]
[color=#008000]//char buffer[20] = {0};[/color]
[color=#0000D0]for[/color] ([color=#0000D0]int[/color] n = 0x10000000; n <= 0xFFFFFFFF; n++)
{
v7 = n%0x10000;
v19 = n/0x10000;
v8 = v19 ^ (v7 + 11111) % 65536;
v9 = v7 ^ (v8 + 22222) % 65536;
v10 = v8 / 256 + (v8 % 256 << 8);
v11 = (v9 / 256 + (v9 % 256 << 8)) ^ (v10 + 33333) % 65536;
v12 = v10 ^ (v11 + 44444) % 65536;
v13 = v11 / 256 + (v11 % 256 << 8);
v14 = (v12 / 256 + (v12 % 256 << 8)) ^ (v13 + 44444) % 65536;
v15 = v13 ^ (v14 + 33333) % 65536;
v16 = v14 / 256 + (v14 % 256 << 8);
v5 = (v15 / 256 + (v15 % 256 << 8)) ^ (v16 + 22222) % 65536;
[color=#0000D0]if[/color] ( (v16 ^ (v5 + 11111) % 65536) / 256 != 51 || v5 / 256 != 37 )
v22 = 0;
[color=#0000D0]else[/color]
{
[color=#008000]//sprintf(buffer,"%04X%04X\n",v19,v7);[/color]
[color=#008000]//fwrite(buffer,1,sizeof(buffer),fp);[/color]
[color=#FF0000]printf[/color]([color=#808080]"%04X%04X\n"[/color],v19,v7);
}
}
[color=#008000]//fclose(fp);[/color]
}
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
Thanks You nissassA Very Nice
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
LoL,Nice!
The best of best cracker,疯子 and nissassA.
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
好好学习 天天向上
|
|
|