求高手帮我分析一下这个注册码算法
00D59120 6A FF push -1 ; 注册码算法00D59122 68 302AD800 push 00D82A30
00D59127 64:A1 00000000mov eax, dword ptr fs:
00D5912D 50 push eax
00D5912E 64:8925 0000000>mov dword ptr fs:, esp
00D59135 83EC 30 sub esp, 30
00D59138 53 push ebx
00D59139 8B5C24 44 mov ebx, dword ptr ; 3364117033138028
00D5913D 55 push ebp
00D5913E 56 push esi
00D5913F 8D43 0D lea eax, dword ptr ; 028
00D59142 57 push edi ; 333333-333333-333333-333333
00D59143 8BF1 mov esi, ecx
00D59145 50 push eax ; 028
00D59146 E8 CD340100 call 00D6C618
00D5914B 8AC8 mov cl, al ; al=1c
00D5914D 83C4 04 add esp, 4 ; esp=0139fe68
00D59150 80E1 0F and cl, 0F ; cl=1c
00D59153 884C24 13 mov byte ptr , cl ; cl=0c(form feed) 堆栈ss:=00
00D59157 8D4C24 20 lea ecx, dword ptr ; 堆栈地址=0139FE8Cecx=0039420c
00D5915B C0E8 04 shr al, 4 ; al=1C
00D5915E 884424 50 mov byte ptr , al ; al=01 堆栈 ss:=30 ('0')
00D59162 E8 89EEFFFF call 00D57FF0
00D59167 8D4C24 28 lea ecx, dword ptr ; 堆栈地址=0139FE94
00D5916B E8 A0410000 call 00D5D310
00D59170 33C9 xor ecx, ecx ; ecx=00000000
00D59172 8BD3 mov edx, ebx ; ebx=00394230, (ASCII "3364117033138028")
00D59174 894C24 31 mov dword ptr , ecx ; ecx=00000000
00D59178 8D6E 10 lea ebp, dword ptr ; 地址=00B22158
00D5917B 8B02 mov eax, dword ptr ; ds:=34363333
00D5917D 894C24 35 mov dword ptr , ecx ; ecx=00000000
00D59181 894C24 39 mov dword ptr , ecx ; ecx=00000000
00D59185 894424 30 mov dword ptr , eax ; eax=34363333
00D59189 66:894C24 3D mov word ptr , cx ; cx=0000
00D5918E 8D43 08 lea eax, dword ptr ; 地址=00394238, (ASCII "33138028")
00D59191 884C24 3F mov byte ptr , cl ; cl=00
00D59195 66:8B4A 04 mov cx, word ptr ; ds:=3131
00D59199 66:894C24 34 mov word ptr , cx ; cx=3131
00D5919E 8B08 mov ecx, dword ptr ; ds:=33313333
00D591A0 8A52 06 mov dl, byte ptr ; ds:=37 ('7')
00D591A3 55 push ebp ; ebp=00B22158
00D591A4 885424 3A mov byte ptr , dl ; dl=37 ('7')
00D591A8 8A50 04 mov dl, byte ptr ; ds:=38 ('8')
00D591AB 8D46 0A lea eax, dword ptr ; 地址=00B22152
00D591AE 8D7E 08 lea edi, dword ptr ; 地址=00B22150
00D591B1 894424 20 mov dword ptr , eax ; eax=00B22152
00D591B5 50 push eax ; eax=00B22152
00D591B6 8D46 0B lea eax, dword ptr ; 地址=00B22153
00D591B9 885424 43 mov byte ptr , dl ; dl=38 ('8')
00D591BD 894424 20 mov dword ptr , eax ; eax=00B22153
00D591C1 50 push eax ; eax=00B22153
00D591C2 8D46 0C lea eax, dword ptr ; 地址=00B22154
00D591C5 8B5424 60 mov edx, dword ptr ; 堆栈 ss:=00394500, (ASCII "333333-333333-333333-333333")
00D591C9 894424 20 mov dword ptr , eax ; eax=00B22154
00D591CD 50 push eax ; eax=00B22154
00D591CE 8D46 09 lea eax, dword ptr ; 地址=00B22151
00D591D1 894C24 47 mov dword ptr , ecx ; ecx=33313333
00D591D5 50 push eax ; eax=00B22151
00D591D6 8D4424 44 lea eax, dword ptr ; 堆栈地址=0139FE9C, (ASCII "336411733138")
00D591DA 57 push edi ; edi=00B22150
00D591DB 50 push eax ; eax=0139FE9C, (ASCII "336411733138")
00D591DC 51 push ecx ; ecx=33313333
00D591DD C74424 68 00000>mov dword ptr , 0 ; 堆栈 ss:=FFFFFFFF
00D591E5 8BCC mov ecx, esp ; esp=0139FE4C
00D591E7 896424 44 mov dword ptr , esp ; esp=0139FE4C
00D591EB 52 push edx ; edx=00394500, (ASCII "333333-333333-333333-333333")
00D591EC E8 4EE30100 call 00D7753F
00D591F1 8D4C24 48 lea ecx, dword ptr ; 堆栈地址=0139FE94
00D591F5 E8 66410000 call 00D5D360
00D591FA 85C0 test eax, eax ; eax=00000000
00D591FC 74 1B je short 00D59219 ; 跳转未实现
00D591FE 8D4C24 28 lea ecx, dword ptr ; 堆栈地址=0139FE94
00D59202 C74424 48 FFFFF>mov dword ptr , -1 ; 堆栈 ss:=00000000
00D5920A E8 41410000 call 00D5D350
00D5920F B8 01000000 mov eax, 1 ; eax=00000000
00D59214 E9 DA010000 jmp 00D593F3
00D59219 8A4424 50 mov al, byte ptr
00D5921D 8A0F mov cl, byte ptr
00D5921F 3AC1 cmp al, cl
00D59221 0F84 B6010000 je 00D593DD
00D59227 0F84 B0010000 je 00D593DD
00D5922D 90 nop
00D5922E 3AC1 cmp al, cl
00D59230 0F85 A7010000 jnz 00D593DD
00D59236 8B5424 14 mov edx, dword ptr
00D5923A 803A 07 cmp byte ptr , 7
00D5923D 0F84 A9000000 je 00D592EC
00D59243 51 push ecx
00D59244 8BC4 mov eax, esp
00D59246 896424 54 mov dword ptr , esp
00D5924A 50 push eax
00D5924B E8 D4CF0100 call 00D76224
00D59250 51 push ecx
00D59251 8BCC mov ecx, esp
00D59253 896424 58 mov dword ptr , esp
00D59257 6A 00 push 0
00D59259 6A 00 push 0
00D5925B 6A 00 push 0
00D5925D 6A 01 push 1
00D5925F E8 DC9EFFFF call 00D53140
00D59264 8D4C24 2C lea ecx, dword ptr
00D59268 51 push ecx
00D59269 8BCD mov ecx, ebp
00D5926B E8 70A1FFFF call 00D533E0
00D59270 8BC8 mov ecx, eax
00D59272 E8 49090000 call 00D59BC0
00D59277 85C0 test eax, eax
00D59279 74 71 je short 00D592EC
00D5927B 8D4C24 54 lea ecx, dword ptr
00D5927F E8 8CEDFFFF call 00D58010
00D59284 8BCD mov ecx, ebp
00D59286 C64424 48 01 mov byte ptr , 1
00D5928B E8 F0A0FFFF call 00D53380
00D59290 8D0480 lea eax, dword ptr
00D59293 8BCD mov ecx, ebp
00D59295 8D3480 lea esi, dword ptr
00D59298 E8 F3A0FFFF call 00D53390
00D5929D 8D04B0 lea eax, dword ptr
00D592A0 8BCD mov ecx, ebp
00D592A2 8D0480 lea eax, dword ptr
00D592A5 8D3480 lea esi, dword ptr
00D592A8 E8 F3A0FFFF call 00D533A0
00D592AD 8D14B0 lea edx, dword ptr
00D592B0 8D4424 54 lea eax, dword ptr
00D592B4 52 push edx
00D592B5 68 68D1D800 push 00D8D168 ; ASCII "m_tmExpireDate=%d"
00D592BA 50 push eax
00D592BB E8 56D40100 call 00D76716
00D592C0 83C4 0C add esp, 0C
00D592C3 8D4C24 54 lea ecx, dword ptr
00D592C7 C64424 48 00 mov byte ptr , 0
00D592CC E8 44E20100 call 00D77515
00D592D1 8D4C24 28 lea ecx, dword ptr
00D592D5 C74424 48 FFFFF>mov dword ptr , -1
00D592DD E8 6E400000 call 00D5D350
00D592E2 B8 10000000 mov eax, 10
00D592E7 E9 07010000 jmp 00D593F3
00D592EC 8B7C24 54 mov edi, dword ptr
00D592F0 83C9 FF or ecx, FFFFFFFF
00D592F3 33C0 xor eax, eax
00D592F5 8D96 E8000000 lea edx, dword ptr
00D592FB F2:AE repne scas byte ptr es:
00D592FD F7D1 not ecx
00D592FF 2BF9 sub edi, ecx
00D59301 8BC1 mov eax, ecx
00D59303 8BF7 mov esi, edi
00D59305 8BFA mov edi, edx
00D59307 C1E9 02 shr ecx, 2
00D5930A F3:A5 rep movs dword ptr es:, dword p>
00D5930C 8BC8 mov ecx, eax
00D5930E 83E1 03 and ecx, 3
00D59311 F3:A4 rep movs byte ptr es:, byte ptr>
00D59313 8B0D BC39D900 mov ecx, dword ptr
00D59319 C681 AC010000 0>mov byte ptr , 0
00D59320 8A43 04 mov al, byte ptr
00D59323 3C 38 cmp al, 38
00D59325 0F84 9D000000 je 00D593C8
00D5932B 8B7424 18 mov esi, dword ptr
00D5932F 8A06 mov al, byte ptr
00D59331 3C 01 cmp al, 1
00D59333 74 11 je short 00D59346
00D59335 3C 02 cmp al, 2
00D59337 74 0D je short 00D59346
00D59339 8B15 BC39D900 mov edx, dword ptr
00D5933F C682 AC010000 0>mov byte ptr , 1
00D59346 8B4424 1C mov eax, dword ptr
00D5934A 8038 01 cmp byte ptr , 1
00D5934D 74 0D je short 00D5935C
00D5934F 8B0D BC39D900 mov ecx, dword ptr
00D59355 C681 AC010000 0>mov byte ptr , 2
00D5935C 8BCD mov ecx, ebp
00D5935E E8 1DA0FFFF call 00D53380
00D59363 8D0480 lea eax, dword ptr
00D59366 8BCD mov ecx, ebp
00D59368 8D3C80 lea edi, dword ptr
00D5936B E8 20A0FFFF call 00D53390
00D59370 8D04B8 lea eax, dword ptr
00D59373 8BCD mov ecx, ebp
00D59375 8D0480 lea eax, dword ptr
00D59378 8D3C80 lea edi, dword ptr
00D5937B E8 20A0FFFF call 00D533A0
00D59380 8B5424 14 mov edx, dword ptr
00D59384 8D0CB8 lea ecx, dword ptr
00D59387 8A02 mov al, byte ptr
00D59389 84C0 test al, al
00D5938B 74 18 je short 00D593A5
00D5938D 3C 07 cmp al, 7
00D5938F 75 0C jnz short 00D5939D
00D59391 81F9 BF7B3301 cmp ecx, 1337BBF
00D59397 75 0C jnz short 00D593A5
00D59399 3AC0 cmp al, al
00D5939B 74 14 je short 00D593B1
00D5939D 81F9 BF7B3301 cmp ecx, 1337BBF
00D593A3 75 0C jnz short 00D593B1
00D593A5 A1 BC39D900 mov eax, dword ptr
00D593AA C680 AC010000 0>mov byte ptr , 3
00D593B1 803E 02 cmp byte ptr , 2
00D593B4 75 12 jnz short 00D593C8
00D593B6 803A 04 cmp byte ptr , 4
00D593B9 76 0D jbe short 00D593C8
00D593BB 8B0D BC39D900 mov ecx, dword ptr
00D593C1 C681 AC010000 0>mov byte ptr , 4
00D593C8 8D4C24 28 lea ecx, dword ptr
00D593CC C74424 48 FFFFF>mov dword ptr , -1
00D593D4 E8 773F0000 call 00D5D350
00D593D9 33C0 xor eax, eax
00D593DB EB 16 jmp short 00D593F3
00D593DD 8D4C24 28 lea ecx, dword ptr
00D593E1 C74424 48 FFFFF>mov dword ptr , -1
00D593E9 E8 623F0000 call 00D5D350
00D593EE B8 02000000 mov eax, 2
00D593F3 8B4C24 40 mov ecx, dword ptr ; 堆栈 ss:=0139FEFC
00D593F7 5F pop edi ; 堆栈 =00394500 (00394500), ASCII "333333-333333-333333-333333"
00D593F8 5E pop esi ; 堆栈 =0012D5A4 (0012D5A4)
00D593F9 5D pop ebp ; 堆栈 =FFFFFFFF
00D593FA 64:890D 0000000>mov dword ptr fs:, ecx ; ecx=0139FEFC
00D59401 5B pop ebx ; 堆栈 =00000104
00D59402 83C4 3C add esp, 3C ; esp=0139FE7C
00D59405 C2 0800 retn 8 ; 返回到 00425B24 (CstMain3.00425B24)
这段汇编我大部分看不明白,请高手指点一下,帮我简单说说这段汇编大概的意思.谢谢了 确实你单纯的给出一段汇编代码确实没法分析 ...
上目标文件 彩神通-胆杀版,本机注册. 我觉得也要把文件传上来,虽然我不会,我想高手一定会帮忙的 光看这个就能破解出来就太厉害了
页:
[1]