病毒驱动调试

  • 调试环境
    • 双机调试环境
    • 具体步骤
    • 驱动加载分析

调试环境

作为一个安全研究者,肯定会遇到调试病毒驱动的时候;那在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 也收不到调试信息了应该是断开连接了,详细情况可能还需要单步跟下)

无符号驱动调试 win10相关推荐

  1. ubuntu18.04下双机驱动调试

    环境搭建: https://blog.51cto.com/haidragon/2337256 这里要先说下如果要下内核断点要先在编译前去掉写保护,但是下自己写的驱动可以不要. 第二个最好编译完后压缩v ...

  2. 【旧文章搬运】Windbg+Vmware驱动调试入门(一)---Windbg的设置

    原文发表于百度空间,2009-01-08 ========================================================================== Wind ...

  3. Linux驱动调试中的Debugfs的使用简介

    Linux驱动调试中的Debugfs的使用简介 (2012-03-31 14:14) 在调试linux驱动的时候,可以用debugfs来调试,debugfs类似字符设备驱动一样,甚至更简单,不需要主设 ...

  4. Linux驱动调试中的Debugfs的使用简介 CONFIG_DEBUG_FS 的功能与配置

    Linux驱动调试中的Debugfs的使用简介 (2012-03-31 14:14) 在调试linux驱动的时候,可以用debugfs来调试,debugfs类似字符设备驱动一样,甚至更简单,不需要主设 ...

  5. golang interface 类型转换_无符号Golang程序逆向方法解析

    在去年的inctf2018中,出现了一道Go语言编写的进程通信逆向题,无论是从题目整体设计还是解题思路上来说都独树一帜,自己在解题过程中遇到了很多问题,但我这不打算做过多探讨,网上也有大佬的解题过程, ...

  6. 有符号数、无符号树混合计算问题。

    今天在线刷题,其中一个问题总是结果跟期望的不一样,在一次次的检查程序逻辑.确认无误后,还是不能通过,不得已用VS开始调试! 这里是我的程序代码: 1 // maxDepth.cpp : 定义控制台应用 ...

  7. 手把手教你解决PL2303驱动在Win10无法使用

    PL2303驱动在Win10无法使用 如今微软已经停止对Win7的补丁优化,Win10操作系统逐渐普及取代Win7成为主流的操作系统,W10的推出提升操作体验的同时也带来对硬件兼容性的困扰. PL23 ...

  8. 借WS2812 PWM DMA驱动调试浅谈STM32调试思路

    借WS2812 PWM DMA驱动调试浅谈STM32调试思路 ​ 接触STM32差不多有4年了,在学校参加比赛时也需要进行各种调试工作,团队的配合也需要个人具有领域内快速定位与解决BUG的能力,前些日 ...

  9. 计算机系统基础实验 - 同符号浮点数加法运算/无符号定点数乘法运算的机器级表示

    实验3 同符号浮点数加法运算/无符号定点数乘法运算的机器级表示 实验序号:3 实验名称:同符号浮点数加法运算/无符号定点数乘法运算的机器级表示 适用专业:软件工程 学 时 数:2学时 一.实验目的 1 ...

最新文章

  1. JAR包及jar命令用法
  2. 关于rabbitmq详细介绍
  3. 计算机一级在线解析,2014年计算机一级考试MSOffice第三章考点解析 18
  4. 探究call 和 apply 的原理
  5. linux读取dmp备份数据打开,Linux 中 Oracle dmp 文件导入导出(转)
  6. OPENSUSE + zabbix源码安装,PHP出现问题?怎么解决?
  7. Bootstrap研究2-布局系统杂记
  8. Flink学习笔记01:初探Flink - 词频统计
  9. Apache 服务器 参数设置
  10. CNCC2018 即将开幕,报名优惠截止倒计时5天!
  11. 新中大银色快车数据恢复
  12. C语言实现 输入两个正整数m和n,求其最大公约数和最小公倍数【学习笔记】
  13. 关于目前CIM(BIM+GIS)行业的一些看法
  14. 回顾 12 个面向 Web 开发人员的在线代码编辑器
  15. Spark性能调优 之 合理规划资源配置
  16. 四种宽带接入技术功能及说明
  17. 一分钟搞懂 微调(fine-tuning)和prompt
  18. 6号团队-团队任务5:项目总结会
  19. 短信验证码登录流程思路及详细步骤
  20. 玻璃上的雨滴(动态特效)

热门文章

  1. 如何让你的内网服务器可以被外网访问到(端口映射、NAT、域名解析、IP地址)
  2. JavaFx+Mysql 实现学籍管理系统
  3. python:.py文件转.dll文件(.pyd文件)
  4. 电容的工作原理、分类选择与应用
  5. 用两个栈实现最小栈的功能
  6. 基于easyTrader部署自动化交易(一)
  7. JAVA -Xms与-Xmx区别
  8. 农村没网络怎样安监控,家里没有wifi安哪种监控器
  9. 元素和子集,属于与包含
  10. 图像技术_基础技术(0001)_RGB与CMYK的定义和详细区别