吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 221620|回复: 393
上一主题 下一主题
收起左侧

[原创] 破解实战-第一战

    [复制链接]
跳转到指定楼层
楼主
我是用户 发表于 2013-5-22 19:58 回帖奖励
本帖最后由 我是用户 于 2013-6-23 13:50 编辑

软件名称】: 超级U盘锁
【作者邮箱】: 2714608453@qq.com
【下载地址】: 见附件
加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【使用工具】: OD
【操作平台】: XP SP2
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

1.脱壳
用PEID查壳,ASPack 2.12 -> Alexey Solodovnikov,用ESP定律脱去.
OEP如下:
[XML] 纯文本查看 复制代码
00401000 >/$  E8 06000000   call Unpack.0040100B
00401005  |.  50            push eax                                 ; /ExitCode = 0x0
00401006  \.  E8 BB010000   call <jmp.&kernel32.ExitProcess>         ; \ExitProcess
0040100B   $  55            push ebp
0040100C   .  8BEC          mov ebp,esp
0040100E   .  81C4 F0FEFFFF add esp,-0x110
00401014   .  E9 83000000   jmp Unpack.0040109C

用PEID查壳,E language *

2.去自效验
打开文件,跳出程序被损坏对话框,证明有自效验
见图1:

BP MessageBoxA,堆栈回溯,定位"程序被损坏"对话框为005AED39处,向上找出关键跳转为005AECD9 改为JMP,保存。
[C++] 纯文本查看 复制代码
005AECC7   /74 09           je short Unpack.005AECD2
005AECC9   |53              push ebx
005AECCA   |E8 B1400000     call Unpack.005B2D80
005AECCF   |83C4 04         add esp,0x4
005AECD2   \817D F4 605B030>cmp dword ptr ss:[ebp-0xC],0x35B60
005AECD9    E9 7D000000     jmp Unpack.005AED5B                      ; 关键跳
005AECDE    90              nop
005AECDF    B8 550D0600     mov eax,0x60D55                          ; B3CCD0F2D2D1BEADB1BBC6C6BBB521
005AECE4    8945 FC         mov dword ptr ss:[ebp-0x4],eax
005AECE7    8D45 FC         lea eax,dword ptr ss:[ebp-0x4]
005AECEA    50              push eax
005AECEB    E8 5FD2FFFF     call Unpack.005ABF4F
005AECF0    8945 F8         mov dword ptr ss:[ebp-0x8],eax
005AECF3    8B5D FC         mov ebx,dword ptr ss:[ebp-0x4]
005AECF6    85DB            test ebx,ebx
005AECF8    74 09           je short Unpack.005AED03
005AECFA    53              push ebx
005AECFB    E8 80400000     call Unpack.005B2D80
005AED00    83C4 04         add esp,0x4
005AED03    68 04000080     push 0x80000004
005AED08    6A 00           push 0x0
005AED0A    68 A7000000     push 0xA7
005AED0F    68 01030080     push 0x80000301
005AED14    6A 00           push 0x0
005AED16    68 40000000     push 0x40
005AED1B    68 04000080     push 0x80000004
005AED20    6A 00           push 0x0
005AED22    8B45 F8         mov eax,dword ptr ss:[ebp-0x8]           ; kernel32.7C817080
005AED25    85C0            test eax,eax
005AED27    75 05           jnz short Unpack.005AED2E
005AED29    B8 A7000000     mov eax,0xA7
005AED2E    50              push eax
005AED2F    68 03000000     push 0x3
005AED34    BB 00030000     mov ebx,0x300
005AED39    E8 48400000     call Unpack.005B2D86                     ; 弹出对话框
005AED3E    83C4 28         add esp,0x28
005AED41    8B5D F8         mov ebx,dword ptr ss:[ebp-0x8]           ; kernel32.7C817080


双击右下角图标,弹出程序被损坏.
见图2:

BP ExitProcess,堆栈回溯,定位程序退出为005B0B27处,向上找出关键跳转为005B0A76 改为JMP.
[C] 纯文本查看 复制代码
005B0A66    55              push ebp
005B0A67    8BEC            mov ebp,esp
005B0A69    81EC 28000000   sub esp,0x28
005B0A6F    833D 34000000 0>cmp dword ptr ds:[0x34],0x0
005B0A76    E9 B4000000     jmp Unpack.005B0B2F                      ; 关键跳
005B0A7B    90              nop
005B0A7C    68 02000080     push 0x80000002
005B0A81    6A 00           push 0x0
005B0A83    68 00000000     push 0x0
005B0A88    68 01000100     push 0x10001
005B0A8D    68 00000106     push 0x6010000
005B0A92    68 01000152     push 0x52010001
005B0A97    68 01000100     push 0x10001
005B0A9C    68 FA000106     push 0x60100FA
005B0AA1    68 FB000152     push 0x520100FB
005B0AA6    68 03000000     push 0x3
005B0AAB    BB 20030000     mov ebx,0x320
005B0AB0    E8 D1220000     call Unpack.005B2D86
005B0AB5    83C4 28         add esp,0x28
005B0AB8    B8 C00E0600     mov eax,0x60EC0                          ; 
B3CCD0F2B1BBC6C6BBB5BBF2D0DEB8C42CC7EBD6D8D0C2B0B2D7B0C8EDBCFE21
005B0ABD    8945 FC         mov dword ptr ss:[ebp-0x4],eax
005B0AC0    8D45 FC         lea eax,dword ptr ss:[ebp-0x4]
005B0AC3    50              push eax
005B0AC4    E8 86B4FFFF     call Unpack.005ABF4F
005B0AC9    8945 F8         mov dword ptr ss:[ebp-0x8],eax
005B0ACC    8B5D FC         mov ebx,dword ptr ss:[ebp-0x4]
005B0ACF    85DB            test ebx,ebx
005B0AD1    74 09           je short Unpack.005B0ADC
005B0AD3    53              push ebx
005B0AD4    E8 A7220000     call Unpack.005B2D80
005B0AD9    83C4 04         add esp,0x4
005B0ADC    6A 00           push 0x0
005B0ADE    FF75 F8         push dword ptr ss:[ebp-0x8]              ; kernel32.7C817080
005B0AE1    6A FF           push -0x1
005B0AE3    6A 08           push 0x8
005B0AE5    68 FF000116     push 0x160100FF
005B0AEA    68 FB000152     push 0x520100FB
005B0AEF    E8 B6220000     call Unpack.005B2DAA
005B0AF4    83C4 18         add esp,0x18
005B0AF7    8B5D F8         mov ebx,dword ptr ss:[ebp-0x8]           ; kernel32.7C817080
005B0AFA    85DB            test ebx,ebx
005B0AFC    74 09           je short Unpack.005B0B07
005B0AFE    53              push ebx
005B0AFF    E8 7C220000     call Unpack.005B2D80
005B0B04    83C4 04         add esp,0x4
005B0B07    68 01030080     push 0x80000301
005B0B0C    6A 00           push 0x0
005B0B0E    68 88130000     push 0x1388
005B0B13    68 01000000     push 0x1
005B0B18    BB 7C060000     mov ebx,0x67C
005B0B1D    E8 64220000     call Unpack.005B2D86
005B0B22    83C4 10         add esp,0x10
005B0B25    6A 00           push 0x0
005B0B27    E8 42220000     call Unpack.005B2D6E                     ; 退出
005B0B2C    83C4 04         add esp,0x4
005B0B2F    8B1D 44000000   mov ebx,dword ptr ds:[0x44]
005B0B35    85DB            test ebx,ebx
005B0B37    74 09           je short Unpack.005B0B42

3.爆破
限制:试用版不能保存密码.
点击密码修改按钮,弹出提示,试用版不能保存密码.
见图3:

下断FF55FC(易语言按钮事件),到达关键代码处.
[C] 纯文本查看 复制代码
005AE453    55              push ebp
005AE454    8BEC            mov ebp,esp
005AE456    81EC 08000000   sub esp,0x8
005AE45C    833D 7406B600 0>cmp dword ptr ds:[0xB60674],0x0
005AE463    0F84 41000000   je Unpack_3.005AE4AA
005AE469    68 02000080     push 0x80000002
005AE46E    6A 00           push 0x0
005AE470    68 01000000     push 0x1
005AE475    68 01000100     push 0x10001
005AE47A    68 00000106     push 0x6010000
005AE47F    68 01000152     push 0x52010001
005AE484    68 01000100     push 0x10001
005AE489    68 CB000106     push 0x60100CB
005AE48E    68 CC000152     push 0x520100CC
005AE493    68 03000000     push 0x3
005AE498    BB 20030000     mov ebx,0x320
005AE49D    E8 E4480000     call Unpack_3.005B2D86                   ; 弹出密码设置窗口
005AE4A2    83C4 28         add esp,0x28
005AE4A5    E9 90000000     jmp Unpack_3.005AE53A

可见注册标志保存在[0xB60674]里,把005AE463处nop掉即可爆破。
现在让我们来找找注册标志是在哪赋值的。
重新运行程序,定位[0xB60674],下断内存写入断点,断下。 这里要注意,0xB60674一开始是不存在的,所以要等它出现了在下断。
[C] 纯文本查看 复制代码
005AD318    DFE0            fstsw ax
005AD31A    F6C4 41         test ah,0x41
005AD31D    0F84 5E000000   je Unpack_3.005AD381                    //nop掉
005AD323    C705 14000000 0>mov dword ptr ds:[0x14],0x1             //注册
005AD32D    B8 5A070000     mov eax,0x75A
005AD332    8945 FC         mov dword ptr ss:[ebp-0x4],eax
005AD335    8D45 FC         lea eax,dword ptr ss:[ebp-0x4]
005AD338    50              push eax
005AD339    E8 11ECFFFF     call Unpack_3.005ABF4F
005AD33E    8945 F8         mov dword ptr ss:[ebp-0x8],eax
005AD341    8B5D FC         mov ebx,dword ptr ss:[ebp-0x4]
005AD344    85DB            test ebx,ebx
005AD346    74 09           je short Unpack_3.005AD351
005AD348    53              push ebx
005AD349    E8 325A0000     call Unpack_3.005B2D80
005AD34E    83C4 04         add esp,0x4
005AD351    6A 00           push 0x0
005AD353    FF75 F8         push dword ptr ss:[ebp-0x8]              ; kernel32.7C817080
005AD356    6A FF           push -0x1
005AD358    6A 08           push 0x8
005AD35A    68 96010116     push 0x16010196
005AD35F    68 01000152     push 0x52010001
005AD364    E8 415A0000     call Unpack_3.005B2DAA
005AD369    83C4 18         add esp,0x18
005AD36C    8B5D F8         mov ebx,dword ptr ss:[ebp-0x8]           ; kernel32.7C817080
005AD36F    85DB            test ebx,ebx
005AD371    74 09           je short Unpack_3.005AD37C
005AD373    53              push ebx
005AD374    E8 075A0000     call Unpack_3.005B2D80
005AD379    83C4 04         add esp,0x4
005AD37C    E9 0A000000     jmp Unpack_3.005AD38B
005AD381    C705 14000000 0>mov dword ptr ds:[0x14],0x0              未注册

把005AD381 代码处的0x0改为0x1或将JE改为NOP即可实现注册.
见图4:


软件下载地址:
http://www.onlinedown.net/soft/52481.htm
版本是5.1

=================================================================

传送门:
           破解实战-第一战:http://www.52pojie.cn/thread-197281-1-1.html
           破解实战-第二战:http://www.52pojie.cn/thread-197598-1-1.html
           破解实战-第三站:http://www.52pojie.cn/thread-197957-1-1.html
           破解实战-第四站:http://www.52pojie.cn/thread-198203-1-1.html
           破解实战-第五战:http://www.52pojie.cn/thread-198365-1-1.html
           破解实战-第六战:http://www.52pojie.cn/thread-198930-1-1.html
           破解实战-第七战:http://www.52pojie.cn/thread-199459-1-1.html
           破解实战-第八战:http://www.52pojie.cn/thread-199834-1-1.html
           破解实战-第九战:http://www.52pojie.cn/thread-200655-1-1.html           
           破解实战-第十战:http://www.52pojie.cn/thread-200798-1-1.html


点评

大哥!你真帅  发表于 2015-8-16 15:23

免费评分

参与人数 24吾爱币 +3 热心值 +24 收起 理由
长街邮差 + 1 + 1 谢谢@Thanks!
wanggangv2 + 1 + 1 用心讨论,共获提升!
叶知秋 + 1 + 1 谢谢@Thanks!
palmer680 + 1 谢谢@Thanks!
晨雾 + 1 我很赞同!
yeluosuif + 1 谢谢@Thanks!
努力的小七 + 1 我很赞同!
fanchaoping_37 + 1 谢谢@Thanks!
gongxiaojie + 1 用心讨论,共获提升!
ヤКiらs〆傷 + 1 用心讨论,共获提升!
牛头大亨 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
a5606495 + 1 谢谢@Thanks!
TelNets + 1 我很赞同!
zzmxy + 1 谢谢@Thanks!
red_fire + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
ADAiDiY + 1 谢谢@Thanks!
a18274 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
smile1110 + 1 真nb 学习学习
山野闲鹤 + 1 热心回复!
wo446343425 + 1 谢谢@Thanks!
761634281 + 1 我很赞同!
Shark恒 + 1 这么好的帖子,期待楼主第三战!
Chief + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.
xheonen + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.

查看全部评分

本帖被以下淘专辑推荐:

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

推荐
NewbieCai 发表于 2014-1-5 22:34
大牛,为什么我的OD在第三步的时候断不下ExitProcess,一F9就直接关掉了,在断MessageBoxA的时候要用另一个OD才能断下…最后两个OD都断下这个软件的ExitPocess……求指点一下。谢谢哦
推荐
1002217709 发表于 2013-5-22 21:04
推荐
雷枭 发表于 2013-5-22 20:36
推荐
shaokui123 发表于 2013-5-22 20:19
学习了.O(∩_∩)O谢谢
推荐
枯井在地 发表于 2013-5-22 22:49
看不懂,还是要下点功夫才行
6#
烟仔 发表于 2013-5-22 21:48
这么给力,菜鸟没看得很懂,下载下来慢慢研究,谢谢!
7#
颓废 发表于 2013-5-22 21:49
楼主牛逼。
8#
zaizaianan 发表于 2013-5-22 22:02
问啥不是图呢感觉这样好看点
9#
fffxg 发表于 2013-5-22 22:11
新人来学习~~
10#
t711s 发表于 2013-5-22 22:40
楼主的教程不是给初学者准备的,同志们别急躁。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-21 20:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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