找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 6956|回复: 1

windbg常用命令整理

[复制链接]
发表于 2015-2-3 22:21:35 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
转载自看雪http://bbs.pediy.com/showthread.php?p=1351440#post1351440

分类命令描述示例($$后为注释)页码
帮助?显示所有标准命令?
.help显示所有元命令.help
.help /D   $$显示带有DML导航链接的帮助
.help /D r*
.hh打开帮助文件.hh .reload
!help显示扩展命令!ext.help237
!help dumpheap237
.chain显示加载的插件.chain /D237
!error显示错误码含义!error c000003414
!error 6114
!error 80004005h179
version显示版本信息version
表达式?评估宏汇编表达式? a27-65e96
??评估C++表达式?? (unsigned int)-1-73741819
??&(this->m_Button1)
;命令分隔符r;kv;gc
$$注释符号
poi取地址内容dd poi(@ebp+8)
.expr显示或改变表达式类型.expr /s c++
n设置数制n 10
.formats以多种格式显示数.formats 80000001288
调试会话.create创建新的进程并调试.create notepad.exe
.attach附加到指定进程.attach 2568 $$ 2568 是进程的ID
.restart让调试目标重新运行(用户态).restart114
.restart /F
.reboot重启目标系统(内核态).reboot
.crash强制目标系统崩溃(内核态).crash
.detach分离调试目标.detach
q终止调试q
模块和符号.symfix设置符号服务器.symfix c:\symbols39,157
.reload刷新模块和符号.reload39
.reload /f ntfs.sys
.reload /user47
ld加载符号文件ld kernel32
.sympath显示或设置符号路径.sympath94
.sympath + d:\work\debug
!sym设置符号选项!sym noisy
!sym quiet
.symopt设置符号选项.symopt + 40 $$ 加载不严格匹配的PDB
x显示符号x winmine!*318
x ole32!*BindToObject70
ln搜索符号ln aebc6eac91
ln poi(0000001`400520b8)141
lm列模块或显示模块详情lm vm urlmon4
lmD
!lmi模块和PDB文件详情!lmi nt
!dlls动态库信息!dlls -a
!imgreloc模块的重定位信息!imgreloc
!dh观察PE文件头!dh 76930000 -a341
转储文件.dump产生转储文件.dump /mfh c:\dumps\pdf\acrobat.dmp72
!analyze自动分析! analyze -v14,82
.writemem将内存数据写到文件.writemem c:\dumps\blog.txt 07288600 L200010
.bugcheck显示蓝屏错误码.bugcheck
adplus(脚本)监视进程和自动转储Adplus -pn powerpnt.exe -pn wincmd32.exe -hang -o c:\test61
进程|显示或切换进程(用户态)|*
|2s
!process显示进程(内核态)!process 0 0
!process 0 0 powerpnt.exe19,94
!process 8 165
!process 88bfbb80 2
!dml_proc观察进程信息!dml_proc $$ 以DML方式显示进程信息
.process显示或切换进程(内核态).PROCESS /i 9382a53047
.kill杀进程.kill 8adc85f0 $$参数为EPROCESS地址
!peb观察进程环境块!peb
dt观察数据结构dt nt!_EPPROCESS
dt ntdll!_PEB @$peb -r
.tlist列进程.tlsit $$列的是调试器所在的系统的进程
线程~显示线程~
~*
切换线程~0s $$ 0 是线程序号62,75
~~[14d8]s  $$ 14d8为线程的ID128
针对一个或多个线程执行命令~* kvl73
~*e ? @$tid;!gle126
~1k75
!teb显示线程环境块!teb311
.thread显示或切换线程(内核态).thread 80551d20151
.thread /p 87474da8159
!thread观察线程(内核态)!thread97
!thread 9383a03049,66
dt观察数据结构dt nt!_ETHREAD
dt _TEB -y Last127
dt _CONTEXT391
dt _CONTEXT 0007fd30391
!wow64exts.info运行在64位系统的32位线程信息!wow64exts.info
内存!address观察内存空间!address6
观察内存块属性!address 0728988a8
s搜索内存数据s -u 10000 L8000000 "当年在交大"
d显示内存数据db e1c52ce014
da 000000000a4a9640215
dd @ebx 1l75
dd bc74ed08 1l66
dd 805490c4 + 8 1l154
dU /c 50 poi(0423ed44 + 8)114
dS fc8d3528347
du nt!NtInitialUserProcessBuffer349
db 0xe17734ac + 14356
dt按类型显示dt _GUID 01f1b43426
dt _EXCEPTION_POINTERS 74c97038 -r41
e编辑内存数据ew 029ffcc $$ 按字(Word)编辑029ffcc开始的内存7
eb 001b5942-8 ff fe10
ed f655cfb4 f655d7dc88
!dd读物理地址!dd ffffffe0
!ed写物理地址!ed ffffffe0 80000000
!vtop虚拟地址转换到物理地址!vtop 0 bafde064154
!pte显示页表项!pte f655cfb489
!memusage显示物理内存使用情况!memusage
!pool显示内核池信息!pool e326c000
!vad观察进程的地址空间!vad 8a760500
!sdbgext.hwnd观察窗口句柄!sdbgext.hwnd 001506c466
!heap显示堆信息!heap 01670000 -A387
dt观察数据结构dt _heap_entry 0167fc10398
!gflag观察或者启用堆的调试支持!gflag
!gflag + hpa
k函数调用序列kn 10025,67
kn142
k = f655d7dc aebc3e5a aebc3e5a 9989
.frame切换当前栈帧.frame /c c26
dds显示数据和符号dds 80a056e0287
dv显示局部变量dv -V
寄存器r读写寄存器r cr385
r cs,ds,es,fs,gs,ss309
r cr291
r eip= 0042D69E301
r ecx = poi(ecx);r ecx;z(ecx!=0)181
rdmsr读MSR寄存器rdmsr 19c307
上下文.ecxr切换到异常上下文.ecxr139
.tss切换到指定TSS.tss 2887
.trap切换到陷阱帧.trap 8089a570
.effmach切换32/64位上下文.effmach x86
.effmach amd64
断点bp软件断点"bp KERNELBASE!CreateFileW+0x5""dU /c 50 poi(@ebp + 8);gu;114
r eax;if(@eax<0){.echo hit}.else{gc}"" "
113
bp KERNELBASE!CreateFileW+0x5"dU /c 50 poi(@ebp+8);gc"
ba硬件断点bp `d4dtest!d4dtestdlg.cpp:196`149
bm成批设置断点ba w4 0006fc74
bd/be/bc/bl管理断点bm /a nt!Dbgk*
执行和跟踪g恢复执行bl118
g
p单步执行gu $$ 返回到父函数
p
p "dv" $$单步后自动执行dv命令
t单步跟踪pc $$单步到下一条call指令
t
tc $$跟踪到下一条call指令
wt自动跟踪tb $$跟踪到下一条分支指令295
反汇编u反汇编wt - 1385
uf反汇编整个函数u nt!PsGetCurrentProcessId143
ub反向反汇编uf RtlLeaveCriticalSection141
a汇编ub 773c78e9
死锁!locks扫描关键区(用户态)或ERESOURCE(内核态)a<地址>76
!locks
!cs观察关键区77
!alpc观察ALPC端口!cs -151
dt观察数据结构!alpc /m 9322a23077
dt _RTL_CRITICAL_SECTION
dt _ERESOURCE
处理器!pcr管理处理器控制区dt _KEVENT -r149
dg观察段描述符!pcr150
!idt观察IDT表dg @fs314
!cpuid显示CPU型号!idt -a
!cpuinfo显示CPU属性(内核态)!cpuid
!irql显示保存的IRQL!cpuinfo
dt观察数据结构!irpl
驱动程序!drvobj显示和观察驱动对象dt -KPCR160
!devobj观察设备对象!drvobj ser2pl162
!devstack观察设备栈!devobj 85163500161
!devnode观察设备节点!devstack 85163500161
!irp观察IRP!devnode 0 1163
dt观察数据结构!irp 85163e70165
dt _IO_STACK_LOCATION 85879d60
dt _IRP
dt _DRIVER_OBJECT
!arbiter显示资源分配情况dt _DEVICE_OBJECT297
!pci观察PCI空间!arbiter 2 $$物理地址的分配情况
!pcitree显示PCI设备!pci ff 0 2 0 0 ff
ib/iw/id读I/O端口!pcitree
ob/ow/od写I/O端口ib 510
!amliAMLI调试器ob 510 0a258,262
托管程序.loadby加载扩展命令模块!amli dns /s \_sb_.pci0.bat0129
.load加载扩展命令模块!loadby sos mscorwks236
!name2ee显示名字对应的对象信息.load clr10\sos.dll239
!ip2md显示程序地址对应的方法描述!name2ee clihello CliHello.CliHello.Main132
!threads观察线程的托管!ip2md 0x7ff 001c0dbd129
!crlstack托管栈回溯!threads129
!do显示托管对象!clrstack130
!bpmd设置断点!do 0000000002901750238
注册表!reg操作注册表!bpmd CliHello CliHello.CliHello.Main355
!reg openkeys "hklm\software\microsoft\windows nt\currentversion\winlogon"
!reg kcb e101a7a0355
!reg kvalue 0xe17734ac355
!reg cellindex 0xe1442920 721380356
调试事件sxe配置调试事件sxe ld:portabledeviceapi409
sxd ld
gn调试器不处理异常gn
gh调试处理异常gh
.lastevent显示上一次调试事件的信息.lastevent
远程调试.server将调试器升级为调试服务器.server tcp:port= 200058

安于此生整理制作。
重新排版:0xAA55
附言:我也是醉了!
table.png

windbg常用命令列表.7z (15.37 KB, 下载次数: 20)
回复

使用道具 举报

发表于 2020-9-3 14:38:29 | 显示全部楼层
谢谢大佬
回复

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-23 18:19 , Processed in 0.042637 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表