首页
社区
课程
招聘
[旧帖] [求助]爆破后显示成功实际上仍不行! 0.00雪花
发表于: 2007-9-13 12:00 3491

[旧帖] [求助]爆破后显示成功实际上仍不行! 0.00雪花

2007-9-13 12:00
3491
初学破解,菜鸟一个。
有一软件,未注册有功能限制,爆破后显示成功实际上仍然不行,请高手指点迷津!
用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
爆破不成功,汇编看不懂,又找不到真正的注册码!那位高手能指点真正的爆破点或让真正注册码暴露出来的地方,万分感谢!

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 295
活跃值: (346)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
2
005B29A5 处后有两条路, 每条路碰到 _mbscmp, 如果 s1, s2不一样, 就gameover

爆破点应选在 _mbscmp 处; 可改
push s2
  push s1
  call _mbscmp

push s1
  push s1
  call _mbscmp

追注册码要看是否有明码,  否则只能跟 s1, s2 都是怎么来的
2007-9-14 01:18
0
雪    币: 207
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢blackeyes大虾指点!
初学破解,只知改写比较关系式,遇见mfc42.dll就头疼。
对关键CALLL的追踪,我是看哪个F8后出错,就换F7。也不知对不对?
目前我的重点在爆破,下一步是追注册码,然后是写出注册机。
循序渐进,一步一个脚印,不断学习,提高素质。
按照你的指点,我会追踪s1, s2 都是怎么来的!
2007-9-19 09:57
0
游客
登录 | 注册 方可回帖
返回
//