飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4273|回复: 0

[求助] 请教下浮点型算法分析

[复制链接]

该用户从未签到

发表于 2009-5-25 15:44:53 | 显示全部楼层 |阅读模式
0047F638    55                   push ebp
0047F639    8BEC                 mov ebp,esp
0047F63B    83C4 E4              add esp,-1C
0047F63E    53                   push ebx
0047F63F    33C9                 xor ecx,ecx
0047F641    894D E4              mov dword ptr ss:[ebp-1C],ecx
0047F644    894D E8              mov dword ptr ss:[ebp-18],ecx
0047F647    894D EC              mov dword ptr ss:[ebp-14],ecx
0047F64A    8BD8                 mov ebx,eax
0047F64C    33C0                 xor eax,eax
0047F64E    55                   push ebp
0047F64F    68 02F74700          push Delphi.0047F702
0047F654    64:FF30              push dword ptr fs:[eax]
0047F657    64:8920              mov dword ptr fs:[eax],esp
0047F65A    8D55 EC              lea edx,dword ptr ss:[ebp-14]
0047F65D    8B83 04030000        mov eax,dword ptr ds:[ebx+304]
0047F663    E8 EC53FBFF          call Delphi.00434A54
0047F668    837D EC 00           cmp dword ptr ss:[ebp-14],0     ; 计算假码的长度
0047F66C    74 79                je short Delphi.0047F6E7        ; 没输入注册码就跳
0047F66E    8D55 E8              lea edx,dword ptr ss:[ebp-18]
0047F671    8B83 04030000        mov eax,dword ptr ds:[ebx+304]
0047F677    E8 D853FBFF          call Delphi.00434A54
0047F67C    8B45 E8              mov eax,dword ptr ss:[ebp-18]   ; 假码
0047F67F    E8 A89EF8FF          call Delphi.0040952C
0047F684    DD5D F8              fstp qword ptr ss:[ebp-8]
0047F687    9B                   wait
0047F688    DD45 F8              fld qword ptr ss:[ebp-8]        ; 把假码转浮点型
0047F68B    D805 10F74700        fadd dword ptr ds:[47F710]      ; 把假码加 51042.00
0047F691    DD5D F8              fstp qword ptr ss:[ebp-8]       ; 123456.0000000000+51042.00=174498.00000000000000
0047F694    9B                   wait
0047F695    8D55 E4              lea edx,dword ptr ss:[ebp-1C]
0047F698    8B83 FC020000        mov eax,dword ptr ds:[ebx+2FC]
0047F69E    E8 B153FBFF          call Delphi.00434A54
0047F6A3    8B45 E4              mov eax,dword ptr ss:[ebp-1C]   ; 读机器码 ASCII "95517768"
0047F6A6    E8 819EF8FF          call Delphi.0040952C
0047F6AB    DD5D F0              fstp qword ptr ss:[ebp-10]      ; 把机器码转浮点型
0047F6AE    9B                   wait
0047F6AF    DD45 F0              fld qword ptr ss:[ebp-10]
0047F6B2    D805 14F74700        fadd dword ptr ds:[47F714]      ; 把机器码加 20417.00
0047F6B8    DD5D F0              fstp qword ptr ss:[ebp-10]      ; 结果为 95538185.000000000000
0047F6BB    9B                   wait
0047F6BC    DD45 F8              fld qword ptr ss:[ebp-8]        ; 读取加后的假码 174498.000000000000
0047F6BF    DC4D F0              fmul qword ptr ss:[ebp-10]      ; 请问这里是相乘吗? 把174498.00000000000000*95538185.00000000????
0047F6C2    DB2D 18F74700        fld tbyte ptr ds:[47F718]       ; 这里出现的是真的注册码浮点行 1.9860317891198000000e+14
0047F6C8    DED9                 fcompp                          ; 请问这里是 1.9860317891198000000e+14 和1.6671222206130000000e+13比较吗?
0047F6CA    DFE0                 fstsw ax
0047F6CC    9E                   sahf
0047F6CD    75 18                jnz short Delphi.0047F6E7       ; 这里是关键跳,跳了就错误.这里可以爆破.
0047F6CF    6A 00                push 0
0047F6D1    B9 24F74700          mov ecx,Delphi.0047F724
0047F6D6    BA 2CF74700          mov edx,Delphi.0047F72C
0047F6DB    A1 F8124800          mov eax,dword ptr ds:[4812F8]
0047F6E0    8B00                 mov eax,dword ptr ds:[eax]
0047F6E2    E8 394EFDFF          call Delphi.00454520
0047F6E7    33C0                 xor eax,eax
0047F6E9    5A                   pop edx
0047F6EA    59                   pop ecx
0047F6EB    59                   pop ecx
0047F6EC    64:8910              mov dword ptr fs:[eax],edx
0047F6EF    68 09F74700          push Delphi.0047F709
0047F6F4    8D45 E4              lea eax,dword ptr ss:[ebp-1C]
0047F6F7    BA 03000000          mov edx,3
0047F6FC    E8 D347F8FF          call Delphi.00403ED4
0047F701    C3                   retn
请问下注册码怎么算?
本人菜鸟一只,请高手指点!!

[ 本帖最后由 黑狼人 于 2009-5-25 16:27 编辑 ]
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表