Windbg
+ -

Windbg !devstack命令

2022-07-28 99 0

!devstack命令用于显示设备栈

不过这里只是以FDO为中心的所有USB设备信息。。

更多详见官网地址:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/-devstack

   DbgPrint("AddDevice: %p to %p->%p \n", deviceObject, deviceExtension->NextDeviceObject, PhysicalDeviceObject);

输出为:

AddDevice: FFFF880433B55510 to FFFF880433A2F810->FFFF8804339FB810

设备栈为:

1: kd> !devstack 0xffff8804`33b55510 
  !DevObj           !DrvObj            !DevExt           ObjectName
> ffff880433b55510  \Driver\USBHound   ffff880433b55660  
  ffff880433a2f810  \Driver\USBHUB3    ffff880433b62310  
  ffff880433a29830  \Driver\ACPI       ffff8803e269b810  
  ffff8804339fb810  \Driver\USBHUB3    ffff880433b529a0  USBPDO-1

一个音频上层过滤驱动AudioFilter示例

1: kd> !devstack FFFFD6805B53C970
  !DevObj           !DrvObj            !DevExt           ObjectName
> ffffd6805b53c970  \Driver\AudioFilterffffd6805b53cac0  
  ffffd6805b53ce40  \Driver\ksthunk    ffffd6805b53cf90  0000003a
  ffffd6805b542c40  \Driver\IntcAzAudAddServiceffffd6805b542d90  00000039
  ffffd6805a754740  \Driver\HDAudBus   ffffd6805b53fbc0  00000037
!DevNode ffffd6805a7a0410 :
  DeviceInst is "HDAUDIO\FUNC_01&VEN_10EC&DEV_0662&SUBSYS_1BFD8002&REV_1003\4&3b7f7dd&0&0001"
  ServiceName is "IntcAzAudAddService"

一个U盘的示例

AddDevice: FFFF8804353825B0 to FFFF880435389060->FFFF88043356FE20 
-------------------------

DevicePropertyDeviceDescription:USB Mass Storage Device
DevicePropertyHardwareID:USB\VID_0781&PID_5597&REV_0100
DevicePropertyManufacturer:Compatible USB storage device
-------------------------

Breakpoint 3 hit
USBHound!FilterAddDevice+0x1eb:
fffff808`cdcb1b5b 488b442448      mov     rax,qword ptr [rsp+48h]
1: kd> !devstack FFFF8804353825B0 
  !DevObj           !DrvObj            !DevExt           ObjectName
> ffff8804353825b0  \Driver\USBHound   ffff880435382700  
  ffff880435389060  \Driver\USBSTOR    ffff8804353891b0  0000003d
  ffff88043356fe20  \Driver\USBHUB3    ffff88043356ec30  USBPDO-6
!DevNode ffff8804353807d0 :
  DeviceInst is "USB\VID_0781&PID_5597\4C530000190212109395"
  ServiceName is "USBSTOR"

0 篇笔记 写笔记

Windbg 跟踪句柄泄漏(!htrace)
!htrace(Handle Trace) 扩展用于显示一个或多个句柄的堆栈回溯信息。直接用!htrace -?可以看到简单使用说明:0:000> !htrace -? !htrace [handle [max_traces]] !htrace -enable [max_traces......
Windbg 断点命令BP
断点指令:BP,BM,BA,BL,BC,BD,BEBP 在指定的地址设置断点bp notepad!WinMain,在Notepad的WinMain函数处下断点。断点的位置可以用符号表示,也以直接使用地址及Windbg的Pseudo-Register(虚拟寄存器),如$exentry表示进程的入口点,......
Windbg 符号查找命令x
x 查看模块的符号,如x nt!KeServiceDescriptorTable**,显示所有与 nt!KeServiceDescriptorTable匹配的符号列表kd> x nt!KeServiceDescriptorTable*8046e100 nt!KeServiceDescrip......
Windbg 符号库及源文件设置
Windbg设置一般分为符号库路径设置和源文件路径设置符号库路径设置打开菜单栏,选择“Symbol File Path …”,在弹出的对话框栏中填入可载的入符号库,多个路径以分号“;”分隔。微软提供了操作系统的全部符号库,所以如果要进行windows系统自带的内核模块或应用模块进行调试,也可以只需......
Windbg 进程环境块!peb
!peb 查看当前进程环境块(PEB)注意:在64位操作系统下,使用64位和32windbg调试32位进程时,看到的地址不一样。如64位下的notepad内容如下:0:001> !pebPEB at 000007fffffd3000 InheritedAddressSpace:......
Windbg 自动分析!analyze
调试一个当机的目标计算机或应用程序,第一步是使用 !analyze 扩展命令。该扩展执行大量的自动分析。分析结果在调试器命令窗口中显示。若要数据的全冗长模式显示,你应该使用 -v 选项。例如: !analyze -v用户模式 !analyze -v 示例本例中,调试器被附加到一个已遭遇异常......
Windbg 反汇编命令u/uf
反汇编指令u,uf对指令的地址进行反汇编或对某一个函数进行反汇编u @$exentry L10L10表示控制显示0x10行反汇编,即16行0:001> u @$exentry L10notepad!WinMainCRTStartup:01006420 55 ......
Windbg 内存属性(!address)
!address!address 扩展显示目标进程或目标机使用的内存信息在调试时, 对象和栈都包含了大量的指针, 我们无法很快地猜测出他们所表示的数据. 虽然我们可以很容易地将内核空间的地址与用户态空间的地址分开, 但要把一个表示栈的地址和一个表示堆的地址区分开却不容易. 我们可以使用一个很有用的......
Windbg 结构体命令dt
dt 查看类型数据,还可用于查看模块类型的符号列表,如 dt _IMAGE_DOS_HEADER 00000000ff800000 从00000000ff800000处查看_IMAGE_DOS_HEADER类型的数据0:001> dt _IMAGE_DOS_HEADER 0000000......
Windbg 简介
Windbg是Microsoft公司免费调试器调试集合中的GUI的调试器,支持源代码和汇编两种模式的调试,也可以对软件运行过程中的dumpy文件进行分析。Windbg不仅可以调试应用程序,还可以进行Kernel Debug,同时结合Microsoft的Symbol Server调试应用程序和K......
Windbg 寄存器命令r
在Windbg中r指令除了可以显示修改CPU寄存器之外,Pseudo-Register可使用这个命令来修改。对eax 操作,r eax 显示其值,r eax=2,修改其值;r $t2=10,修改Pseudo-Register的值,r @$t2显示其值。0:001> rrax=000007f......
Windbg 搜索命令s
在内存中搜索某个值 - 命令s命令s(表示搜索search), 是一个非常有用的命令, 可以用来在调试目标内找出已知的值.这个命令的参数包括素要搜索的类型和值.s –d 0012ff40 L1024 c0000005其中-d代表双字DWORD, 是搜索的类型. 其他类型例举如下:b – B......
Windbg 模块列表命令lm
lm,显示当前加系统(内核)或进程加载的模块如x64记事本下:0:001> lmstart end module name00000000`77410000 00000000`7750a000 USER32 (defe......
Windbg 格式化命令.formats
以多种格式显示表达式的值windbg默认为16进制.formats 1000:001> .formats 100Evaluate expression: Hex: 00000000`00000100 Decimal: 256 Octal: 0000000000......
Windbg 打开源文件命令open
当配置了源文件路径后,可以通过.open命令打开源文件。如.open hello.c......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!