00402533 |. 8B4C24 18 mov ecx,dword ptr ss:[esp+18]
00402537 |. 64:890D 00>mov dword ptr fs:[0],ecx
0040253E |. 83C4 24 add esp,24
00402541 |. C3 retn
--------------------------------------------------------------------------------
综合上面的,思考观察一下可得出:
A(1)=假码1,2位反转
A(2)=假码3,4位反转
A(3)=假码5,6位反转
A(4)=假码7,8位反转
A(5)=假码9,10位反转
A(6)=假码11,12位反转
A(7)=假码13,14位反转
A(8)=假码15,16位反转
===================================================================
【分析总结】
1.注册码长度为16
2.注册码每位只能是数字0-9,和字母A-F(大写)
3.运算关系:
xor A(4),A(1)=55
xor A(8),A(2)=6E
xor A(6),A(3)=4E
xor A(7),A(5)=19
4.注册码求逆:
随机生成4个10进制2位数,作为A(1),A(2),A(3),A(5)的值,因为由A xor B=C可得出A=B xor C,所以就可以反算出A(4),A(6),A(7),A(8)了,再将A(1)-A(8)转为16进制字符,反转后再按顺序连接即是注册码。
用delphi表述如下:
代码:--------------------------------------------------------------------------------