初学破解,菜鸟一个。
有一软件,未注册有功能限制,爆破后显示成功实际上仍然不行,请高手指点迷津!
用OD装载后,根据注册提示信息,来到这里:
004C6CEE /. 55 push ebp
004C6CEF |. 8BEC mov ebp, esp
004C6CF1 |. 51 push ecx
004C6CF2 |. 894D FC mov dword ptr [ebp-4], ecx
004C6CF5 |. 6A 01 push 1
004C6CF7 |. 8B4D FC mov ecx, dword ptr [ebp-4]
004C6CFA |. E8 4B9E0E00 call <jmp.&MFC42.#6334_CWnd::UpdateDa>
004C6CFF |. 8B4D FC mov ecx, dword ptr [ebp-4]
004C6D02 |. 83C1 60 add ecx, 60
004C6D05 |. E8 16770900 call 0055E420
004C6D0A |. 50 push eax ; /Arg1 ;EAX=输入码
004C6D0B |. E8 10B50E00 call 005B2220 ; \Picad.005B2220 ;按F7进入
004C6D10 |. 85C0 test eax, eax
004C6D12 |. 7C 12 jl short 004C6D26
004C6D14 |. 68 08226000 push 00602208 ; 软件已经成功注册。
004C6D19 |. 8B4D FC mov ecx, dword ptr [ebp-4]
004C6D1C |. 83C1 64 add ecx, 64
004C6D1F |. E8 349C0E00 call <jmp.&MFC42.#860_CString::operat>
004C6D24 |. EB 10 jmp short 004C6D36
004C6D26 |> 68 1C226000 push 0060221C ; 软件注册失败!
004C6D2B |. 8B4D FC mov ecx, dword ptr [ebp-4]
004C6D2E |. 83C1 64 add ecx, 64
004C6D31 |. E8 229C0E00 call <jmp.&MFC42.#860_CString::operat>
004C6D36 |> 6A 00 push 0
004C6D38 |. 8B4D FC mov ecx, dword ptr [ebp-4]
004C6D3B |. E8 0A9E0E00 call <jmp.&MFC42.#6334_CWnd::UpdateDa>
004C6D40 |. 8BE5 mov esp, ebp
004C6D42 |. 5D pop ebp
004C6D43 \. C3 retn
设置好断点后,经数次调试,得出以下主要路径:在004C6D0B处按F7切入:
005B2220 /$ 6A FF push -1
005B2222 |. 68 4B275D00 push 005D274B ; SE 处理程序安装
005B2227 |. 64:A1 0000000>mov eax, dword ptr fs:[0] ;EAX=输入码
005B222D |. 50 push eax
005B222E |. 64:8925 00000>mov dword ptr fs:[0], esp
005B2235 |. 81EC D0000000 sub esp, 0D0
005B223B |. 56 push esi
005B223C |. 8D4C24 04 lea ecx, dword ptr [esp+4]
005B2240 |. E8 5B050000 call 005B27A0
005B2245 |. 8B8424 E40000>mov eax, dword ptr [esp+E4] ;EAX=输入码
005B224C |. 8D4C24 04 lea ecx, dword ptr [esp+4]
005B2250 |. 50 push eax ; /Arg1
005B2251 |. C78424 E00000>mov dword ptr [esp+E0], 0 ; |
005B225C |. E8 BF0A0000 call 005B2D20 ; \Picad.005B2D20 ;按F7进入
005B2261 |. 8D4C24 04 lea ecx, dword ptr [esp+4]
005B2265 |. 8BF0 mov esi, eax
005B2267 |. C78424 DC0000>mov dword ptr [esp+DC], -1
005B2272 |. E8 49060000 call 005B28C0
005B2277 |. 8B8C24 D40000>mov ecx, dword ptr [esp+D4]
005B227E |. 8BC6 mov eax, esi
005B2280 |. 5E pop esi
005B2281 |. 64:890D 00000>mov dword ptr fs:[0], ecx
005B2288 |. 81C4 DC000000 add esp, 0DC
005B228E \. C2 0400 retn 4
在005B225C处切入:
005B2D20 /$ 81EC C4000000 sub esp, 0C4
005B2D26 |. 53 push ebx
005B2D27 |. 8BD9 mov ebx, ecx
005B2D29 |. 55 push ebp
005B2D2A |. 6A 2D push 2D
005B2D2C 8B03 mov eax, dword ptr [ebx]
005B2D2E |. FF50 04 call dword ptr [eax+4] ; Picad.005B2910 ;按F7进入
005B2D31 |. 85C0 test eax, eax
005B2D33 |. 7C 0D jl short 005B2D42 ;若改为nop则可显示注册成功
005B2D35 |. 5D pop ebp
005B2D36 |. 33C0 xor eax, eax
005B2D38 |. 5B pop ebx
005B2D39 |. 81C4 C4000000 add esp, 0C4
005B2D3F |. C2 0400 retn 4
005B2D42 |> 8BAC24 D00000>mov ebp, dword ptr [esp+D0]
005B2D49 |. 85ED test ebp, ebp
:005B2D4B |. 750E jne short 005B2D5B
005B2D4D |. 5D pop ebp
005B2D4E |. 83C8 FF or eax, FFFFFFFF
005B2D51 |. 5B pop ebx
005B2D52 |. 81C4 C4000000 add esp, 0C4
005B2D58 |. C2 0400 retn 4
005B2D5B |> 56 push esi
005B2D5C |. 57 push edi
005B2D5D |. 8D73 0C lea esi, dword ptr [ebx+C]
005B2D60 |. B9 30000000 mov ecx, 30
005B2D65 |. 8D7C24 14 lea edi, dword ptr [esp+14]
005B2D69 |. 897424 10 mov dword ptr [esp+10], esi
005B2D6D |. F3:A5 rep movs dword ptr es:[edi], dword p>
005B2D6F |. 8D93 8C000000 lea edx, dword ptr [ebx+8C]
005B2D75 |. B9 10000000 mov ecx, 10
005B2D7A |. 33C0 xor eax, eax
005B2D7C |. 8BFA mov edi, edx
005B2D7E |. F3:AB rep stos dword ptr es:[edi]
005B2D80 |. 8BFD mov edi, ebp
005B2D82 |. 83C9 FF or ecx, FFFFFFFF
005B2D85 |. F2:AE repne scas byte ptr es:[edi]
005B2D87 |. F7D1 not ecx
005B2D89 |. 49 dec ecx
005B2D8A |. 83F9 3F cmp ecx, 3F
005B2D8D |. 73 0C jnb short 005B2D9B
005B2D8F |. 8BFD mov edi, ebp
005B2D91 |. 83C9 FF or ecx, FFFFFFFF
005B2D94 |. F2:AE repne scas byte ptr es:[edi]
005B2D96 |. F7D1 not ecx
005B2D98 |. 49 dec ecx
005B2D99 |. EB 05 jmp short 005B2DA0
005B2D9B |> B9 3F000000 mov ecx, 3F
005B2DA0 |> 51 push ecx ; /maxlen
005B2DA1 |. 55 push ebp ; |src
005B2DA2 |. 52 push edx ; |dest
005B2DA3 |. FF15 D43D5D00 call dword ptr [<&MSVCRT.strncpy>] ; \strncpy
005B2DA9 |. 8B13 mov edx, dword ptr [ebx]
005B2DAB |. 83C4 0C add esp, 0C
005B2DAE |. 8BCB mov ecx, ebx
005B2DB0 |. FF52 0C call dword ptr [edx+C]
005B2DB3 |. 8BE8 mov ebp, eax
005B2DB5 |. 85ED test ebp, ebp
005B2DB7 |. 7D 1C jge short 005B2DD5
005B2DB9 |. 8B7C24 10 mov edi, dword ptr [esp+10]
005B2DBD |. B9 30000000 mov ecx, 30
005B2DC2 |. 8D7424 14 lea esi, dword ptr [esp+14]
005B2DC6 |. F3:A5 rep movs dword ptr es:[edi], dword p>
005B2DC8 |. 5F pop edi
005B2DC9 |. 5E pop esi
005B2DCA |. 5D pop ebp
005B2DCB |. 5B pop ebx
005B2DCC |. 81C4 C4000000 add esp, 0C4
005B2DD2 |. C2 0400 retn 4
005B2DD5 |> 8BCB mov ecx, ebx
005B2DD7 |. E8 34FEFFFF call 005B2C10
005B2DDC |. 5F pop edi
005B2DDD |. 8BC5 mov eax, ebp
005B2DDF |. 5E pop esi
005B2DE0 |. 5D pop ebp
005B2DE1 |. 5B pop ebx
005B2DE2 |. 81C4 C4000000 add esp, 0C4
005B2DE8 \. C2 0400 retn 4
若将005B2D33处jl改为nop,则可显示注册成功,重启程序后也显示已注册,但功能限制仍然没有解除!再由005B2D2E处切入:
005B2910 . 8B4424 04 mov eax, dword ptr [esp+4]
005B2914 . 56 push esi
005B2915 . 8BF1 mov esi, ecx
005B2917 . 8946 08 mov dword ptr [esi+8], eax
005B291A . E8 D1010000 call 005B2AF0
005B291F . 8B16 mov edx, dword ptr [esi]
005B2921 . 8BCE mov ecx, esi
005B2923 . FF52 0C call dword ptr [edx+C] ; Picad.005B2930 ;按F7进入
005B2926 . 5E pop esi
005B2927 . C2 0400 retn 4
再由005B2923处切入:
005B2930 . 6A FF push -1
005B2932 . 68 5C285D00 push 005D285C ; SE 处理程序安装
005B2937 . 64:A1 0000000>mov eax, dword ptr fs:[0]
005B293D . 50 push eax
005B293E . 64:8925 00000>mov dword ptr fs:[0], esp
005B2945 . 81EC 14040000 sub esp, 414
005B294B . 56 push esi
005B294C . 8BF1 mov esi, ecx
005B294E . 8D4C24 04 lea ecx, dword ptr [esp+4]
005B2952 . E8 891E0000 call 005B47E0
005B2957 . 8D4424 08 lea eax, dword ptr [esp+8]
005B295B . 8D4C24 18 lea ecx, dword ptr [esp+18]
005B295F . 50 push eax ; /Arg3
005B2960 . 8D96 8C000000 lea edx, dword ptr [esi+8C] ; |
005B2966 . 51 push ecx ; |Arg2
005B2967 . 52 push edx ; |Arg1
005B2968 . 8D4C24 10 lea ecx, dword ptr [esp+10] ; |
005B296C . C78424 2C0400>mov dword ptr [esp+42C], 0 ; |
005B2977 . C686 CB000000>mov byte ptr [esi+CB], 0 ; |
005B297E . E8 7D250000 call 005B4F00 ; \Picad.005B4F00 ;好象是注册算法
005B2983 . 8B4424 08 mov eax, dword ptr [esp+8]
005B2987 . 8D4C24 18 lea ecx, dword ptr [esp+18]
005B298B . 50 push eax
005B298C . 51 push ecx
005B298D . 8D4C24 0C lea ecx, dword ptr [esp+C]
005B2991 . E8 DA1E0000 call 005B4870 ;好象是注册算法
005B2996 . 8B5424 08 mov edx, dword ptr [esp+8]
005B299A . 8B46 08 mov eax, dword ptr [esi+8]
005B299D . 83F8 2D cmp eax, 2D
005B29A0 . C64414 18 00 mov byte ptr [esp+edx+18], 0
005B29A5 . 75 47 jnz short 005B29EE
005B29A7 . 8BB6 CC000000 mov esi, dword ptr [esi+CC] ;ESI=机器码
005B29AD . 8D4424 18 lea eax, dword ptr [esp+18]
005B29B1 . 50 push eax ; /s2
005B29B2 . 56 push esi ; |s1
005B29B3 . FF15 843E5D00 call dword ptr [<&MSVCRT._mbscmp>] ; \_mbscmp
005B29B9 . 8BF0 mov esi, eax
005B29BB . 83C4 08 add esp, 8
005B29BE . F7DE neg esi
005B29C0 . 8D4C24 04 lea ecx, dword ptr [esp+4]
005B29C4 . C78424 200400>mov dword ptr [esp+420], -1
005B29CF . 1BF6 sbb esi, esi
005B29D1 . E8 3A1E0000 call 005B4810 ;按F7进入
005B29D6 . 8BC6 mov eax, esi ;eax=ffffffff
005B29D8 . 5E pop esi
005B29D9 . 8B8C24 140400>mov ecx, dword ptr [esp+414]
005B29E0 . 64:890D 00000>mov dword ptr fs:[0], ecx
005B29E7 . 81C4 20040000 add esp, 420
005B29ED . C3 retn
005B29EE > 83F8 2E cmp eax, 2E
005B29F1 . 0F85 C8000000 jnz 005B2ABF
005B29F7 . 57 push edi
005B29F8 . 8D4C24 14 lea ecx, dword ptr [esp+14]
005B29FC . 81C6 CC000000 add esi, 0CC
005B2A02 . 6A 02 push 2
005B2A04 . 51 push ecx
005B2A05 . 8BCE mov ecx, esi
005B2A07 . E8 E6DEFFFF call <jmp.&MFC42.#4129_CString::Left>
005B2A0C . 8BF8 mov edi, eax
005B2A0E . 8D5424 18 lea edx, dword ptr [esp+18]
005B2A12 . 6A 02 push 2
005B2A14 . 52 push edx
005B2A15 . 8BCE mov ecx, esi
005B2A17 . C68424 2C0400>mov byte ptr [esp+42C], 1
005B2A1F . E8 D4DEFFFF call <jmp.&MFC42.#4277_CString::Mid>
005B2A24 . 57 push edi
005B2A25 . 50 push eax
005B2A26 . 8D4424 18 lea eax, dword ptr [esp+18]
005B2A2A . C68424 2C0400>mov byte ptr [esp+42C], 2
005B2A32 . 50 push eax
005B2A33 . E8 4EE1FFFF call <jmp.&MFC42.#922_operator+>
005B2A38 . 50 push eax
005B2A39 . 8BCE mov ecx, esi
005B2A3B . C68424 280400>mov byte ptr [esp+428], 3
005B2A43 . E8 A4DEFFFF call <jmp.&MFC42.#858_CString::operat>
005B2A48 . 8D4C24 10 lea ecx, dword ptr [esp+10]
005B2A4C . C68424 240400>mov byte ptr [esp+424], 2
005B2A54 . E8 03DEFFFF call <jmp.&MFC42.#800_CString::~CStri>
005B2A59 . 8D4C24 18 lea ecx, dword ptr [esp+18]
005B2A5D . C68424 240400>mov byte ptr [esp+424], 1
005B2A65 . E8 F2DDFFFF call <jmp.&MFC42.#800_CString::~CStri>
005B2A6A . 8D4C24 14 lea ecx, dword ptr [esp+14]
005B2A6E . C68424 240400>mov byte ptr [esp+424], 0
005B2A76 . E8 E1DDFFFF call <jmp.&MFC42.#800_CString::~CStri>
005B2A7B . 8B36 mov esi, dword ptr [esi]
005B2A7D . 8D4C24 1C lea ecx, dword ptr [esp+1C]
005B2A81 . 51 push ecx ; /s2
005B2A82 . 56 push esi ; |s1
005B2A83 . FF15 843E5D00 call dword ptr [<&MSVCRT._mbscmp>] ; \_mbscmp
005B2A89 . 8BF0 mov esi, eax
005B2A8B . 83C4 08 add esp, 8
005B2A8E . F7DE neg esi
005B2A90 . 8D4C24 08 lea ecx, dword ptr [esp+8]
005B2A94 . C78424 240400>mov dword ptr [esp+424], -1
005B2A9F . 1BF6 sbb esi, esi
005B2AA1 . E8 6A1D0000 call 005B4810
005B2AA6 . 8BC6 mov eax, esi
005B2AA8 . 5F pop edi
005B2AA9 . 5E pop esi
005B2AAA . 8B8C24 140400>mov ecx, dword ptr [esp+414]
005B2AB1 . 64:890D 00000>mov dword ptr fs:[0], ecx
005B2AB8 . 81C4 20040000 add esp, 420
005B2ABE . C3 retn
005B2ABF > 8D4C24 04 lea ecx, dword ptr [esp+4]
005B2AC3 . C78424 200400>mov dword ptr [esp+420], -1
005B2ACE . E8 3D1D0000 call 005B4810
005B2AD3 . 8B8C24 180400>mov ecx, dword ptr [esp+418]
005B2ADA . 83C8 FF or eax, FFFFFFFF
005B2ADD . 5E pop esi
005B2ADE . 64:890D 00000>mov dword ptr fs:[0], ecx
005B2AE5 . 81C4 20040000 add esp, 420
005B2AEB . C3 retn
。。。。。。。。。。。。。。。。。。。。。。。。。
005B4810 /$ C701 14C05D00 mov dword ptr [ecx], 005DC014
005B4816 \. C3 retn
爆破不成功,汇编看不懂,又找不到真正的注册码!那位高手能指点真正的爆破点或让真正注册码暴露出来的地方,万分感谢!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课