[Asm] 纯文本查看 复制代码
0049A470 > \8D05 C0C74A00 lea eax,dword ptr ds:[0x4AC7C0]
0049A476 . 890424 mov dword ptr ss:[esp],eax
0049A479 . E8 F2FFF6FF call win32.0040A470
0049A47E . 8B4424 04 mov eax,dword ptr ss:[esp+0x4]
0049A482 . 898424 98000000 mov dword ptr ss:[esp+0x98],eax
0049A489 . C78424 B4000000 00000>mov dword ptr ss:[esp+0xB4],0x0
0049A494 . C78424 B8000000 00000>mov dword ptr ss:[esp+0xB8],0x0
0049A49F . 8D0D C0C74A00 lea ecx,dword ptr ds:[0x4AC7C0]
0049A4A5 . 898C24 B4000000 mov dword ptr ss:[esp+0xB4],ecx
0049A4AC . 8D15 A0D04D00 lea edx,dword ptr ds:[0x4DD0A0]
0049A4B2 . 899424 B8000000 mov dword ptr ss:[esp+0xB8],edx
0049A4B9 . 8B15 B8625600 mov edx,dword ptr ds:[0x5662B8]
0049A4BF . 8D1D 50E04D00 lea ebx,dword ptr ds:[0x4DE050]
0049A4C5 . 891C24 mov dword ptr ss:[esp],ebx
0049A4C8 . 895424 04 mov dword ptr ss:[esp+0x4],edx
0049A4CC . 8D9424 B4000000 lea edx,dword ptr ss:[esp+0xB4]
0049A4D3 . 895424 08 mov dword ptr ss:[esp+0x8],edx
0049A4D7 . C74424 0C 01000000 mov dword ptr ss:[esp+0xC],0x1
0049A4DF . C74424 10 01000000 mov dword ptr ss:[esp+0x10],0x1
0049A4E7 . E8 B44BFFFF call win32.0048F0A0 ; print("请输入用户名:")
0049A4EC . C78424 AC000000 00000>mov dword ptr ss:[esp+0xAC],0x0
0049A4F7 . C78424 B0000000 00000>mov dword ptr ss:[esp+0xB0],0x0
0049A502 . 8D05 A0564A00 lea eax,dword ptr ds:[0x4A56A0]
0049A508 . 898424 AC000000 mov dword ptr ss:[esp+0xAC],eax
0049A50F . 8B8424 98000000 mov eax,dword ptr ss:[esp+0x98]
0049A516 . 898424 B0000000 mov dword ptr ss:[esp+0xB0],eax
0049A51D . 8B0D B4625600 mov ecx,dword ptr ds:[0x5662B4]
0049A523 . 8D15 30E04D00 lea edx,dword ptr ds:[0x4DE030]
0049A529 . 891424 mov dword ptr ss:[esp],edx
0049A52C . 894C24 04 mov dword ptr ss:[esp+0x4],ecx
0049A530 . 8D8C24 AC000000 lea ecx,dword ptr ss:[esp+0xAC]
0049A537 . 894C24 08 mov dword ptr ss:[esp+0x8],ecx
0049A53B . C74424 0C 01000000 mov dword ptr ss:[esp+0xC],0x1
0049A543 . C74424 10 01000000 mov dword ptr ss:[esp+0x10],0x1
0049A54B . E8 009FFFFF call win32.00494450 ; input_name
0049A550 . 8D05 40724A00 lea eax,dword ptr ds:[0x4A7240]
0049A556 . 890424 mov dword ptr ss:[esp],eax
0049A559 . E8 12FFF6FF call win32.0040A470
0049A55E . 8B4424 04 mov eax,dword ptr ss:[esp+0x4]
0049A562 . 898424 94000000 mov dword ptr ss:[esp+0x94],eax
0049A569 . C78424 A4000000 00000>mov dword ptr ss:[esp+0xA4],0x0
0049A574 . C78424 A8000000 00000>mov dword ptr ss:[esp+0xA8],0x0
0049A57F . 8D0D C0C74A00 lea ecx,dword ptr ds:[0x4AC7C0]
0049A585 . 898C24 A4000000 mov dword ptr ss:[esp+0xA4],ecx
0049A58C . 8D15 A8D04D00 lea edx,dword ptr ds:[0x4DD0A8]
0049A592 . 899424 A8000000 mov dword ptr ss:[esp+0xA8],edx
0049A599 . 8B15 B8625600 mov edx,dword ptr ds:[0x5662B8]
0049A59F . 8D1D 50E04D00 lea ebx,dword ptr ds:[0x4DE050]
0049A5A5 . 891C24 mov dword ptr ss:[esp],ebx
0049A5A8 . 895424 04 mov dword ptr ss:[esp+0x4],edx
0049A5AC . 8D9424 A4000000 lea edx,dword ptr ss:[esp+0xA4]
0049A5B3 . 895424 08 mov dword ptr ss:[esp+0x8],edx
0049A5B7 . C74424 0C 01000000 mov dword ptr ss:[esp+0xC],0x1
0049A5BF . C74424 10 01000000 mov dword ptr ss:[esp+0x10],0x1
0049A5C7 . E8 D44AFFFF call win32.0048F0A0 ; print("请输入注册码:")
0049A5CC . C78424 9C000000 00000>mov dword ptr ss:[esp+0x9C],0x0
0049A5D7 . C78424 A0000000 00000>mov dword ptr ss:[esp+0xA0],0x0
0049A5E2 . 8D05 202E4A00 lea eax,dword ptr ds:[0x4A2E20]
0049A5E8 . 898424 9C000000 mov dword ptr ss:[esp+0x9C],eax
0049A5EF . 8B8424 94000000 mov eax,dword ptr ss:[esp+0x94]
0049A5F6 . 898424 A0000000 mov dword ptr ss:[esp+0xA0],eax
0049A5FD . 8B0D B4625600 mov ecx,dword ptr ds:[0x5662B4]
0049A603 . 8D15 30E04D00 lea edx,dword ptr ds:[0x4DE030]
0049A609 . 891424 mov dword ptr ss:[esp],edx
0049A60C . 894C24 04 mov dword ptr ss:[esp+0x4],ecx
0049A610 . 8D8C24 9C000000 lea ecx,dword ptr ss:[esp+0x9C]
0049A617 . 894C24 08 mov dword ptr ss:[esp+0x8],ecx
0049A61B . C74424 0C 01000000 mov dword ptr ss:[esp+0xC],0x1
0049A623 . C74424 10 01000000 mov dword ptr ss:[esp+0x10],0x1
0049A62B . E8 209EFFFF call win32.00494450 ; input(sn)
0049A630 . 8B8424 98000000 mov eax,dword ptr ss:[esp+0x98]
0049A637 . 8B08 mov ecx,dword ptr ds:[eax] ; ecx ==> name
0049A639 . 898C24 90000000 mov dword ptr ss:[esp+0x90],ecx
0049A640 . 8B50 04 mov edx,dword ptr ds:[eax+0x4] ; edx = len(name)
0049A643 . 895424 44 mov dword ptr ss:[esp+0x44],edx
0049A647 . 31DB xor ebx,ebx
0049A649 . 31ED xor ebp,ebp
0049A64B . 31F6 xor esi,esi
0049A64D . E9 89000000 jmp win32.0049A6DB
0049A652 > 895C24 30 mov dword ptr ss:[esp+0x30],ebx ; i, ebx
0049A656 . 0FB6040B movzx eax,byte ptr ds:[ebx+ecx] ; name[i]
0049A65A . 8D5424 52 lea edx,dword ptr ss:[esp+0x52]
0049A65E . 891424 mov dword ptr ss:[esp],edx ; edx ==> "12s45d6890ABCbER3HTJKLMNOPQFSmUyWaYZXDc7efghijklInopqrGtuvwxVz"
0049A661 . C74424 04 3E000000 mov dword ptr ss:[esp+0x4],0x3E ; 62
0049A669 . C74424 08 3E000000 mov dword ptr ss:[esp+0x8],0x3E ; 62
0049A671 . 884424 0C mov byte ptr ss:[esp+0xC],al ; name[i]
0049A675 . E8 C67DF6FF call win32.00402440 ; int idx = edx->indexOf(name[i])
0049A67A . 8B4424 10 mov eax,dword ptr ss:[esp+0x10]
0049A67E . f20f2ac0 cvtsi2sd xmm0,eax
0049A682 . f20f110424 movsd qword ptr ss:[esp],xmm0
0049A687 . 8B4424 30 mov eax,dword ptr ss:[esp+0x30]
0049A68B . 40 inc eax ; i+1
0049A68C . 894424 40 mov dword ptr ss:[esp+0x40],eax
0049A690 . f20f2ac0 cvtsi2sd xmm0,eax
0049A694 . f20f114424 08 movsd qword ptr ss:[esp+0x8],xmm0
0049A69A . E8 718BFCFF call win32.00463210 ; pow(idx, i+1)
0049A69F . f20f104424 10 movsd xmm0,qword ptr ss:[esp+0x10]
0049A6A5 . f20f110424 movsd qword ptr ss:[esp],xmm0
0049A6AA . E8 913DFBFF call win32.0044E440 ; Double2Int64
0049A6AF . 8B4424 08 mov eax,dword ptr ss:[esp+0x8]
0049A6B3 . 8B4C24 24 mov ecx,dword ptr ss:[esp+0x24]
0049A6B7 . 01C1 add ecx,eax ; chk_sum_lo
0049A6B9 . 8B6C24 0C mov ebp,dword ptr ss:[esp+0xC]
0049A6BD . 8B4424 28 mov eax,dword ptr ss:[esp+0x28]
0049A6C1 . 11C5 adc ebp,eax ; chk_sum_hi
0049A6C3 . 8B8424 98000000 mov eax,dword ptr ss:[esp+0x98]
0049A6CA . 8B5424 44 mov edx,dword ptr ss:[esp+0x44]
0049A6CE . 8B5C24 40 mov ebx,dword ptr ss:[esp+0x40]
0049A6D2 . 89CE mov esi,ecx
0049A6D4 . 8B8C24 90000000 mov ecx,dword ptr ss:[esp+0x90]
0049A6DB > 896C24 28 mov dword ptr ss:[esp+0x28],ebp
0049A6DF . 897424 24 mov dword ptr ss:[esp+0x24],esi
0049A6E3 . 39D3 cmp ebx,edx
0049A6E5 .^ 0F8C 67FFFFFF jl win32.0049A652 ; loop
0049A6EB . 8B8424 94000000 mov eax,dword ptr ss:[esp+0x94] ; [eax] ===> sn
0049A6F2 . 8B48 04 mov ecx,dword ptr ds:[eax+0x4] ; len_sn
0049A6F5 . 894C24 44 mov dword ptr ss:[esp+0x44],ecx
0049A6F9 . 893424 mov dword ptr ss:[esp],esi
0049A6FC . 896C24 04 mov dword ptr ss:[esp+0x4],ebp
0049A700 . C74424 08 0A000000 mov dword ptr ss:[esp+0x8],0xA
0049A708 . E8 8325FDFF call win32.0046CC90 ; int64toStr(chk_sum)
0049A70D . 8B4424 44 mov eax,dword ptr ss:[esp+0x44]
0049A711 . 394424 10 cmp dword ptr ss:[esp+0x10],eax ; len_check_sn_str == 8
0049A715 . 0F85 76020000 jnz win32.0049A991 ; goto 显示长度错误
0049A71B > 8B4424 24 mov eax,dword ptr ss:[esp+0x24]
0049A71F . 8B4C24 28 mov ecx,dword ptr ss:[esp+0x28]
0049A723 . 31D2 xor edx,edx
0049A725 . EB 09 jmp short win32.0049A730
0049A727 > 8D58 01 lea ebx,dword ptr ds:[eax+0x1]
0049A72A . 89C8 mov eax,ecx
0049A72C . 89D1 mov ecx,edx
0049A72E . 89DA mov edx,ebx
0049A730 > 85C9 test ecx,ecx
0049A732 . 0F94C3 sete bl
0049A735 . 87DD xchg ebp,ebx
0049A737 . 0F97C3 seta bl
0049A73A . 87DD xchg ebp,ebx
0049A73C . 85C0 test eax,eax
0049A73E . 87DE xchg esi,ebx
0049A740 . 0F97C3 seta bl
0049A743 . 87DE xchg esi,ebx
0049A745 . 21F3 and ebx,esi
0049A747 . 09DD or ebp,ebx
0049A749 . 95 xchg eax,ebp
0049A74A . 84C0 test al,al
0049A74C . 95 xchg eax,ebp
0049A74D . 0F84 3C010000 je win32.0049A88F ; 全部正确则跳转
0049A753 . 894424 24 mov dword ptr ss:[esp+0x24],eax
0049A757 . 894C24 28 mov dword ptr ss:[esp+0x28],ecx
0049A75B . 895424 2C mov dword ptr ss:[esp+0x2C],edx
0049A75F . 890424 mov dword ptr ss:[esp],eax
0049A762 . 894C24 04 mov dword ptr ss:[esp+0x4],ecx
0049A766 . E8 153EFBFF call win32.0044E580 ; int64toDouble(check_sum)
0049A76B . f20f104424 08 movsd xmm0,qword ptr ss:[esp+0x8]
0049A771 . f20f110424 movsd qword ptr ss:[esp],xmm0
0049A776 . f20f1005 40cf4d00 movsd xmm0,qword ptr ds:[0x4dcf40] ; 常量Double: 10
0049A77E . f20f114424 08 movsd qword ptr ss:[esp+0x8],xmm0
0049A784 . E8 F789FCFF call win32.00463180 ; mod(check_sum, 10)
0049A789 . f20f104424 10 movsd xmm0,qword ptr ss:[esp+0x10]
0049A78F . f20f114424 48 movsd qword ptr ss:[esp+0x48],xmm0
0049A795 . 8B4424 24 mov eax,dword ptr ss:[esp+0x24]
0049A799 . 890424 mov dword ptr ss:[esp],eax
0049A79C . 8B4424 28 mov eax,dword ptr ss:[esp+0x28]
0049A7A0 . 894424 04 mov dword ptr ss:[esp+0x4],eax
0049A7A4 . C74424 08 0A000000 mov dword ptr ss:[esp+0x8],0xA ; 10
0049A7AC . C74424 0C 00000000 mov dword ptr ss:[esp+0xC],0x0
0049A7B4 . E8 573FFBFF call win32.0044E710 ; check_sum = (int)div(check_sum, 10)
0049A7B9 . f20f104424 48 movsd xmm0,qword ptr ss:[esp+0x48]
0049A7BF . f20f2cc0 cvttsd2si eax,xmm0
0049A7C3 . 8B4C24 10 mov ecx,dword ptr ss:[esp+0x10]
0049A7C7 . 8B5424 14 mov edx,dword ptr ss:[esp+0x14]
0049A7CB . 83F8 3E cmp eax,0x3E ; eax是mod()的结果。
0049A7CE . 0F83 38020000 jnb win32.0049AA0C
0049A7D4 . 0FB65C04 52 movzx ebx,byte ptr ss:[esp+eax+0x52] ; 查表
0049A7D9 . 8BAC24 94000000 mov ebp,dword ptr ss:[esp+0x94]
0049A7E0 . 8B75 04 mov esi,dword ptr ss:[ebp+0x4]
0049A7E3 . 8B7D 00 mov edi,dword ptr ss:[ebp] ; edi ==> input_sn
0049A7E6 . 8B4424 2C mov eax,dword ptr ss:[esp+0x2C]
0049A7EA . 39F0 cmp eax,esi
0049A7EC . 0F83 13020000 jnb win32.0049AA05
0049A7F2 . 0FB63438 movzx esi,byte ptr ds:[eax+edi] ; 取输入的sn
0049A7F6 . 96 xchg eax,esi
0049A7F7 . 38C3 cmp bl,al ; 字符比较,这里可得到正确的明文字符序列号
0049A7F9 . 96 xchg eax,esi
0049A7FA .^ 0F84 27FFFFFF je win32.0049A727
0049A800 . 894C24 3C mov dword ptr ss:[esp+0x3C],ecx
0049A804 . 895424 38 mov dword ptr ss:[esp+0x38],edx
0049A808 . C78424 CC000000 00000>mov dword ptr ss:[esp+0xCC],0x0
0049A813 . C78424 D0000000 00000>mov dword ptr ss:[esp+0xD0],0x0
0049A81E . 8D05 C0C74A00 lea eax,dword ptr ds:[0x4AC7C0]
0049A824 . 898424 CC000000 mov dword ptr ss:[esp+0xCC],eax
0049A82B . 8D0D B8D04D00 lea ecx,dword ptr ds:[0x4DD0B8]
0049A831 . 898C24 D0000000 mov dword ptr ss:[esp+0xD0],ecx
0049A838 . 8B15 B8625600 mov edx,dword ptr ds:[0x5662B8]
0049A83E . 8D1D 50E04D00 lea ebx,dword ptr ds:[0x4DE050]
0049A844 . 891C24 mov dword ptr ss:[esp],ebx
0049A847 . 895424 04 mov dword ptr ss:[esp+0x4],edx
0049A84B . 8D9424 CC000000 lea edx,dword ptr ss:[esp+0xCC]
0049A852 . 895424 08 mov dword ptr ss:[esp+0x8],edx
0049A856 . C74424 0C 01000000 mov dword ptr ss:[esp+0xC],0x1
0049A85E . C74424 10 01000000 mov dword ptr ss:[esp+0x10],0x1
0049A866 . E8 3548FFFF call win32.0048F0A0 ; print("认证失败!")
0049A86B . C70424 01000000 mov dword ptr ss:[esp],0x1
0049A872 . E8 491BFFFF call win32.0048C3C0
0049A877 . 8B4424 2C mov eax,dword ptr ss:[esp+0x2C]
0049A87B . 8B4C24 3C mov ecx,dword ptr ss:[esp+0x3C]
0049A87F . 8B5424 38 mov edx,dword ptr ss:[esp+0x38]
0049A883 . 8BAC24 94000000 mov ebp,dword ptr ss:[esp+0x94]
0049A88A .^ E9 98FEFFFF jmp win32.0049A727
0049A88F > C78424 C4000000 00000>mov dword ptr ss:[esp+0xC4],0x0
0049A89A . C78424 C8000000 00000>mov dword ptr ss:[esp+0xC8],0x0
0049A8A5 . 8D05 C0C74A00 lea eax,dword ptr ds:[0x4AC7C0]
0049A8AB . 898424 C4000000 mov dword ptr ss:[esp+0xC4],eax
0049A8B2 . 8D0D C0D04D00 lea ecx,dword ptr ds:[0x4DD0C0]
0049A8B8 . 898C24 C8000000 mov dword ptr ss:[esp+0xC8],ecx
0049A8BF . 8B0D B8625600 mov ecx,dword ptr ds:[0x5662B8]
0049A8C5 . 8D15 50E04D00 lea edx,dword ptr ds:[0x4DE050]
0049A8CB . 891424 mov dword ptr ss:[esp],edx
0049A8CE . 894C24 04 mov dword ptr ss:[esp+0x4],ecx
0049A8D2 . 8D8C24 C4000000 lea ecx,dword ptr ss:[esp+0xC4]
0049A8D9 . 894C24 08 mov dword ptr ss:[esp+0x8],ecx
0049A8DD . C74424 0C 01000000 mov dword ptr ss:[esp+0xC],0x1
0049A8E5 . C74424 10 01000000 mov dword ptr ss:[esp+0x10],0x1
0049A8ED . E8 AE47FFFF call win32.0048F0A0
0049A8F2 . 8B8424 98000000 mov eax,dword ptr ss:[esp+0x98]
0049A8F9 . 8B48 04 mov ecx,dword ptr ds:[eax+0x4]
0049A8FC . 8B00 mov eax,dword ptr ds:[eax]
0049A8FE . 83F9 09 cmp ecx,0x9
0049A901 . 74 07 je short win32.0049A90A
0049A903 > 81C4 DC000000 add esp,0xDC
0049A909 . C3 retn