吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5204|回复: 2
收起左侧

[分享] 【I.C.K伴你一同成长第三期】人人都能破解

[复制链接]
icer2 发表于 2010-1-18 12:07
本脱文适合刚刚入门的朋友学习, 会一点的朋友 都可以直接Pass吧..  因为我也是刚刚才入门的.

PEID查壳 Microsoft Visual C++ 6.0  无壳..

OD载入 最首先的当然是查看ASCII码了..

插件/超级字符参考/查找ASCII
超级字串参考,项目 22
地址=00401D0B
反汇编=push UltraDic.004370F4
文本字串=C:\regbanyet.dat

超级字串参考,项目 24
地址=00401DB0
反汇编=push UltraDic.004370D8
文本字串=非常感谢您的支持,注册成功!

超级字串参考,项目 25
地址=00401DE5
反汇编=push UltraDic.004370C0
文本字串=注册名或注册码不正确!


OK. 双击 非常感谢您的支持,注册成功!    并往上翻..  来到 00401CAC   >  55        push ebp  F2下断点 Shift +F9 运行
Ps: 注册是否成功取决于你输入的注册码于真注册码的比较是否相等, 那么当提示这个字符串的时候,在这里的上面必定有比较的地方(这个地方也就是破解的关键了.)




注意看堆栈..  这里已经写出了真注册码: xxxxxxxxxxxxxxx
堆栈地址=0012EF2C, (ASCII "xxxxxxxxxxxxxx")
eax=0012EECC


00401CAC   >  55            push ebp
00401CAD   .  8D8C24 EC0000>lea ecx,dword ptr ss:[esp+EC]
00401CB4   .  889C34 4C0100>mov byte ptr ss:[esp+esi+14C],bl
00401CBB   .  E8 F0010000   call UltraDic.00401EB0
00401CC0   .  899C24 B40100>mov dword ptr ss:[esp+1B4],ebx
00401CC7   .  8DB424 840000>lea esi,dword ptr ss:[esp+84]            ;  获取假注册码 [esp+84] = 1111111111111
00401CCE   .  8D8424 480100>lea eax,dword ptr ss:[esp+148]           ;  获取真注册码 [esp+148] = xxxxxxxxxxxxxx
00401CD5   >  8A10          mov dl,byte ptr ds:[eax]
00401CD7   .  8ACA          mov cl,dl
00401CD9   .  3A16          cmp dl,byte ptr ds:[esi]
00401CDB   .  75 1C         jnz short UltraDic.00401CF9
00401CDD   .  3ACB          cmp cl,bl
00401CDF   .  74 14         je short UltraDic.00401CF5
00401CE1   .  8A50 01       mov dl,byte ptr ds:[eax+1]
00401CE4   .  8ACA          mov cl,dl
00401CE6   .  3A56 01       cmp dl,byte ptr ds:[esi+1]
00401CE9   .  75 0E         jnz short UltraDic.00401CF9
00401CEB   .  83C0 02       add eax,2
00401CEE   .  83C6 02       add esi,2
00401CF1   .  3ACB          cmp cl,bl
00401CF3   .^ 75 E0         jnz short UltraDic.00401CD5
00401CF5   >  33C0          xor eax,eax
00401CF7   .  EB 05         jmp short UltraDic.00401CFE
00401CF9   >  1BC0          sbb eax,eax
00401CFB   .  83D8 FF       sbb eax,-1
00401CFE      3BC0          cmp eax,ebx                              ;  用ebx 减去 eax
00401D00      0F85 DF000000 jnz UltraDic.00401DE5                    ;  若相减不等于0就跳相错误, 反之不跳走向正确.. <==则可以把jnz改为 jz 或者 nop掉就可以了.
00401D06   .  68 01100000   push 1001
00401D0B   .  68 F4704300   push UltraDic.004370F4                   ;  c:\regbanyet.dat    <== 保存注册信息
00401D10   .  8D4C24 18     lea ecx,dword ptr ss:[esp+18]
00401D14   .  E8 8FEF0100   call UltraDic.00420CA8
00401D19   .  8D7C24 20     lea edi,dword ptr ss:[esp+20]
00401D1D   .  83C9 FF       or ecx,FFFFFFFF
00401D20   .  33C0          xor eax,eax
00401D22   .  B2 0D         mov dl,0D
00401D24   .  F2:AE         repne scas byte ptr es:[edi]
00401D26   .  F7D1          not ecx
00401D28   .  49            dec ecx
00401D29   .  8DBC24 840000>lea edi,dword ptr ss:[esp+84]
00401D30   .  C68424 B40100>mov byte ptr ss:[esp+1B4],1
00401D38   .  88540C 20     mov byte ptr ss:[esp+ecx+20],dl
00401D3C   .  41            inc ecx
00401D3D   .  C6440C 20 0A  mov byte ptr ss:[esp+ecx+20],0A
00401D42   .  885C0C 21     mov byte ptr ss:[esp+ecx+21],bl
00401D46   .  83C9 FF       or ecx,FFFFFFFF
00401D49   .  F2:AE         repne scas byte ptr es:[edi]
00401D4B   .  F7D1          not ecx
00401D4D   .  49            dec ecx
00401D4E   .  8D7C24 20     lea edi,dword ptr ss:[esp+20]
00401D52   .  88940C 840000>mov byte ptr ss:[esp+ecx+84],dl
00401D59   .  41            inc ecx
00401D5A   .  C6840C 840000>mov byte ptr ss:[esp+ecx+84],0A
00401D62   .  889C0C 850000>mov byte ptr ss:[esp+ecx+85],bl
00401D69   .  83C9 FF       or ecx,FFFFFFFF
00401D6C   .  F2:AE         repne scas byte ptr es:[edi]
00401D6E   .  F7D1          not ecx
00401D70   .  49            dec ecx
00401D71   .  8D4424 20     lea eax,dword ptr ss:[esp+20]
00401D75   .  51            push ecx                                 ; /Arg2
00401D76   .  50            push eax                                 ; |Arg1
00401D77   .  8D4C24 18     lea ecx,dword ptr ss:[esp+18]            ; |
00401D7B   .  E8 DCF10100   call UltraDic.00420F5C                   ; \UltraDic.00420F5C
00401D80   .  8DBC24 840000>lea edi,dword ptr ss:[esp+84]
00401D87   .  83C9 FF       or ecx,FFFFFFFF
00401D8A   .  33C0          xor eax,eax
00401D8C   .  F2:AE         repne scas byte ptr es:[edi]
00401D8E   .  F7D1          not ecx
00401D90   .  49            dec ecx
00401D91   .  51            push ecx                                 ; /Arg2
00401D92   .  8D8C24 880000>lea ecx,dword ptr ss:[esp+88]            ; |
00401D99   .  51            push ecx                                 ; |Arg1
00401D9A   .  8D4C24 18     lea ecx,dword ptr ss:[esp+18]            ; |
00401D9E   .  E8 B9F10100   call UltraDic.00420F5C                   ; \UltraDic.00420F5C
00401DA3   .  6A 03         push 3                                   ; /FileAttributes = READONLY|HIDDEN
00401DA5   .  68 F4704300   push UltraDic.004370F4                   ; |c:\regbanyet.dat
00401DAA   .  FF15 8CB24200 call dword ptr ds:[<&KERNEL32.SetFileAtt>; \SetFileAttributesA
00401DB0   .  68 D8704300   push UltraDic.004370D8                   ;  非常感谢您的支持,注册成功!
00401DB5   .  8D8C24 EC0000>lea ecx,dword ptr ss:[esp+EC]
00401DBC   .  E8 AF010000   call UltraDic.00401F70
00401DC1   .  8D4C24 10     lea ecx,dword ptr ss:[esp+10]
00401DC5   .  889C24 B40100>mov byte ptr ss:[esp+1B4],bl
00401DCC   .  E8 77EF0100   call UltraDic.00420D48
00401DD1   .  8BCD          mov ecx,ebp
00401DD3   .  E8 44B50100   call UltraDic.0041D31C
00401DD8   .  C78424 B40100>mov dword ptr ss:[esp+1B4],3
00401DE3   .  EB 1C         jmp short UltraDic.00401E01
00401DE5   >  68 C0704300   push UltraDic.004370C0                   ;  注册名或注册码不正确!
00401DEA   .  8D8C24 EC0000>lea ecx,dword ptr ss:[esp+EC]
00401DF1   .  E8 7A010000   call UltraDic.00401F70
00401DF6   .  C78424 B40100>mov dword ptr ss:[esp+1B4],2
00401E01   >  8D8C24 440100>lea ecx,dword ptr ss:[esp+144]
00401E08   .  E8 CCEB0100   call UltraDic.004209D9
00401E0D   .  8D8C24 E80000>lea ecx,dword ptr ss:[esp+E8]
00401E14   .  C78424 B40100>mov dword ptr ss:[esp+1B4],-1
00401E1F   .  E8 43AE0100   call UltraDic.0041CC67
00401E24   >  8B8C24 AC0100>mov ecx,dword ptr ss:[esp+1AC]
00401E2B   .  5F            pop edi
00401E2C   .  5E            pop esi
00401E2D   .  5D            pop ebp
00401E2E   .  5B            pop ebx
00401E2F   .  64:890D 00000>mov dword ptr fs:[0],ecx
00401E36   .  81C4 A8010000 add esp,1A8
00401E3C   .  C3            retn




Ps: 其实破解的关键在于找到关键Call以及跳转.
      这里只是一个最简单的破解思路, 希望大家能琢磨透彻 举一反三..

UltraDict.rar

147.33 KB, 下载次数: 3, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 1威望 +2 收起 理由
Hmily + 2 感谢您的分析,[吾爱破解]有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

feiligood 发表于 2010-1-18 13:39
本帖最后由 feiligood 于 2010-1-18 13:42 编辑

下来学习 在破破在说啊
一载入就跑起来了、同学如何整啊 插件在那里下谢谢啊
Hmily 发表于 2010-1-18 14:11
楼主虽然分析的不是太完全,但是分享精神很好!继续努力!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 01:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表