WinDbg的好教程?
有很好的教程来展示如何使用WinDbg ?
基本教程和用法演示
- 安装和configurationWinDbg(Windowsdebugging工具)
- Mike Taulty – WinDbg一词
- WinDbg教程
- Windowsdebugging器:第1部分:WinDbg教程
不同的方法来“启动”/附加WinDbg
- 开始使用WinDbg进行debugging(包括如何debugging.msi)
- 如何debuggingWindows服务
- 设置Windowsdebugging
- debuggingSQL Server … 在 这里 , 在这里 , 在这里
工作区(了解它们如何工作)
- debugging您的debugging器:为WinDbgdebugging创build一个自定义工作区
- 在WinDbg中查找工作区如何工作
Cmdtree
允许您定义debugging器命令的“菜单”,以便轻松访问常用的命令,而不必记住简洁的命令名称。 不必把所有的命令定义放到同一个cmdtree文本文件中….你可以把它们分开,并加载多个命令(然后它们会得到自己的窗口)。
- 惊人的帮手.cmdtree
- 如何在WinDbg启动时创buildcmdtree窗口
- 使用.cmdtree更容易在WinDbg中debugging.NET转储
- Microshaoft Cmdtree
- 使用.cmdtree自定义用户界面中的特殊命令执行命令
启动脚本
您可以在命令行上使用-c选项在启动WinDbg时自动运行WinDbg脚本。
给出打开DML(debugging器标记语言)模式的机会,加载特定的扩展,设置.NETexception断点,设置内核标记(例如,当内核debugging时,可能需要更改DbgPrint掩码,以便看到跟踪信息…编辑器!Kd_DEFAULT_Mask 0xFFFFFFFF),加载cmdtrees等
示例脚本:
$$ Include a directory to search for extensions $$ (point to a source controlled or UNC common directory so that all developers get access) .extpath+"c:\svn\DevTools\WinDBG\Extensions" $$ When debugging a driver written with the Windows Driver Framework/KMDF $$ load this extension that comes from the WinDDK. !load C:\WinDDK\7600.16385.1\bin\x86\wdfkd.dll !wdftmffile C:\WinDDK\7600.16385.1\tools\tracing\i386\wdf01009.tmf $$ load some extensions .load msec.dll .load byakugan.dll .load odbgext.dll .load sosex .load psscor4 $$ Make commands that support DML (Debugger Markup Language) use it .prefer_dml 1 .dml_start $$ Show NTSTATUS codes in hex by default .enable_long_status 1 $$ Set default extension .setdll psscor4 $$ Show all loaded extensions .chain /D $$ Load some command trees .cmdtree c:\svn\DevTools\WinDBG\cmdtree\cmdtree1.txt .cmdtree c:\svn\DevTools\WinDBG\cmdtree\cmdtree2.txt $$ Show some help for the extensions !wdfkd.help !psscor4.help .help /D
命令作弊表
- 崩溃转储分析海报v3.0
- SOS Cheat Sheet(.NET 2.0 / 3.0 / 3.5)
- WinDbg备忘单(Dev of Art)
- WinDbg内核模式扩展命令抽认卡
扩展(扩展支持的命令/function的范围)
- AddSym
– 允许在IDA和WinDbg之间传输符号名称 - bigLasagne(bldbgexts&blwdbgue)
– 汇编语法突出显示和驱动程序映射工具) - BigLib数字阅读器
- 的Byakugan
– 检测antidebugging方法,vista堆可视化/仿真,在内存中跟踪缓冲区 - CmdHist
– logging您在debugging会话中执行的每个命令,以便轻松地重新执行 - 核心分析器
– 检查堆结构的腐败,检测线程共享的对象等 - dom WinDbg扩展
– (!stlpvector,!idt,!unhex,!grep等) - dumppe
– 从内存转储PE文件 - 图像查看器扩展(Vladimir Vukicevic)
- 英特尔®UEFI开发套件debugging工具
– debuggingUEFI固件 - leaktrap
– GDI / USER处理跟踪器以帮助检漏 - Mona (需要PyKD)
– 一组命令来帮助进行高级分析/查找攻击 - MSEC
– 提供自动碰撞分析和安全风险评估 - narly
– 列出加载模块的信息,如使用SafeSEH,ASLR,DEP,/ GS(缓冲区安全检查) - netext (罗德尼维亚纳)
– (!wservice – 列出WCF服务对象,!wconfig – 显示.config行,!whttp – 列表HttpContexts,!wselect /!wfrom – 支持SQL查询数组) - ODbgExt
– 打开debugging器扩展 - OllyMigrate
– 将debugging对象传递给另一个debugging器而不重新启动 - Psscor2
– 帮助debugging.NET 2.0托pipe代码的SOS超集 - Psscor4
– 帮助debugging.NET 4托pipe代码的SOS超集 - PyDBGExt
– 允许使用Python脚本 - PyKD
– 允许Python用于脚本WinDbg - sdbgext(Nynaeve)
– (!valloc,!vallocrwx,!heapalloc,!heapfree,!remotecall,!remotecall64,!loaddll,!unloaddll,!close,!killthread,!adjpriv,!ret) - SieExtPub
现在已经内置在ext.dll的WinDbg中 - SOSEX
– 更多的命令帮助debugging托pipeNET 2.0或4.0代码 - SPT / SDBGExt2(Steve Niemitz)
– (!DumpHttpContext,!DumpASPNetRequests,!DumpSqlConnectionPools,!DumpThreadPool等) - Uniqstack
– 源到debugging器扩展(需要OSR在线帐户来访问它) - viscope
– 代码覆盖图 - 等待链式遍历/ wct.dll(CodePlexdebugging扩展
– 显示应用程序线程的等待链(帮助find死锁 ) - windbgshark
– 集成了Wireshark协议分析器来启用VMstream量操作和分析 - WinDbg扩展(Sasha Goldstein)
– Tracer,WCT,heap_stat,bkb,traverse_map,traverse_vector) - WinDbg突出显示 (ColorWindbg.dll)(使用Google翻译来翻译链接)
– 汇编语言语法突出显示
写下你自己的扩展
- 在C ++中开发WinDbg ExtEngCpp扩展
- 交易工具:第四部分 – 开发WinDbg扩展DLL
- debugging器扩展的基础:短期的努力,长期的收益
debugging托pipe代码
- 打破例外
- 打破特定的CLR例外
- 在WinDbg中debugging.NET框架源代码
- 使用WinDbgdebugging托pipe代码中的exception
- 使用WinDbg和SOS.dlldebugging托pipe代码
- 用WinDbg进行debugging。 应用程序中的死锁
- 用WinDbgpipe理debugging。 介绍和索引
- 在WinDbg中为在启动时崩溃的应用程序设置.NET断点
脚本(C#,PS,Python和WinDbg)
- KDAR(内核debugging器防Rootkit)
– WinDbg脚本的集合 - 系统BSOD脚本/处理应用程序
- WinDbg脚本库
– WinDbg脚本的集合 - 脚本MDbg和DbgHostLib
– 允许托pipe代码编写托pipedebugging器(MDBG)和DbgEng脚本 - ExtCS
– 允许通过C#脚本控制WinDbg - PowerDBG
– 允许通过PowerShell脚本控制WinDbg - Pykd
– 允许通过Python脚本控制WinDbg - windbglib
– 围绕WinDbg的pykd扩展的Python包装库,模仿immlib(所以你可以使用最初为Immunity Debugger编写的脚本)
debugging器/工具使用dbgeng.dll API / WinDbg工具
- 一个简单的基于Dbgeng的用户模式debugging器
- Acorns.Debugging NET死锁检测器 (使用cdb.exe)( 下载 )
- CLR托pipedebugging器 (MDBG)
- DbgHost – 如何控制debugging引擎
- debugging诊断工具v1.2 (DebugDiag), 版本2.0 + DebugDiag博客
- Dynamorio – 可以与WinDbg交互的dynamic二进制工具工具
- IDA + WinDbg插件
- GUI WinDbg
- LeakShell (findpipe理泄漏)
- mdbglib – 托pipedebuggingAPI
- PyDbgEng
– Windowsdebugging引擎的Python包装 - SOSNET – 一个专注于使用SOS扩展并支持C#脚本的WinDbg Fork / alternative shell
- SOSNET O2 fork – 使用Roslyn为C#REPL(read-eval-print-loop)脚本引擎的SOSNET分支
- VDB / Vivisect (kenshoto) – 在WinDbg上提供了一个跨平台的debuggingAPI
- WinAppDbg + Heappie-WinAppDbg
- 编写一个基本的Windowsdebugging器
不同的方法来生成崩溃转储文件进行事后分析
- DebugDiag 2.0
- 转储备忘录
– 包括如何从Hyper-V,VMware ESX和XenServer VM生成转储。 - Citrix SystemDump
- 键盘按键组合
- MiniDumpWriteDump
– (通过您的应用程序中的Win32 API调用)。 (C#应用程序示例) - NMI开关
(基于硬件的function来生成NMI …通常在高端服务器(例如HP)上find,或者您可以获得附加PCI卡“通用PCI转储开关” )。 微软NMI技术背景 。 - Procdump
- 菜单系统 ? 高级系统设置 ? 启动和恢复
( registry信息 ),
( 如何configuration完整(完整)内存转储 ),
( 如何启用完整内存转储 ),
( 当PC有大量内存时,如何在Windows 7上启用完整内存转储…当超过2 GB的内存时通常不可用 ) - 任务pipe理器“创build转储文件”
- UserDump , 说明 (很老的工具)
- UserModeProcessDumper , 说明
- Visual Studio“Save Dump As …”
- WER(Windows错误报告….本地转储)
- WinDbg的
转储分析工具
- BlueScreenView – 在BSOD之后find由Windows保存的小型转储.dmp文件,并提取有关导致崩溃的信息
- Debug.Analyzer (可以分析转储文件和插件可以用.NET编写)
- SAD – 转储后简单 (事后分析)
- 波动性 – 分析转储文件中logging的“内存”的框架( 备忘单 )
转储相关的工具
- Citrix dumpcheck – 检查转储文件的一致性(看起来像是被遗弃的链接 + 链接 )
- dumpchk (debugging工具的一部分) – 检查转储文件的一致性
- MoonSols Windows内存工具包 (以前称为windd ) – 将各种原始内存转储文件转换为兼容WinDbg的dmp文件
- vm2dmp – Microsoft Hyper-V VM状态到内存转储
- vmss2core – 将VMware快照文件转换为核心转储文件( 下载 ),( 说明 )
内核debugging虚拟机
- VMKD – 虚拟机KD扩展
- VirtualKD – (在VMware / VirtualBox中托pipe的操作系统的内核debugging器支持)
影片
- .NET Cracking 101#2 – WinDbg基础知识
- 用于生产环境的.NETdebugging(Channel9)
- dotnetConf – 使用WinDbg和SOS进行高级debugging
- David Truxall“用WinDbg进行debugging”
- Mike Taultydebugging内存泄漏
- oredev 2009会话:用WinDbgdebugging.NET应用程序
- Pluralsight高级Windowsdebugging
(加上Pluralsight的其他各种) - Tess Ferrandez WinDbg(Channel9)
- TiGa在IDA Pro上的video教程系列
博客
- 高级.NETdebugging
- 你所有的基地都属于我们 (Sasha Goldstein)
- 分析-V
- ASP.NETdebugging
- Cyberiafreak (线程和高级Windows编程和debugging)
- debugging分析器.NET
- debugging和超越
- 在线debugging专家杂志
- debugging工具箱 (WinDbg脚本,debugging和故障排除工具和技术,以帮助您隔离软件问题。)
- 解密我的世界
- greggm的WebLog
- 张俊峰的Windows编程笔记
- 克里斯托弗的花絮
- Mark Russinovich的博客
- Mike Stalls .NETdebugging博客
- Naveen的博客
- 永远不要怀疑你的debugging器(卡罗)
- 从黑暗的angular落注意到
- Ntdebugging博客 (Microsoft Global Escalation Services团队)
- Nynaeve。 Windows中的冒险debugging和逆向工程
- PFE开发者注意事项
- Visual Studiodebugging器团队
- Winkerb通过Volker von Einem
高级文章和教程资源
- WinDbg中的高级debugging技术
- 为MS.Net和Windowsdebugging应用程序(PowerPoint幻灯片)
- 使用WinDbgdebuggingSTL容器
- debugging教程1-7(CodeProject-Toby Opferman)
- Debugging.tv
- 开发者WinDbg已标记文章
- 傅博士的安全博客 – 恶意软件分析教程 – 逆向工程方法
- 利用写作教程第5部分:debugging器模块和插件如何加速基本开发的发展
- 狩猎Rootkit
- 使用Dell Windowsdebugging器实用程序(DWDU)进行远程Microsoft Windows服务器操作系统内核debugging ( DELL(TM)Windows(R)Debugger Utility 1.1自述文件 )
替代debugging器
- Bokken – ( Inguma )(radare的GUI)
- BugDbg
- debugging++ (尚未发布)
- Debuggy
- 变色环0debugging器 ( 下载 )
- edb (Linux)
- FDBG
- GoBug
- 阴影(Ring 3debugging器,反debugging器检测策略)
- Hopper (Linux,OS X和Windows)(Windowsdebugging目前未实现)
- Hyperdbg
- IDAdebugging器
- ImmunityDebugger
- Nanomite
- 黑曜石(非侵入式debugging器)
- OllyDbg的
- PEBrowse
- RaceVB6 (VB6 P-Codedebugging器)
- radare
- radare2ui (用于radare的GUI)
- Rasta Ring 0debugging器 (RR0D)
- Syser内核debugging器
- TRW 2000 (非常古老的debugging器大约W9x)+ dions插件归档
- VisualDuxdebugging器
- Wintruder (可扩展debugging器)
- WKTVDebugger (用于Visual Basic P代码的debugging器)( 下载 )
- x64_dbg
- Zetadebugging器
其他链接
- 合作RCE工具库
– debugging器和系统级工具 - cr4zyserb
– 插件和其他debugging工具 - 如何编写Windowsdebugging器参考(Devon Straw)
– 如果要编写自己的debugging程序,则需要详细信息,例如PDB文件格式,.DMP文件格式,PE文件结构,如何logging堆栈跟踪等等。 - Tuts4You
– 解包器,IDA,OllyDBG,免疫debugging器插件等