【WIN】WinDBG 常用命令整理

WinDbg内核调试实战:符号配置、崩溃分析与驱动漏洞定位 WinDbg是Windows平台进行内核级调试与崩溃分析的核心工具,其本质是基于符号解析的逆向分析系统。它依托dbgeng调试引擎,通过符号文件(PDB)将内存地址映射为可读函数、结构体和源码行号,从而实现从蓝屏代码(如0x3B、0xD1)到具体驱动模块(如OraOCIDrv.sys)的精准归因。技术价值在于突破用户态限制,直接访问内核内存空间,支撑驱动开发验证、安全漏洞挖掘与企业级故障根因分析。典型应用场景包括minidump/kerndump分析、IRQL异常追踪、POOL_CORRUPTION内存取证 阅读详情

【符号说明】

 G:\run3\
 SRV*G:\WinSymbol.wlminisecmod*http://msdl.microsoft.com/download/symbols

WinDBG 常用分析命令整理

1. 如何分析

人个观点:分析线上问题的第一步,是先从监控软件中(比如zabbix,性能计数器)和系统日志获取信息。观察CPU使用率,CPU LOAD,内存,网络连接数,线程数,响应时间等各种性能指数。

线上的各种性能指数的变化,都有其内在的联系。比如,内存上涨过快同时也会导致CPU 升高。CPU升高,导致服务器性能下降,响应时间慢,网络连接数上升。

通过观察各种指标,然后再定位具体问题。明确了问题方向后,再通过Windbg 分析Dump验证和查找问题的根源。

2. 常用命令

命令很多,把从网上了解到的和用过的一些命令做一次整理,MSDN 对SOS调试命令的说明:
http://msdn.microsoft.com/zh-cn/library/bb190764.aspx

1)基础命令:

 .load Psscor4/amd64/amd64/psscor4.dll #加载psscor4
 .load SOS/SOS.dll
 .sympath #设置符号路径
 .cls #清屏
 version #查看版本信息
 lm #列出加载模块
 !help #显示命令帮助
 !help EEHeap #显示EEHeap命令帮助
 !EEVersion #显示公共语言运行时版本

2)内存状态

 !EEHeap -GC #显示托管堆统计信息
 !EEHeap -loader #显示加载程序数据结构统计信息
 !DumpHeap -stat #显示垃托管堆各类型统计信息
 !DumpHeap -type Free -stat #显示所有碎片类型统计信息
 !DumpHeap -type System.String -min 150 -max 200 #显示所有System.String类型 -min -max 字节统计信息
 !DumpHeap -min 85000 -stat #显示大对象统计信息
 !DumpHeap -mt #选项仅列出与指定的 MethodTable 结构对应的那些对象
 !DumpHeap -mt 00000000022245b0 -min 85000 #查看MT 00000000022245b0中大对象
 !DumpHeap -stat 023e1000 033db630 #按地址统计
 !DumpArray #显示数组对象
 !DumpObj (!do) #显示有关指定地址处的对象的信息
 !ObjSize #显示指定对象的大小
 !DumpStackObjects (!dso) #显示在当前线程内找到的所有托管对象
 !GCRoot #显示有关对指定地址处的对象的引用(或根)的信息。
 !CLRUsage #显示托管堆统计信息(GC堆大小,提交内存,虚拟内存),psscor4的扩展命令
 !DumpMT #显示有关指定地址处的方法表的信息。
 !DumpMT -MD #显示有关指定地址处的方法表所有方法的列表。
 !address -summary #显示最大可用区域
 !vmstat #最大可用区域是 MAXIMUM 列中的最大值

3)线程调用:

 !ThreadPool #显示有关托管线程池的信息,包括队列中工作请求的数目、完成端口线程的数目和计时器的数目
 !Threads #显示进程中的所有托管线程
 !Threads -live #选项显示与活动线程关联的线程
 !Threads -pecial #选项显示由 CLR 创建的所有特殊线程
 !ThreadState #显示线程的状态。 value 参数为 Threads 报告输出中的 State 字段的值。
 ~54s 转到54线程
 !CLRStack #提供当前托管代码的堆栈跟踪。
 !CLRStack -p #选项显示托管函数的参数。
 !CLRStack -l #选项显示有关帧中的局部变量的信息。
 !DumpStack #显示堆栈跟踪 包括非托管。
 !DumpStack -EE #命令仅显示托管函数。
 !EEStack #对一个进程中的所有线程运行 DumpStack 命令。
 k #显示当前线程的call stack
 kb #显示当前线程的call stack
 ~*kb #显示所有线程的call stack 可以 寻找线程中触发GC的函数(mscorwks!SVR::GCHeap::GarbageCollectGeneration)
 !ASPXPages #显示当前处理的HttpContext,psscor4的扩展命令
 !SyncBlk #显示同步块

4)其它:

 !runaway #显示线程cpu时间
 vertarget #查看系统运行时间
 !PrintException (!pe) #显示在当前线程上引发的最后一个异常
 !address #命令显示某一地址上的页信息
 !SaveModule #将加载到内存中指定地址的图像写入指定文件,lm 列出的
 !SaveModule 081f0000 #d:\\commandobject.dll
 !FinalizeQueue #显示所有已进行终结注册的对象。
 !GCHandles #显示有关进程中的垃圾回收器句柄的统计信息。
 
 S #可以搜索内存 在内存中搜索sina.com: s –u 0012ff40 L?8000000 “sina.com”
 r #显示寄存器的信息
 d #显示内存地址上的值 使用d命令显示esp寄存器指向的内存,默认为byte: d esp
 #用dd命令直接指定054efc14地址,第二个d表示用DWORD格式: dd 054efc14

5)域,程序集,类

 !DumpDomain #枚举在指定的 AppDomain 对象地址内加载的每个 Assembly 对象。若在调用 DumpDomain 命令时不提供任何参数,则将列出过程中的所有 AppDomain 对象
 !DumpAssembly #显示有关程序集的信息。DumpAssembly 命令将列出多个模块(如果存在)。
 !DumpModule  #显示有关指定地址处的模块的信息。 可以使用 DumpDomain 或 DumpAssembly 命令检索模块的地址
 !DumpModule [-mt] #选项显示模块中定义的类型和模块所引用的类型
 !FindAppDomain #确定指定地址处的对象的应用程序域
 
 !IP2MD <Code address> #显示已 JIT 编译的代码中指定地址处的 MethodDesc 结构。
 !DumpMD <MethodDesc address>
 !U <MethodDesc address> | <Code address> #显示由方法的 MethodDesc 结构指针或方法体内的代码地址指定的托管方法的反汇编(带有批注)
Windows驱动编译调试避坑指南:WDK版本、INF签名与WinDbg实战 Windows驱动开发中的编译与调试,本质是内核ABI约束、符号系统协同和安全启动策略的综合工程。其核心原理在于WDK与Windows SDK的严格版本耦合、INF文件作为驱动身份与安装策略的声明协议、以及WinDbg基于KD协议的底层CPU指令劫持机制。技术价值体现在保障驱动在Secure Boot/Driver Signature Enforcement等安全机制下的可靠加载与可控调试。典型应用场景包括CH340串口驱动安装失败、FT232R USB转串口设备黄色感叹号、STLink调试器识别异常等外设 阅读详情

相关推荐

别再重装系统了!Win10蓝屏错误dmp文件分析保姆教程(Microsoft Store版WinDbg)

本文详细介绍了如何利用Microsoft Store版WinDbg分析Win10蓝屏错误dmp文件,避免不必要的系统重装。从获取转储文件到安装工具,再到解读错误代码和实战案例,提供了一套完整的蓝屏诊断解决方案,帮助用户快速定位并解决系统崩溃问题。

weixin_29256771的博客 431

WinDbg常用指令

1.r :显示寄存器的信息也可用来更改寄存器信息 2.a:使用汇编的格式在内存中写入一条机器指令。 3.p/t指令:执行内存单元中的指令。 p命令执行单个指令或源代码行,并可选地显示所有寄存器和标志的结果值。当子例程调用或中断发生时,它们被视为单个步骤。 用户模式: 1 [~Thread] p[r] [= StartAddress] [Count] ["Command"] 内核模式: 1 p[r] [= StartA

weixin_46465532的博客 2118

从WinXP到Win11:一份跨越20年的VMware+WinDbg内核调试符号表配置指南

本文详细介绍了从WinXP到Win11系统在VMware环境下使用WinDbg进行内核调试时符号表的配置方法。涵盖了调试环境搭建、各版本Windows调试模式启用、符号表获取与配置策略,以及统一管理方案和常见问题解决技巧,帮助开发者高效解决跨版本内核调试难题。

weixin_33282146的博客 289

windbg常用命令

command窗口输入?.chain列出所有的扩展命令。

要把所有那些负面的信息当做对自身行为的评价,而不是对自身价值的评判。 999

Win11家庭版VMware运行freeBSD蓝屏问题解决方案

虚拟化技术作为现代计算的重要基础,通过创建隔离的虚拟环境实现资源高效利用。其核心原理是利用虚拟机监控程序(VMM)在硬件与操作系统之间建立抽象层。在Windows平台上,Hyper-V和第三方虚拟化软件(如VMware)都需要与系统底层深度交互。当遇到宿主机蓝屏且故障模块涉及vmx86.sys时,通常表明存在虚拟化兼容性问题。这种情况在Windows家庭版上尤为常见,因其缺少企业版的专业虚拟化功能支持。通过升级VMware版本至17.0、调整BIOS设置和系统配置,可以有效解决freeBSD虚拟机引发的稳定

weixin_34205826的博客 389

3. windbg 常用命令有哪些

【代码】3. windbg 常用命令有哪些。

shengyin714959的博客 472

IDE : Windbg操作整理

行数指示 bl 看见断点列表后, 源文件的行号要打开该源文件, 将光标挪到该源文件, 看状态栏的行数指示. 反汇编地址 u module!function L长度 u 地址 L长度 反汇编该地址, 反汇编内容的长度为制定长度 反汇编函数 uf moudle!function 反汇编该函数, 指定模块函数符号名或直接指定地址 kd> uf n

博客标题不能为空 3240

Windbg常用命令详解

本文详细介绍Windbg常用命令。

dvlinker的技术专栏 1万+

Windbg双机调试配置

源文章地址:http://blog.sina.com.cn/s/blog_62be61550100zaoc.html 作者:芯灵空间 我自己配置这个,什么都对了,就是C:\boot.ini中debugport的值写成了COM1,添加串行端口时,显示的是串行端口2,所以更改配置文件时,debugport的值应为COM2。 如果debugport的值出现错误,则windbg会一直卡在wa

wangtiankuo的博客 1024

教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了

我觉得这篇文章肯定能给很多朋友节省不少的时间,想起朱一旦的那句话:有钱人的快乐,就是这么朴实无华且枯燥, 哈哈~~~龙式坦克的提醒:现在大家基本上都是64bit的机器,你的默认任务管理器也是64位,如果你要抓上面32位程序的dump文件,需要启用32位程序管理器。路径:都说 虎牙直播 是使用 netcore 写的,可以用windbg去玩玩它。不过有点奇怪的是,在我的机器上默认跑的是netframework4.5版本。0:000>!这里面更多的秘密,期待您的挖掘。。。。

shengyin714959的博客 107

【黑马点评】项目知识点及面经整理

【黑马点评】项目知识点及面经整理

m0_52031708的博客 6605

win7驱动开发 VMWare+Windbg的虚拟机双机内核调试环境(VS2008+DDK)

虚拟机搭建WIN7驱动开发环境

rosykee的专栏 1331

MAS1102量产工具实战指南:从下载到开卡,附固件选择与RDT优化技巧

本文提供MAS1102量产工具的实战指南,涵盖从工具下载、短接识别到开卡操作的全过程。重点解析了固件选择策略与RDT优化技巧,帮助用户成功修复基于联芸MAS1102主控的固态硬盘,解决常见开卡错误并提升SSD性能与稳定性。

c2d3e4f的博客 2208

计算机蓝屏代码74,win7电脑开机蓝屏提示错误代码0x0000000074的解决办法

win7电脑开机蓝屏提示错误代码0x0000000074的解决办法最近有windows7系统用户反映,WIN7电脑蓝屏开机代码0x0000000074是什么原因?怎么修复?以下是小编为大家搜索整理的win7电脑开机蓝屏提示错误代码0x0000000074的解决办法,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!原因分析:蓝屏代码:0x00000074蓝屏错误代码原因是因为找不到...

weixin_39639653的博客 1万+

文献计量VOSviewer分析知网文献基本操作及实用技巧

本教程旨在为读者提供一个关于VOS viewer的初级使用指南。VOS viewer是一个强大的科学研究可视化工具,主要用于构建和可视化科学地图。它能够处理大规模的科研数据,包括文献引用、共引、共词、共作者等信息。无论你是科研人员,还是数据分析师,甚至是研究生,都能在这个教程中找到使用VOS viewer的有效方法。我们将一步步教你如何使用这个软件,以及如何利用它进行科研数据的可视化。

Jia_n的博客 8769

用Navicat轻松管理魔兽世界私服数据库:修改IP、添加装备的实用技巧

本文详细介绍了如何使用Navicat管理魔兽世界私服数据库,包括修改服务器IP、添加自定义装备和调整角色属性等实用技巧。通过专业的SQL操作指南,帮助玩家轻松实现私服的高级定制,提升游戏体验。

fanta的博客 946

WIN11下的Dart SDK源码项目本地部署踩坑记录

本地部署Dart SDK源项目这部分时遇到了一些坑,因为我是WIN11平台(许多大佬都是推荐Ubuntu或者Kali作为逆向环境,据说坑会少一些,但是我比较菜,以前没咋用Linux,暂时也懒得折腾了),所以想记录一下这些坑。

大模型训练 412

Blender学习笔记——制作向量场

#下载Blender - UE4 - FGA Vector Field Editor插件的压缩包,Github上的下载地址如下:https://github.com/isathar/Blender_UE4_VectorFieldEditor #下载并解压后将FGA VectorFields文件夹复制到C:\Program Files\Blender Foundation\Blender 2.83\2.83\scripts\addons目录下,此步骤可根据blender安装的位置自行调整,只要放入addon

wychao2020的博客 1725

IDA+windbg调试windows

前言 昨天看见同学在用IDA调试x64, 他的计算机上不用额外设置,就可以调试x64程序. 而我的计算机上,使用和他一样的设置,就是不行… 今天正好学习了用IDA调试ARM程序,开窍了。用类似的步骤完成了用IDA调试x64程序. 调试r3的x64程序可以使用windbgx64, x64dbg, IDA. x64dbg和OD用法一致,如果要修改内存,记录...

659

19、硬件工程师笔试面试——无线通讯模块(2025版本)

例如,如果你的项目需要传输大量数据,如视频流或大数据文件,那么你可能需要一个高速率的模块,如支持802.11ac或802.11ax(WiFi 6)的模块。如果你的数据传输需求较小,如传感器数据,那么一个较低速率的模块,如蓝牙或Zigbee,可能就足够了。较高的频率(如5GHz)提供更大的带宽,支持更高的数据传输速率,但信号覆盖范围较小,穿透能力较弱。例如,在蓝牙通信中,一台设备作为主机,另一台设备作为从机,它们通过频率跳频的方式确定连接,并在连接建立后通过特定的协议进行数据交换。

XU157303764的博客 3228

筹码峰五句口诀,看懂主力的秘密动作!(附实战图示)

筹码图的价值在于,它不像K线那样容易造假。主力可以骗线,但骗不了筹码分布。主力在不在;是吸筹还是出货;接下来是变盘还是震荡。这五句口诀可以说是“筹码阅读的入门圣经”:单峰坚挺变盘在即,双峰对垒高抛低吸;上峰不移主力在跑,多峰林立行情不止;下峰不移不离不弃,筹码识庄稳中取利!📌市场从来不是靠猜,而是靠看清。筹码,就是主力最真实的痕迹。如果你想学会提前布局、跟庄不被甩,学会看筹码峰——这一步必须打牢!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1166

第三十三篇:Win8.1中USB xHCI驱动的符号列表

在笔者的第四篇博文中提到过USB3.0 驱动栈的结构图: 第四篇:两利相权取其重-多个USB设备通用驱动程序的综合比较 http://blog.youkuaiyun.com/u013140088/article/details/17416415 USB子系统的工作是一个长期的,也是系统的项目: 长期是指,从USB1.0的1.5Mbps发展到现如今的USB3.1:10Gbps, 十多年的

4144

【OpenClaw从入门到精通】命令行操作指南——TUI模式高效管理OpenClaw(2026避坑版)

本文将详细介绍OpenClaw的命令行操作,重点介绍TUI(Text User Interface)模式的高效使用方法,以及在实际使用中需要避免的常见陷阱。通过本文的学习,你将掌握OpenClaw命令行的精髓,提升工作效率。

一键难忘的博客 1693
上一篇: 【DLL】【学习笔记】(三)延迟加载
下一篇: 【WIN】【C++】遍历文件夹下所有文件
欧恩意
博客等级 码龄7年 677粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧恩意

如有帮助,感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值