ZProtect1.4.9默认保护脱壳视频(转来的)
转载来自http://www.ypzz.net/viewthread.php?tid=162&page=1&extra=#pid570大家好 我是壹品居的斑竹 ypzz http://www.ypzz.net
壹品居是新开的论坛希望大家支持
今天给大家做个脱默认设置的ZP壳程序
我让"清晨吃馒头"加了两个默认的ZP
一个是delphi的
一个是VB的
小弟我研究zp时间不长 总是跟随前人的步伐慢慢摸索前进
前阵子看了hyperchem 和 ximo两位大大的脱文
这两篇文章都能在网上找到
我也会把这两位大大的脱文打包的
我只是对这两位大大的文章进行了动画演示
希望两位大大不要见怪
冒犯之处请见谅
只是作为研究之用
根据 hyperchem 的文章 ZP对IAT有三种保护方法
今天只对第一种方法进行演示
我们先看下加壳的delphi程序
好了 我们用od加载
ZP的壳用ESP定律就可以到达OEP了 这是1.4.9之前所有版本的通用方法
重要的是修复IAT 和IID 表
IATSTART:00483118
IATEND:004837B0
OEP:0047FA10
push key
jmp execute:
execute:
jmp decode
decode:
pushad
push dword ptr ss:
call GetAPI
popad
retn
GetAPI:
push dword ptr ss: //push key
call dword ptr ds: //根据key,取得相应的索引
mov esi,eax
mov eax,dword ptr ds:
sub eax,dword ptr ds:
sar eax,2
cmp esi,eax
jb short 009321A8
call 00926B1E //end..
mov eax,dword ptr ds:
mov eax,dword ptr ds: //根据相应的基址和索引,获得真正的API地址
mov dword ptr ss:,eax//填充IID表
00D60014 50push eax ; 也就是说这里的代码就是解密call里面的GetAPI代码
00D60015 51push ecx ;这个地方会有不同 但是个push
00D60016 FF1>call dword ptr ; 这个就是解密call
00D6001C 8BF>mov esi, eax
00D6001E A1 >mov eax, dword ptr
00D60023 2B0>sub eax, dword ptr
00D60029 C1F>sar eax, 0x2
00D6002C 3BF>cmp esi, eax
00D6002E 72 >jb short 00D60035
00D60030 E8 >call 00D549AB
00D60035 A1 >mov eax, dword ptr
00D6003A 8B0>mov eax, dword ptr ;这里不再填充IID了 直接修复就好了
00D6003D 5Fpop edi
00D6003E 57push edi
00D6003F 890>mov dword ptr , eax
00D60041 58pop eax
我们来对比下
现在清楚了IAT的加密方法 现在来修复 IAT
然后我们用ximo大大的修复IAT的代码
hyperchem的方法比较难懂
呵呵 个人这么认为的
用到的代码我已经放在这里了
这个代码的版权归ximo大大所有我这里只是借用一下
希望ximo大大不要介意^_^
好了 delphi的干掉了 接下来干VB的 方法是一样的
ESP到oep
key:23164DE3
好了 教程到此结束
88
下载地址:**** Hidden Message ***** 下载学习学习 看看这个好教程 下载学习。同时祝大家新年快乐。 下载学习:lol: /:good
祝楼主新春快乐,天天开心呢 下载学习,新年快乐! 我也来看看哈(*^__^*) 嘻嘻…… 这个不错啊,找了许久 参考一下 方法