WINDBG 驱动调试命令

2023-11-15

windbg 符号加载

首先添加符号,打开 windbg 工具栏 file->Symbol File Path ....  写入路径如下所示

SRV*E:\\tools\win7-sp1-x86*

然后勾选左下角的Reload , 确定

执行下面执行强制加载符号

kd> .reload /f

查看是否加载了符号 

kd> lm

如果在模块后面出现 符号的路径就表示成功了,有些没有加载成功,没关系。


无符号调试驱动的两种方法

方法一:用loadPE打开驱动,查看OEP(路口点地址)如下所示

然后在windbg中执行如下命令进行下断点

kd> bp 驱动名称不含扩展名+0x6000

 运行windbg后,使用工具加载驱动,驱动启动后会自动断下来

方法二:有时以上方法断不下来,就需要用到该方法,首先loadPE打开驱动文件,将OEP复制,然后点击位置计算器,将路口点粘贴,计算。

 

 将路口点的第一个字节改成cc,让程序断下来,记得保存。(需要记住被修改的值,一般情况下为0x55。)

保存好后从新计算一下校验和     点击?然后保存退出

 不用下断点,当程序加载执行后windbg 会断下来,这时只需将该位置的汇编改回来就可以在路口点调试了

kd> eb eip 0x55

windbg指令

1. 清屏命令

kd> .cls

2. u命令(反汇编)

kd> u .

查看当前的8条反汇编

kd> u . L30

查看当前0x30条反汇编

kd> uf .

反汇编当前整个函数

kd> ub .

反汇编之前的8条指令


设置断点命令bu bp bm ba

下断点可以是地址也可以是函数名

kd> bu NT!ZwCreateFile

1) bu bp bm设置软件断点

a). bp设置地址关联的断点

b). bu设置符号关联的断点

c). bm支持设置含通配符的断点,可以一次创建一个或多个bu或bp (bm /d)断点

bp和bu的主要区别

a) bp所设断点和地址关联,如果模块把该地址的指令移到其它地方,断点不会随之移动,而是依然关联在在原来的地址上; 而bu所设断点是和符号关联,如果符号的地址改变了,断点依然保持和原来的符号关联。

b) 如果bp所设断点的地址在加载的模块中被找到,后来软件模块被卸载,断点会被自动移除;而bu所设断点则会一直存在。

c) bp设置的断点不会被保存windbg的workspace中,bu设置的断点会则会被保存下来。

2)ba设置硬件断点(数据断点)

硬件断点是指当一个内存地址被访问(读、写、执行)或IO端口被访问时触发的断点。



其它命令bl bc bd be .bpcmds

bl 列举所有断点和它们的状态

bc 删除对应断点

bd 禁用对应断点

be 启用对应断点

.bmcmds 列举所有断点以及创建它们的命令


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WINDBG 驱动调试命令 的相关文章

随机推荐

  • Python开发就业岗位有哪些?Python薪资待遇如何?

    Python开发就业岗位有哪些 Python就业岗位分为 Python后端 数据分析 数据挖掘 机器学习 爬虫等 后端岗位多 Python岗位占50 是爬虫工程师的10倍 其次是数据分析岗位 仅次于Python后端开发 数据挖掘和机器学习大
  • linux下安装jenkins

    参考文档 如何在Linux CentOS7 环境搭建 Jenkins 服务器环境 爱码网 1 官网下载安装 官网 Redhat Jenkins Packages sudo wget O etc yum repos d jenkins rep
  • Linux安全扫描工具ClamAV安装及使用

    导语 Clam AntiVirus ClamAV 是免费而且开放源代码的防毒软件 软件与病毒码的更新皆由社群免费发布 ClamAV在命令行下运行 它不将杀毒作为主要功能 默认只能查出系统内的病毒 但是无法清除 需要用户自行对病毒文件进行处理
  • Csharp:WebClient and WebRequest use http download file

    Csharp WebClient and WebRequest use http download file 20140318 塗聚文收錄 string filePath 20140302 pdf string fileName http
  • Unity - 射线检测

    Unity 射线检测 本文简要分析了Unity中各类 射线检测 的基本原理及用法 及不同检测手段的性能对比 内容包括 Ray 射线 RaycastHit 光线投射碰撞信息 Raycast 光线投射 BoxCast SphereCast Ca
  • 学习黑马JVM的笔记

    JVM详解 一 JVM介绍 1 什么是JVM 2 有什么好处 3 学习路线 二 内存结构 1 程序计数器 Program Counter Registe 1 定义 2 作用 3 特点 4 演示 2 虚拟机栈 Java Virtual Mac
  • 通过socket获取对方ip地址

    struct sockaddr in sa int len sizeof sa if getpeername sockfd struct sockaddr sa len printf 对方IP s inet ntoa sa sin addr
  • GDI/GDI+/D2D/D3D

    GDI GDI D2D D3D 标签 GDID3D 2015 07 27 11 28 503人阅读 评论 0 收藏 举报 分类 Windows系统 7 原文链接 2D Drawing APIs in Windows 在 Windows 7
  • 微服务之服务网关(GateWay)

    服务网关 概述 什么是网关 为什么需要网关 GateWay实现网关 spring cloud 2 0 概念 Route 路由 工作流程 搭建 动态路由 Predicate 断言 注意 Filter 过滤 自定义过滤器 todo gatewa
  • 亲测有效!电脑系统自己停止或休眠了怎么办?如何禁止系统休眠断网?

    亲测有效 电脑系统自己停止或休眠了怎么办 如何禁止系统休眠断网 新安装的操作系统 在开启一段时间无人操作的情况下 经常发现电脑休眠了 或者网络断开了 这种情况如何解决 上干货 电脑休眠 睡眠问题 1 打开控制面板 找到 电源选项 2 更改电
  • 前端神器avalonJS入门(一)

    http www 360doc com content 14 1031 20 21412 421521791 shtml avalonJS是司徒正美开发和维护的前端mvvm框架 可以轻松实现数据的隔离和双向绑定 相比angularJS等前端
  • vscode使用ftp-sync快速上传项目代码到服务器(宝塔ftp为例)

    使用vscode开发工具小伙伴们可以在vscode搜一下ftp sync这个插件 然后点击下载安装 2 使用快捷键 Ctrl Shift P命令 输入ftp sync Init 然后选中执行 3 执行上述命令快速生成 vscode ftp
  • 面向对象编程三大特征

    面向对象三大特征 封装 继承 多态的概述以及其优点 static static表示静态 是Java中的一个修饰符 可以修饰成员方法 成员变量 可以直接通过类名调用 静态变量 特点 被该类所有对象共享不属于对象 属于类 静态变量随着类的加载而
  • Scanner中nextInt()和nextLine()详解(秒懂)

    直接上代码 输出结果 结果分析 nextInt 和nextLine 顺序互换代码如下 输出结果 结果分析 解决方法 可以将nextLine 用next 替换 两者nextLine 执行之前再加一个空nextLine 让这个空的清楚掉回车符再
  • 【Xilinx Vivado时序分析/约束系列5】FPGA开发时序分析/约束-IO时序分析

    在之前介绍的是FPGA内部的时序分析 包括以下几种情况 寄存器与寄存器之间 输入PAD 输入时钟 与寄存器之间 寄存器与输出 PAD 输出时钟 之间 输入PAD 输入时钟 与输出PAD 输出时钟 现在就开始分析FPGA与外部的其他器件的连接
  • python numpy格式化打印

    1 问题描述 在使用numpy的时候 我们经常在debug的时候将numpy数组打印下来 但是有的时候数组里面都是小数 数组又比较大 打印下来的时候非常不适合观察 这里主要讲一下如何让numpy打印的结果更加简洁 2 问题解决 这里需要使用
  • matlab参数方程画曲线

    求x2 3x 1 0 x 5 0 1 5 y1 x x 3x 1 y2 zeros size x plot x y1 x y2 f x xx 3x 1 x1 fzero f 0 5 x2 fzero f 2 5 x 0 2 1 8 2 5
  • vue获取url中的参数值,this.$route.query

    如果有的参数可传可不传 可以使用 传参 例如 http 192 168 1 12 8080 detail id 123 获取的时候 let id this route query id 一 在vue组件单页面中获取页面参数 watch ro
  • devops(后端)

    1 前言 该devpos架构为gitlab jenkins harbor k8s 项目是java项目 流程为从gitlab拉取项目代码到jenkins jenkins通过maven将项目代码打成jar包 通过dockerfile构建jdk环
  • WINDBG 驱动调试命令

    windbg 符号加载 首先添加符号 打开 windbg 工具栏 file gt Symbol File Path 写入路径如下所示 SRV E tools win7 sp1 x86 然后勾选左下角的Reload 确定 执行下面执行强制加载