好像没什么难度,不知是不是你想要的结果。下面是分析过程:
程序加了壳,不过很简单。用不了几分钟!
我们下getwindowtextA断点,随便输入注册码,点击注册。
程序断在下面:
770E6EED > 6A 08 push 0x8
770E6EEF 68 486F0E77 push 770E6F48
770E6EF4 E8 27550100 call 770FC420
几个F8后:
004078F7 E8 07AA0000 call 00412303
004078FC 83C4 10 add esp, 0x10 ; 返回到这里
继续F8,然后程序再次中断在getwindowtextA断点。
770E6EED > 6A 08 push 0x8
770E6EEF 68 486F0E77 push 770E6F48
770E6EF4 E8 27550100 call 770FC420
770E6EF9 8B7D 0C mov edi, dword ptr [ebp+0xC]
几个F8后:
00407A13 E8 EBA80000 call 00412303
00407A18 83C4 10 add esp, 0x10 ; 返回到这里
00407A1B 8945 F8 mov dword ptr [ebp-0x8], eax
00407A1E EB 01 jmp short 00407A21
00407A20 B4 EB mov ah, 0xEB
00407A22 017F EB add dword ptr [edi-0x15], edi
00407A25 0175 68 add dword ptr [ebp+0x68], esi
00407A28 F3: prefix rep:
00407A29 60 pushad
00407A2A 40 inc eax
00407A2B 00EB add bl, ch
00407A2D 010F add dword ptr [edi], ecx
00407A2F FF75 F8 push dword ptr [ebp-0x8]
00407A32 E8 05FEFFFF call 0040783C
00407A37 83C4 08 add esp, 0x8
00407A3A 83F8 00 cmp eax, 0x0
00407A3D B8 00000000 mov eax, 0x0
00407A42 0F95C0 setne al
00407A45 8945 F4 mov dword ptr [ebp-0xC], eax
00407A48 8B5D F8 mov ebx, dword ptr [ebp-0x8]
00407A4B 85DB test ebx, ebx
00407A4D 74 09 je short 00407A58 ; 这里你可以看到在ecx保存你的正确注册码:ABCDEFGH
00407A4F 53 push ebx
00407A50 E8 8AA80000 call 004122DF
00407A55 83C4 04 add esp, 0x4
00407A58 837D F4 00 cmp dword ptr [ebp-0xC], 0x0
00407A5C 0F84 FB000000 je 00407B5D ; 关键跳转