某驱动脱壳 vmp

没有找到适合的图片

某驱动脱壳 vmp

最近遇到个加了VMP壳的驱动,顺手记录一下(图片中的地址有的对不上因为有的图是后来补的)
拿到手先查个壳发现是VMP,(已经准备回收站了)

image.png

准备环境Win7 Windbg配置好驱动调试

驱动入口首字节改CC,然后修复CheckSum,要不然Win检测到PE文件CheckSum不正确是会拒绝加载的

image.png

加载驱动

image.png

直接断到Windbg

image.png

eb xx 90 修复修改的字节

image.png

然后直接pc断到第一个call调用(这里应该就是VMP的call Handler)

image.png

目测vmp2.x直接在这里下一个断点,然后经过多次g后来到IoFreeMdl(前面主要就是VMP映射PMD填充恢复.text,.rdata,INI等节区内容)

image.png

然后键入pc回车来到一个看起来终于正常点的call

image.png

!dh fffff880`0560b000 查看PE结构看看这个call所在的位置

image.png

在INIT节里到这里基本上就可以dump了,因为一般来说驱动入口点函数都在INIT节中

image.png

入口点直接填这个函数头的位置

dump好后IDA打开

image.png

可以看到IDA已经自动把__security_init_cookie识别出来了,基本可以确定这里是GsDriverEntry函数(开启GS编译选项默认入口点就是GsDriverEntry,而我们写的DriverEntry则由GsDriverEntry调用可以看到后面的jmp DriverEntry),只是这个驱动的DriverEntry函数被V

image.png

不过看了一下主要是INIT区段的DriverEntry函数被V,其他的.text段倒是没问题,就是有个小问题,dump的时候导入表没有修复

image.png

不过问题不大可以配合IDA手动修复一下,先在Windbg里使用dps查看导入表

image.png

然后复制到txt里

image.png

然后写个脚本修复一下

image.png

修复后看的就比较舒服了

image.png

剩下的工作交给手艹艹艹