ZProtect的脱壳与修复

ZProtect的脱壳与修复
首先查壳
ZProtect的脱壳与修复_第1张图片
运行一下程序
ZProtect的脱壳与修复_第2张图片
有注册框,那么我们必须跳过这个对话框才能到达程序真正的入口点
od进入,F7进call,再F7见到熟悉的pushad
ZProtect的脱壳与修复_第3张图片
jmp处转到对话框API:DialogBoxIndirectParamA,下断
返回pushad处,FPU窗口中ESP 定律,后运行
返回到处跟随,跳转到弹出界面的指令
ZProtect的脱壳与修复_第4张图片
je处下硬件断点,标志位Z改1,运行,到如下callZProtect的脱壳与修复_第5张图片
F7跟进,到如下,右键分析,删除模块分析
ZProtect的脱壳与修复_第6张图片
到达阵真正的入口点ZProtect的脱壳与修复_第7张图片
od中在push处右键od调试进程,DDA1C即为OEP地址
ZProtect的脱壳与修复_第8张图片

接下来用LordPE进行脱壳,输入OEP地址。自动查找IAT,获取输入表,可以看到都是无效函数,无法进行转储
ZProtect的脱壳与修复_第9张图片
接下来用ImportREC进行修复
对照LordPE进行填写,Process ID在LordPE的标题
Code Start和Code End要加上LordPE开头和结尾的函数序列号基址上加40000
ZProtect的脱壳与修复_第10张图片
Patch VA :OEP中第一个call,F7到下图,retn的地址即为Patch VA
ZProtect的脱壳与修复_第11张图片
Zero VA:跟进上图中的call,Zero VA为Resume Thread的下一行地址
ZProtect的脱壳与修复_第12张图片
填写完后,start出一个新地址,这是od为我们申请了一块新的内存
ZProtect的脱壳与修复_第13张图片
od转新地址,记得加0,右键,设此处为新的EIP并删除硬件断点
xor处下断点
ZProtect的脱壳与修复_第14张图片

运行
ZProtect的脱壳与修复_第15张图片
解码成功
此时我们再次获取输入表ZProtect的脱壳与修复_第16张图片
都是有效函数,我们进行转储,最后查壳一下
ZProtect的脱壳与修复_第17张图片

脱壳成功

你可能感兴趣的:(小程序)