ZProtect 1.4.9 Unpacker by ximo[LCG]
看见有大牛发了ZP的脚本,感觉效果不是太好,于是我也发2个。可能效果也同样不好,脚本代码也写的很挫,测试的也不多,懒得弄了,就发了吧。
所有的说明都在附件里,自己看吧,有需要的自己改吧。
缺CB了,赚点小钱,5CB貌似不贵吧。。
使用说明:
1.判断是否存在DLL模拟
判断方法:
OD载入后,下bp CreateFileA,断下后看堆栈,判断是否是系统的dll
比如:
有模拟的断下后的堆栈如下:
第一次:
0007F8F8 00973440/CALL 到 CreateFileA 来自 0097343A
0007F8FC 0007FAA8|FileName = "C:\WINDOWS\system32\comdlg32.dll"
0007F900 80000000|Access = GENERIC_READ
0007F904 00000001|ShareMode = FILE_SHARE_READ
0007F908 00000000|pSecurity = NULL
0007F90C 00000003|Mode = OPEN_EXISTING
0007F910 00000080|Attributes = NORMAL
0007F914 00000000\hTemplateFile = NULL
第二次:
0007F8F8 00973440/CALL 到 CreateFileA 来自 0097343A
0007F8FC 0007FAA8|FileName = "C:\WINDOWS\system32\SHELL32.dll"
0007F900 80000000|Access = GENERIC_READ
0007F904 00000001|ShareMode = FILE_SHARE_READ
0007F908 00000000|pSecurity = NULL
0007F90C 00000003|Mode = OPEN_EXISTING
0007F910 00000080|Attributes = NORMAL
0007F914 00000000\hTemplateFile = NULL
.....
....
不再一一列举,总之都是系统的dll
无模拟的:
要么断不下来,要么断下来的如下:
0007FEA4 00941DC2/CALL 到 CreateFileA 来自 00941DBC
0007FEA8 00946538|FileName = "C:\Documents and Settings\Administrator\桌面\zp\zp1(无模拟).EXE"
0007FEAC 80000000|Access = GENERIC_READ
0007FEB0 00000001|ShareMode = FILE_SHARE_READ
0007FEB4 00000000|pSecurity = NULL
0007FEB8 00000003|Mode = OPEN_EXISTING
0007FEBC 00000080|Attributes = NORMAL
0007FEC0 00000000\hTemplateFile = NULL
再要么段在你系统的一些安全软件,或者lpk.dll啊,usp10.dll等上面了
2.若确定存在DLL模拟,您还需要手动计算下模拟的个数,计算方法:
bp CreateFileA后,不断的F9,然后观察堆栈,数系统DLL的个数,比如我这个例子,就是模拟了10个DLL,换成16进制,也就是0A
3.自己计算IAT的Start和End,计算方法,相信有过脱壳经验的都明白,到OEP后(ZP的到OEP,ESP定律即可),随便找个CALL,不断进几次就会发现了。
4.计算完上面的值,请在运行脚本前,修改相应的值,所要修改的值为IATStart,IATEnd,模拟的个数(若存在模拟,否则可以不改)
5.修改完后,可以运行脚本了。若无模拟,请直接选择step2,然后再稍后让填地址的框里直接填0即可;
若存在模拟,请选择step1,然后脚本运行中断后,记录该中断的值,接着重新运行脚本,选择step2,然后再填入刚才所记录的值
6.一般情况下,这样脱壳就完毕了,跑完脚本后,自己dump然后REC修复即可
7.若还有anti-hook,也就是FF25或FF15都被填充成了E9 ?? ?? ?? ?? 90或者E8 ?? ?? ?? ?? 90的情况,此时,你需要运行补充脚本。
因为我自己加了几个,都没能加出这个效果,所以暂时没测试补充脚本的效果如何,或许还存在的语法错误,或许还存在在逻辑错误等等,总之错误的情况可能很多很多。
因此我没有把他集成到主脚本里去,等以后完善后再集成进去。
有需要的并且有兴趣的情自己调试并自己修改下,当然有问题也可以向我反馈。
8.其他的问题,自行去发掘吧。。。。
---ximo
代码部分引用:
/////////////////////////////////////////////////////////////////////////////////////////
//fuck Zrotectect1.4.9
//thanks Hmily
//说明:
//1、使用前先修改下面几个值:IATStart和IATEnd,以及模拟的个数
//2、接着运行脚本,若第一次则输入1,第二次输入2
//3、若无模拟,请直接选择2,地址随便输入个0区域地址就行,或者直接输入0
//4、模拟个数的判断,只要bp CreateFileA,然后运行,观察堆栈,数堆栈窗口系统dll的个数即可
//just for fun
//ximo
//吾爱破解 http://WwW.52PoJie.Cn
/////////////////////////////////////////////////////////////////////////////////////////
var count
ask "whitch step?"
mov count,$RESULT
cmp count,1
je step1
cmp count,2
je step2
ret 沙发,好贵!!!! 真他妈贵,买不起...去LCG内部下载,那不要钱...
支持一个 哇哇 支持。。最爱脚本 和 脱壳机 哇哈哈
徐妈 节日快乐。。。 膜拜,有60个人下载就够XIMO去DFJ了 哈哈,送你 5成本CB 膜拜,膜拜徐嬷嬷 好东西啊,收藏一下 好象很不错学习下