好友
阅读权限40
听众
最后登录1970-1-1
|
本帖最后由 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
免费评分
-
查看全部评分
本帖被以下淘专辑推荐:
- · 破解教程|主题: 126, 订阅: 214
- · 教程|主题: 123, 订阅: 88
|