吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6897|回复: 8
收起左侧

[UnPackMe] ZP脱壳学习8个样本 你能脱几个?

[复制链接]
cjteam 发表于 2012-7-14 21:56
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 cjteam 于 2012-7-15 00:16 编辑

zp1.49版本,加密了多个版本,只为了解什么是zp的保护,还有如何用zp保护,同时针对不同的保护解决方法。理解大牛们是如何做的
Zp早被大牛们玩烂了,以至于说不会脱zp就不要玩破解。。5555555
1.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:代码保护的功能一直没测试成功,遗憾



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

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

 楼主| cjteam 发表于 2012-7-14 23:17
本帖最后由 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个就可以看到反钩子的威力了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
 楼主| cjteam 发表于 2012-7-14 22:00
本帖最后由 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:[edi],dword ptr ds:[es>
00473C2C    F8              clc
00473C2D    FFFF            ???                                      ; 未知命令

00473C26    871C24          xchg dword ptr ss:[esp],ebx
00473C29    8D9B A5F8FFFF   lea ebx,dword ptr ds:[ebx-0x75B]
00473C2F    871C24          xchg dword ptr ss:[esp],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:[eax],0x5A4D   //循环释放DLL
004735C9    FFD1            call ecx                       进入DLL里面了- 9D00000 也是一个PE,进入               
00A0A451              已禁止                        mov eax,dword ptr ds:[edi]            没有保护IAT的时候,这里写IAT ds:[00451134]=00051736
00A0E0B8              始终                         jmp 00A1141F
00A0E0BD              始终                         call dword ptr ds:[0x9F10F4]
00A0FC03              已禁止                        mov dword ptr ds:[esi],eax            写IAT

^\E9 F194FFFF     jmp 00A0C2EF
61              popad
E9 47310000     jmp 00A0F43C
  C3              retn   //OEP最后的四句话

虚拟 发表于 2012-7-15 00:24
C牛不是发了zp教程嘛建议楼主看看。。。。比较精彩。。···
 楼主| cjteam 发表于 2012-7-15 00:49
{:1_931:}楼主可以试试脱第6个
genesis2000 发表于 2012-7-18 22:55
看下。新手学习下。
zzcqm 发表于 2012-7-18 23:58
菜鸟在看了一些大大的教程后也试着脱一脱……
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:[eax+56],ebx //这里就dll模拟的次数,下硬件执行断点,取消前面的API断点。重载程序……
009E3E6D   |8B15 5C669E00   mov edx,dword ptr ds:[9E665C]            ; ZP默认保.00476000
009E3E73   |8D3C11          lea edi,dword ptr ds:[ecx+edx]
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:[9E6528]
009E3E85   |E8 90E0FFFF     call 009E1F1A
009E3E8A   |83C4 0C         add esp,0C
009E3E8D   |56              push esi
009E3E8E   |A3 34659E00     mov dword ptr ds:[9E6534],eax
009E3E93   |03F8            add edi,eax
009E3E95   |FF15 DC109D00   call dword ptr ds:[9D10DC]               ; kernel32.GetModuleHandleA
009E3E9B   |50              push eax                                 ; user32.77D10000  //停在这里。向上看代码……
009E3E9C   |E8 BAFBFFFF     call 009E3A5B
重载后注意下好esp定律断点……直接F9
009E3E6A    3958 56         cmp dword ptr ds:[eax+56],ebx //停在这里
注意看下方信息窗口
ebx=00000000
ds:[003F3E0E]=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 [cur_addr],0
je loop
mov eip,[cur_addr]
run
mov [cur_addr],eax
jmp loop
exit:
bphwc
mov esp,old_esp //还原esp,eip
mov eip,old_eip
ret



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
zzcqm 发表于 2012-7-19 00:05
本帖最后由 zzcqm 于 2012-7-19 00:06 编辑

第7、第8与第6思路差不多,就不写过程了,直接上脱壳后的程序吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
 楼主| cjteam 发表于 2012-7-19 10:51
本帖最后由 cjteam 于 2012-7-19 10:54 编辑

呵呵,是比较简单的,没加出效果,有的人就是加出效果了,

http://casgsn.ys168.com/
ZProtect 1.4.9脱壳练习遇到的疑问
ZProtect 1.4.9脱壳练习遇到的疑问二
二个就加的比我的有效果多了,楼主有兴趣可以研究下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 01:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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