欢迎来到天天文库
浏览记录
ID:33710192
大小:63.50 KB
页数:6页
时间:2019-02-28
《zprotect加壳程序脱壳笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ZProtect加壳程序脱壳笔记之前写了一个ZP的IAT加密方式分析,这里继续接着前面的文章,写一个ZProtect加壳的程序的完整脱壳笔记。目标程序是一个用ZP二次加密的程序,可能是某位大侠的作品,小弟这里只是随手拿来做个演示,有什么冒犯之处,敬请见谅。目标程序在附件中。运行一下程序,程序提示只能运行三次,每次只能运行十分钟,看来这个是要先干掉这个对话框再说了~写个lpkhookDialogBoxIndirectParam这个api然后返回232C即可。膜拜一下卡卡大大强大的代码。把这个lpk放在软件目
2、录下就没有注册框了。现在可以OD载入了~1,到OEP去上次我的分析里面说了,如何最快到达OEP的方式就是用ESP定律。过了pushad以后,下HrESP然后就到了。查找FF25发现壳没有处理IAT调用的代码,只是对IAT进行了加密,看来这个应该是1.4.0-1.4.4之间的某个版本。2,修复IAT通过查找FF25很容易确定IAT的位置。1.005A3190 00641378 店铺宝贝.006413782.005A3194 00641798 店铺宝贝.006417983.005A3198 0064
3、1B10 店铺宝贝.00641B104.005A319C 00E300005.005A31A0 00E3000E6.005A31A4 00641048 店铺宝贝.006410487.005A31A8 006411E0 店铺宝贝.006411E0复制代码下面是一部分IAT,可以看出IAT的处理方式有两种。修复的时候也要分两种情况进行修复。根据我上篇的分析文章的结论,两种加密方式最后是殊途同归的:push提取码调用获取函数序号的call按照隐藏的IAT基址+序号的方式来寻址。下面看看两种不同方式
4、的提取码和call的调用方式。方式一00406A54 -FF2564325A00 jmpdwordptrds:[5A3264]ds:[005A3264]=00E301421.00E30142 50 pusheax2.00E30143 60 pushad1.00E30144 687695B4AD pushADB495762.00E30149 E8310DE7FF call00CA0E7F3.00CA0E7F A17448CA00 movea
5、x,dwordptrds:[CA4874]4.00CA0E84 80780C00 cmpbyteptrds:[eax+C],05.00CA0E88 7457 jeshort00CA0EE16.00CA0E8A FF152810C900 calldwordptrds:[C91028] ;kernel32.GetTickCount7.00CA0E90 8BC8 movecx,eax8.00CA0E92 2B0D4046CA00 subecx,d
6、wordptrds:[CA4640]9.00CA0E98 81F988130000 cmpecx,138810.00CA0E9E 7641 jbeshort00CA0EE111.00CA0EA0 FF354446CA00 pushdwordptrds:[CA4644]12.00CA0EA6 A34046CA00 movdwordptrds:[CA4640],eax13.00CA0EAB FF155810C900 calldwordptrds:[C91058]
7、 ;kernel32.ResumeThread14.00CA0EB1 833D944ECA000>cmpdwordptrds:[CA4E94],315.00CA0EB8 7C08 jlshort00CA0EC216.00CA0EBA 6A00 push017.00CA0EBC FF151C10C900 calldwordptrds:[C9101C] ;kernel32.ExitProcess18.00CA0EC2 803DB848CA000>
8、cmpbyteptrds:[CA48B8],019.00CA0EC9 7408 jeshort00CA0ED320.00CA0ECB FF05944ECA00 incdwordptrds:[CA4E94]21.00CA0ED1 EB07 jmpshort00CA0EDA22.00CA0ED3 8325944ECA000>anddwordptrds:[CA4E94],023.00CA0EDA
此文档下载收益归作者所有