ZP脱壳学习8个样本 你能脱几个?
本帖最后由 cjteam 于 2012-7-15 00:16 编辑用zp1.49版本,加密了多个版本,只为了解什么是zp的保护,还有如何用zp保护,同时针对不同的保护解决方法。理解大牛们是如何做的Zp早被大牛们玩烂了,以至于说不会脱zp就不要玩破解。。55555551.zp只压缩资源.exe---其他什么保护也没,相当的简单哟。事实也不简单 :)2.zp默认保护但不要key保护.此时有加密导入表,含有加密等级1和加密等级2,以及校验等。Ps:这类脱壳貌似处理iat就可以了,因为修改版的OD+SOD可以处理很多,而且是简单的脱壳,不是patch,所以一般校验之类的扯不上关系。加密调用代码是???在OD里是如何显示的呢?不知道..3.zp默认保护,增加试用30次.4.反函数钩子--不知道OD是如何表现的.因为看不懂,这里只采用这个保护做一个看看.5.VISO保护模块的6.默认保护+反钩子函数,去注册功能7.默认保护+VISO保护模块8.全保护。没添加注册功能PASS:代码保护的功能一直没测试成功,遗憾
本帖最后由 cjteam 于 2012-7-14 23:52 编辑
接下来脱第二个和第三个,其实他们全是一样而已,对于脱壳来说。基本没区别:
ESP定律到OEP。修复参考了是这个人的代码,很容易,对照学就可以了,可以google:ZProtect1.4-1.6 IAT 修复代码 精简版
http://www.unpack.cn/forum.php?mod=viewthread&tid=59057
申请一块空地,写上地址,二进制:60 B8 18 21 45 00 83 38 00 74 1B 8B 08 80 39 68 75 21 8B 49 01 83 F9 00 74 19 8B F8 51 E8 00 21
EC FF 89 07 8B C7 3D DC 26 45 00 75 06 61 E9 71 ED 92 FF 83 C0 04 EB CE
输入修改数据,DUMP即可,
第4,5个脱法跟第一个一样,单独加密无保护威力,或许从某种意义上,我们可以废掉这个,或者处理一下特别处的IAT,那么这二个保护也是个无用的么?大牛来解说
第6个就可以看到反钩子的威力了
本帖最后由 cjteam 于 2012-7-14 22:40 编辑
首先脱第一个。话说第一个脱壳,除了ESP定律,我在里面折腾了半天,摸的不是很清楚,希望那位大牛非ESP定律完整分析一下。
00473C20 >E8 01000000 call zp只压缩.00473C26 //OD载入,F7
00473C25 B9 871C248D mov ecx,0x8D241C87
00473C2A 9B wait
00473C2B A5 movs dword ptr es:,dword ptr ds:[es>
00473C2C F8 clc
00473C2D FFFF ??? ; 未知命令
00473C26 871C24 xchg dword ptr ss:,ebx
00473C29 8D9B A5F8FFFF lea ebx,dword ptr ds:
00473C2F 871C24 xchg dword ptr ss:,ebx
00473C32^ E9 93F8FFFF jmp zp只压缩.004734CA //F4
004734CA 60 pushad
004734CB^ E9 EBFCFFFF jmp zp只压缩.004731BB //ESP定律
F9二次就到程序里面了。那简单,.二进制搜索55 8B EC 83 C4 F0 B8 C4 EB 44 00,一下就到了0044EDA4 ,删除分析,dump,ok程序可以运行
单步F7,曾有几个特别处
00473C6F^\0F85 E5F6FFFF jnz zp只压缩.0047335A //循环释放?。。
00473C75^ E9 F8F9FFFF jmp zp只压缩.00473672 //此时EAX=00400000 上面是释放了一个PE了,7C80000也是一个PE
0047352D 66:8138 4D5A cmp word ptr ds:,0x5A4D //循环释放DLL
004735C9 FFD1 call ecx 进入DLL里面了- 9D00000 也是一个PE,进入
00A0A451 已禁止 mov eax,dword ptr ds: 没有保护IAT的时候,这里写IAT ds:=00051736
00A0E0B8 始终 jmp 00A1141F
00A0E0BD 始终 call dword ptr ds:
00A0FC03 已禁止 mov dword ptr ds:,eax 写IAT
^\E9 F194FFFF jmp 00A0C2EF
61 popad
E9 47310000 jmp 00A0F43C
C3 retn //OEP最后的四句话
C牛不是发了zp教程嘛建议楼主看看。。。。比较精彩。。··· {:1_931:}楼主可以试试脱第6个 看下。新手学习下。 菜鸟在看了一些大大的教程后也试着脱一脱……
6.默认保护+反钩子函数
到达oep就不说了,esp定律……
1、去除dll模拟
下断 bp CreateFileA,F9运行一次,看堆栈。
0012F8F8 009F1164/CALL 到 CreateFileA 来自 009F115E
0012F8FC 0012FAA8|FileName = "C:\WINDOWS\system32\kernel32.dll"
0012F900 80000000|Access = GENERIC_READ
0012F904 00000001|ShareMode = FILE_SHARE_READ
0012F908 00000000|pSecurity = NULL
0012F90C 00000003|Mode = OPEN_EXISTING
0012F910 00000080|Attributes = NORMAL
0012F914 00000000\hTemplateFile = NULL
返回的是系统dll,所以有dll模拟
下断 bp GetModuleHandleA,F9运行一次,Alt + F9 返回
009E3E68 /74 4B je short 009E3EB5
009E3E6A |3958 56 cmp dword ptr ds:,ebx //这里就dll模拟的次数,下硬件执行断点,取消前面的API断点。重载程序……
009E3E6D |8B15 5C669E00 mov edx,dword ptr ds: ; ZP默认保.00476000
009E3E73 |8D3C11 lea edi,dword ptr ds:
009E3E76 |7E 35 jle short 009E3EAD
009E3E78 |BE 38659E00 mov esi,9E6538 ; ASCII "user32.dll"
009E3E7D |56 push esi
009E3E7E |57 push edi
009E3E7F |FF35 28659E00 push dword ptr ds:
009E3E85 |E8 90E0FFFF call 009E1F1A
009E3E8A |83C4 0C add esp,0C
009E3E8D |56 push esi
009E3E8E |A3 34659E00 mov dword ptr ds:,eax
009E3E93 |03F8 add edi,eax
009E3E95 |FF15 DC109D00 call dword ptr ds: ; kernel32.GetModuleHandleA
009E3E9B |50 push eax ; user32.77D10000//停在这里。向上看代码……
009E3E9C |E8 BAFBFFFF call 009E3A5B
重载后注意下好esp定律断点……直接F9
009E3E6A 3958 56 cmp dword ptr ds:,ebx //停在这里
注意看下方信息窗口
ebx=00000000
ds:=00000009
右键修改 00000009 为 0,确定。F9,到达OEP……
2、修复IAT
IAT的修复:偶是到达oep后跟踪观察,然后写了个脚本,直接用脚本修复,菜鸟的脚本很是蹩脚……勿喷啊……
//此脚本到达oep后运行,注意部分地址机器不同可能也不一样。
var Old_esp
var cur_addr
var old_eip
mov old_esp,esp
mov old_eip,eip
mov cur_addr,00452114 //00452114是IAT的起始地址-4
fill 009E215B,1,EB //在解密IAT时这里有个3秒时间校验,跳过校验
bphws 009E2846,"x"
loop:
add cur_addr,4 //IAT 笫一个地址
cmp cur_addr,004526d8 //004526d8是IAT末尾+4
je exit
cmp ,0
je loop
mov eip,
run
mov ,eax
jmp loop
exit:
bphwc
mov esp,old_esp //还原esp,eip
mov eip,old_eip
ret
本帖最后由 zzcqm 于 2012-7-19 00:06 编辑
第7、第8与第6思路差不多,就不写过程了,直接上脱壳后的程序吧!
本帖最后由 cjteam 于 2012-7-19 10:54 编辑
{:1_918:}呵呵,是比较简单的,没加出效果,有的人就是加出效果了,{:1_907:}
http://casgsn.ys168.com/
ZProtect 1.4.9脱壳练习遇到的疑问
ZProtect 1.4.9脱壳练习遇到的疑问二
二个就加的比我的有效果多了,楼主有兴趣可以研究下
页:
[1]