无符号驱动调试 win10

调试环境

作为一个安全研究者,肯定会遇到调试病毒驱动的时候;那在win10 环境下怎么调试驱动呢?

双机调试环境

请自行参阅:
VirtualKD-Redux  /https://github.com/4d61726b/VirtualKD-Redux
(可以调试新版vmware virtualbox 虚拟机)

具体步骤

  • Win10 iso
  • Windbg
  • 病毒驱动样本
  • VirtualKD-Redux
  • vmware 16
  • inst
    搭建的步骤:
    1. 创建虚拟机(vmware 16+ win10 iso)

    2. 打开VirtualKD-Redux 配置WinDbg 调试器

    3. 复制VirtualKD-Redux里面的target >x64 到虚拟机 点击运行

    4. 重启虚拟机 F8 禁用驱动签名校验

    5. 然后 uf nt!IopLoadDriver,找到 call nt!MmLoadSystemImage bp这条指令,(当安装、启动病毒驱动)断下来后 F10跳过执行后 ,就能对目标病毒驱动模块下断点了

    6. 配合IDA计算病毒驱动的DriverEntry 或者 目标地址偏移 Addr - imagebase

    7. 对目标地址bp下断点
      效果图:
      在这里插入图片描述

      在这里插入图片描述
      在这里插入图片描述
      当前断点 RIP 刚好是 DriverEntry(),如IDA 截图
      在这里插入图片描述
      额 貌似有混淆…
      在这里插入图片描述

驱动加载分析

如下图,栈回溯可以看到,在nt!IopLoadDriver+0x4c2 之前那一步执行后, 执行流就会到 DriverEntry()
在这里插入图片描述
看一下此处的反汇编:nt!IopLoadDriver+0x4c2 的前一步是 call nt!guard_dispatch_icall
在这里插入图片描述
所以调用的流程是:

nt!IopLoadDriver ->  nt!guard_dispatch_icall-> Dest!DriverEntry()

(异常记录: nt!guard_dispatch_icall() 里面下断点虚拟机会假死,windbg 也收不到调试信息了应该是断开连接了,详细情况可能还需要单步跟下)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值