-
-
[求助]VMP脱壳中的HOOK VM_RETN到底是什么意思啊?
-
发表于:
2011-7-10 12:13
20853
-
[求助]VMP脱壳中的HOOK VM_RETN到底是什么意思啊?
发现很多脱文上教的寻找OEP的步骤都是下VirtualProtect断点——text段下断——hook vm_retn
这里的hook vm_retn到底是什么意思呢,要怎么样操作?
ximo [分享] 也来谈谈VMP2.05的脱壳
VMP的外壳部分不能说难,只能说烦。特别是IAT的修复,由于函数调用的错位(并非是规则的call xxxx nop或者nop call xxxx系列)、寄存器使用的随机性、大量的乱序等,使得写脚本修复是个非常蛋疼的事情,而且往往会修复错,修复漏,而VM代码里的IAT更是无法得到修复。于是,目前公开的方法中,最简单的也是最治本的修复方式,就是先生成张调用关系的表,然后写个DLL去读,在程序运行前,修正一些值,来达到跨平台。其他的,还真想不到有更完美的方法。或许牛人间有更好的处理方法,我这种菜鸟实在想不到了。。
至于修复IAT,牛人的文章不少了,比如kissy牛的2个视频,以及aa1ss2牛的学习笔记,这里就不再多说了。
下面写下个人脱壳的记录,当算是个简单的笔记,跟步骤的总结,没什么技术含量,一切都是按牛人的脚步学习的。
试练品是个XP记事本,加上VMP外壳的全选项,顺便把OEP处的代码也给和谐掉。下面开始脱壳:
1.CTRL+G,VirtualProtect,在VirtualProtectEx的调用处下好断点:
7C801AE3 E8 75FFFFFF call kernel32.VirtualProtectEx
接着,在数据窗口定位到代码段,比如,这个样本的为01001000.主要是为了观察是否已经解码,找返回的时机。
2.一直F9,一直到代码段解码,取消断点。ALT+F9,返回到程序代码区。
3.HOOK VM_RETN,找程序的入口。------------------------这个是什么意思啊 内存断点 硬件断点 还是? 这里完全可以 写怎么操作的么。 我花了 两天时间都没弄明白是什么意思 ,看了很多 资料 。之前用其他办法 但是效果不好。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课