吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 41899|回复: 98
上一主题 下一主题
收起左侧

[原创] [新手教程]某云刷粉脱壳(ZProtect 1.4.9)+简单破解方法

  [复制链接]
跳转到指定楼层
楼主
Chief 发表于 2013-5-21 18:26 回帖奖励
本帖最后由 Chief 于 2013-5-28 15:57 编辑

【文章标题】: [新手教程]某云刷粉脱壳(ZProtect 1.4.9)+简单破解方法
【文章作者】: Chief
【作者邮箱】: Hi_Chief@163.com
【作者主页】: http://hi.baidu.com/Hi_Chief
【下载地址】: 见附件
【保护方式】: ZProtect 1.4.9保护壳
【使用工具】: PEiD,OllyDbg,ZPFixer 1.1,ImportREC
【作者声明】: 分享自己的方法,哪里不对还望各位指点!
--------------------------------------------------------------------------------
【详细过程】

首先查下壳

PEiD查询结果:ZProtect 1.4.9.0
(无试用和注册框,有注册框的话  断点:DialogBoxIndirectParamA)

入口:
004FA25D >  E8 02000000     call Test.004FA264
004FA262    C6              ???                                      ; 未知命令
004FA263    DF87 0C248D89   fild word ptr ds:[edi+0x898D240C]
004FA269    A9 03000087     test eax,0x87000003
004FA26E    0C 24           or al,0x24
004FA270    E9 96030000     jmp Test.004FA60B
004FA275    B3 B0           mov bl,0xB0
004FA277    8B5D F8         mov ebx,dword ptr ss:[ebp-0x8]
004FA27A    E9 51050000     jmp Test.004FA7D0
004FA27F    41              inc ecx
004FA280    3D 8B3C30E9     cmp eax,0xE9303C8B
004FA285    4D              dec ebp
004FA286    07              pop es
004FA287    0000            add byte ptr ds:[eax],al
004FA289    6E              outs dx,byte ptr es:[edi]
004FA28A    91              xchg eax,ecx
004FA28B    E9 DE050000     jmp Test.004FA86E
004FA290    A4              movs byte ptr es:[edi],byte ptr ds:[esi]
入口图:

//////////////////////////////////////////////////////////
步骤:F7进入---F8几次---来到如下图位置 选中,使用Esp定律  

///

下好硬件断点然后F9运行
//////////////////////////////////////////////////////////
来到:
00C156F8    E8 01000000     call 00C156FE
00C156FD    F2:             prefix repne:
00C156FE    870C24          xchg dword ptr ss:[esp],ecx
00C15701    8D89 2B2D0000   lea ecx,dword ptr ds:[ecx+0x2D2B]
00C15707    870C24          xchg dword ptr ss:[esp],ecx
00C1570A    C3              retn

//////////////////////////////////////////////////////////
F7进去,F8几次就来到如下位置
00468E9B    55              push ebp                                 ; 到达OEP了.
00468E9C    8BEC            mov ebp,esp
00468E9E    6A FF           push -0x1
00468EA0    68 D07E4900     push Test.00497ED0
00468EA5    68 5CB24600     push Test.0046B25C
00468EAA    64:A1 00000000  mov eax,dword ptr fs:[0]
00468EB0    50              push eax
00468EB1    64:8925 0000000>mov dword ptr fs:[0],esp
00468EB8    83EC 58         sub esp,0x58
00468EBB    53              push ebx
00468EBC    56              push esi
00468EBD    57              push edi
00468EBE    8965 E8         mov dword ptr ss:[ebp-0x18],esp
00468EC1    FF15 98B14800   call dword ptr ds:[0x48B198]             ; Test.004F809C
00468EC7    33D2            xor edx,edx
00468EC9    8AD4            mov dl,ah
00468ECB    8915 54AD4E00   mov dword ptr ds:[0x4EAD54],edx
00468ED1    8BC8            mov ecx,eax

//////////////////////////////////////////////////////////
OEP--00468E9B
现在来脱壳,直接用OllyDump插件脱掉(也可以用LordPE脱)
右键
用OllyDump脱壳调试进程

//////////////////////////////////////////////////////////
此时运行会报错的
如图:

//////////////////////////////////////////////////////////
没修复,我们用ImportREC来看看有多少无效指针
打开ImportREC选取Test.exe进程(这个是我们测试的软件进程,所以选取这个)
输入OEP:68E9B---点击自动查找IAT---获取输入表
如图,发现很多无效指针

//////////////////////////////////////////////////////////
现在来修复,手动修复慢而且麻烦(可以跑脚本)
这次我们用ZPFixer 1.1来进行修复
打开ZPFixer 1.1
填入进程ID:D14(这个不固定哦,可以根据ImportREC显示的,也可以根据任务管理器显示的数值转换成16进制),  如图

/////////////////////////////////////////////////////////////
Code Start: 0048B000  (显示的是0008B000填入的话要加上400000 =0048B000
/////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////
Code End:0048B760  一样0008B760+400000=0048B760
/////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////
Patch VA:00BE2847
/////////////////////////////////////////////////////////////
查找步骤:
如下图

//

//


/////////////////////////////////////////////////////////////
Zero VA:BE6C9C
/////////////////////////////////////////////////////////////
查找步骤:

//

/////////////////////////////////////////////////////////////
填好后点击Start,              New Address:  1090000
如图

复制1090000,返回OD,Ctrl+G 输入1090000
来到
01090000    BE 00B04800     mov esi,0x48B000
01090005    BF 60B74800     mov edi,0x48B760
0109000A    B9 4728BE00     mov ecx,0xBE2847
0109000F    83C1 05         add ecx,0x5
01090012    83C7 04         add edi,0x4
01090015    8B06            mov eax,dword ptr ds:[esi]
01090017    8931            mov dword ptr ds:[ecx],esi
01090019    8A10            mov dl,byte ptr ds:[eax]
0109001B    80FA 68         cmp dl,0x68
0109001E    74 02           je short 01090022
01090020    EB 0A           jmp short 0109002C

选中01090000右键 此处为新EIP ---确定  如图

/////////////////////////////////////////////////////////////
来到01090045  -----F2下断---F9运行(硬件断点要先删除掉,就是一开始的ESP定律那个断点,这个步骤可以一开始就删除的)

此时返回ImportREC,点击获取输入表,可以看到指针全部有效了。

//////////////////////////////////////////////////////////
现在可以转存文件了

再次运行即可正常运行了。

/////////////////////////////////////////////////////////////
///////////////////现在是破解部分/////////////////////
/////////////////////////////////////////////////////////////

他的收费机制是,要登陆他的论坛号,使用要扣取他论坛币。
所以我给大家简单的方法就是,利用他论坛账号登陆,但是不让他扣币。

载入我们脱壳修复好的,F9运行,Ctrl+B输入FF55FC5F5E(易语言按钮事件)来到0042E28D------F2下断


输入我们预先注册好的账号--点击登陆此时就会被断下
账号:吾爱破解Test
密码:52pojie
(大家手动注册一下,因为作者看到的话这个账号会被他清空的。)

//////////////////////////////////////////////////////////
F7跟进--接下去就是登陆他论坛的数据,无需理会了,
我们要找到他扣币的地方
所以往下找(也可以查找字符串快速定位,搜索“扣除成功”)
来到
00402BB6  |.  8D45 F4       lea eax,[local.3]
00402BB9  |.  50            push eax
00402BBA  |.  8D45 F8       lea eax,[local.2]
00402BBD  |.  50            push eax
00402BBE  |.  68 14000000   push 0x14
00402BC3  |.  E8 7F4E0000   call Dump_.00407A47             ;  关键call,扣币的地方 F7进去,为啥可以确定这里是关键CALL呢?
00402BC8  |.  8945 F0       mov [local.4],eax     ;  (因为进入此CALL后你会发现下面有一段代码,仔细看不难发现是在提交一些数据来达到扣币的。而且返回的结果牵动下面的比较)
00402BCB  |.  8B5D F4       mov ebx,[local.3]
00402BCE  |.  85DB          test ebx,ebx
00402BD0  |.  74 09         je short Dump_.00402BDB
00402BD2  |.  53            push ebx
00402BD3  |.  E8 E4CC0000   call Dump_.0040F8BC
00402BD8  |.  83C4 04       add esp,0x4
00402BDB  |>  837D F0 01    cmp [local.4],0x1               ;  比较eax的值是否为1,1就表示扣除成功,扣除成功跳转就不跳.
00402BDF  |.  0F85 83010000 jnz Dump_.00402D68              ;  不是的话跳转就实现
00402BE5  |.  68 0B000000   push 0xB
00402BEA  |.  B8 D5E24800   mov eax,Dump_.0048E2D5          ;  扣除成功!
00402BEF  |.  8945 F4       mov [local.3],eax
00402BF2  |.  8D45 F4       lea eax,[local.3]
00402BF5  |.  50            push eax
00402BF6  |.  E8 24F1FFFF   call Dump_.00401D1F
00402BFB  |.  8B5D F4       mov ebx,[local.3]
00402BFE  |.  85DB          test ebx,ebx
00402C00  |.  74 09         je short Dump_.00402C0B
00402C02  |.  53            push ebx

//////////////////////////////////////////////////////////
我们可以看到下面的cmp比较  比较eax的值是否为1,所以我们要让他为1
所以F7跟进去后这样改
00407A47      B8 01000000   mov eax,0x1      ; 给eax赋值为1
00407A4C      C2 0C00       retn 0xC       ; retn  c 返回(断尾:004080C2  \.  C2 0C00       retn 0xC  他返回什么我们就跟他修改一样)
00407A4F      90            nop


为什么这样改
1.能给eax赋值为1,使跳转不跳
2.不让他的扣费代码执行,使之不扣币

到这里就OK了。


Ps:保护方法+验证方法作者随时会变,这里只是提供个小思路而已,程序已经打包,大家练手的可以去下载(见附件)


--------------------------------------------------------------------------------
【版权声明】: 本文原创于“吾爱破解论坛”Chief, 转载请注明作者并保持文章的完整, 谢谢!

                                                                    2013年05月21日

Test.rar

1.45 MB, 下载次数: 996, 下载积分: 吾爱币 -1 CB

点评

感谢C大的付出!  发表于 2013-6-9 17:58

免费评分

参与人数 12吾爱币 +2 热心值 +12 收起 理由
ZF0806 + 2 + 1 我很赞同!
tt123 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
onlyhan + 1 谢谢分享这么好的文章
feilang864 + 1 我很赞同!
无痕软件 + 1 很详细,也很好,点赞。
vigers + 1 我很赞同!
xheonen + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.
diqi74 + 1 关键Call是不是都要F7才能判断哪个是关键?
TheEnd + 1 步骤详细啊,感谢一下
Shark恒 + 1 希望为新手添加操作解释,支持C大!
Peace + 1 我很赞同!这个精品啊
aa6438315 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

沙发
 楼主| Chief 发表于 2013-5-21 18:27 |楼主
占个位置,等大家加分呀、
3#
aa6438315 发表于 2013-5-21 18:29
4#
挖墙角专业户· 发表于 2013-5-21 18:34
所以往下找(也可以查找字符串快速定位,搜索“扣除成功”)
   

这里是否能够直接jmp到登录成功?

点评

可以,但是要看你从哪里JMP,因为还有个地方会检测,地方不对的话会出现非法,无法获取马甲  发表于 2013-5-21 18:42
5#
逍遥枷锁 发表于 2013-5-21 18:37
太给力了,大师可以也来些VMP脱壳或不脱壳破解的,让新手学习下,感激不经
6#
窗外的云 发表于 2013-5-21 18:51
厉害。。
7#
FishSauce 发表于 2013-5-21 18:53
本菜鸟只能膜拜
8#
kuwo911 发表于 2013-5-21 19:12
大牛作品   强顶
9#
pojie668 发表于 2013-5-21 19:18
欣牛v好利害呀,莫拜
10#
混小子 发表于 2013-5-21 19:28
菜鸟前来膜拜大神{:1_931:}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-17 16:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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