sys驱动不能是exe_利用内核驱动Dump被保护进程内存镜像

    以前介绍过的一款工具《开发Dump进程内存镜像、搜索工具ProcessDump》(以前文url:https://mp.weixin.qq.com/s?__biz=MjM5NDcxMDQzNA==&mid=2247484112&idx=1&sn=4c925a3e8fb43419a036f1f7dffab8b0&chksm=a682d41d91f55d0b074ae0746603bcd13c545779206004cc08a2416a06ed19613d87edf09bce&token=563483833&lang=zh_CN#rd)。如图,

7afd24577752b8e0f67094529737147b.png

6099096ce5fcb62f6c81773ee4782fb4.png

是不是有点印象了,嘻嘻。

    在代码里我采用OpenProcess函数来打开进程PID,再Dump出来的方式,

5aa292d9f0811a940f6ca487c550dfcd.png

    这里就产生了一个局限性,即:程序Dump一般进程的内存基本都能转储出来,不会有问题;但如果被Dump的进程是被保护的进程呢,那就dump不出来,失败不成功。

    在完善程序的过程中,发现了“利用内核驱动、Ring0和Ring3层联动的方式”来解决Dump出被保护进程的内存镜像的好东西,特分享出来,完善我那个程序只工作于用户层Ring3的不足之处。

一、利用内核驱动Dump出被保护的进程内存镜像

    作者的初衷:“我无法从Ring3中转储进程。我决定尝试创建一个自定义驱动程序,允许我在不使用OpenProcess的情况下复制进程内存”,恰好满足了我们的另一种情况需求。

1、源码地址:https://github.com/fobricia/KsDumper

编译环境,

  • Win 10 x64 ;

  • Windows Driver Kit (WDK) 10 ;

  •  .NET 4.6.1;

  • Visual Studio 2019;

程序编译后会形成两个文件:ksDumperClient.exe和ksDumperDriver.sys;

    因为涉及到驱动,如果你不熟悉,编译时会有点麻烦,还是用我编译好的吧。

编译好的,放在网盘中,

链接:https://pan.baidu.com/s/1P1ogczKxqjyE2gjaAd8Q6g

提取码:6bf1

2、程序演示图示

fe19448f4774e73016d2d65e9976f1df.gif

这是程序的演示动图,非常形象。

3、运行

如果运行ksDumperClient.exe,会出现程序界面,但没有数据,

c93dc3c84a55cff6aab5560ddde17104.png

  查了下它的说明文档,发现要先加载起驱动文件ksDumperDriver.sys,用sc来加载,结果... ...

755217bce3b33077b7417b91995477cd.png

    由于驱动没有签名,所以始终无法用windows拦截;在网上也搜索了暂时不用数字签名的办法,但还是挺麻烦的。

4、在一次细看文档时,发现作者给出了办法:用一个名为“drvmap”的程序来加载驱动sys,这里给出url,

源码地址:https://github.com/not-wlan/drvmap

这个我也编译好了,放在网盘中,

链接:https://pan.baidu.com/s/1Urve5dPnHAuboS75jmyX6A

提取码:pf3k

二、测试

1、在虚拟机中用drvmap来加载ksDumperDriver.sys;测试环境为win10 x64,不要在本机上测试上,万一有问题,很麻烦。

8da7fd81cf5cabc1b3094e4c97212beb.png

出现这样的界面,说明加载驱动成功了。

2、运行ksDumperClient.exe,

fbc32ddd37058546c6736d7e3236d789.png

    这会有进程内容了,右键选中后导出,这时就跟上面的演示图一样了,不再继续了。

3、这是个涉及到 驱动编程、PE结构重构的源码,有很高的价值,有能力的还是要研究学习下。

    因为内核驱动工作于Ring0底层,从而避开绕过了一些保护手段。

045791761bf40c67b6a759654ae5baaa.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值