This question's answers are a community effort。编辑现有答案以改善此职位。它目前不接受新的答案或互动。
有很好的教程来演示如何使用WinDbg吗? Installing and Configuring WinDbg (Windows Debug Tools) Mike Taulty - A word for WinDbg WinDbg Tutorials Windows Debuggers: Part 1: A WinDbg Tutorial
“启动” /附加WinDbg的不同方法
Start Debugging with WinDbg (includes how to debug an .msi) How to debug a Windows service Setting up Windows Debugging 调试SQL Server ... here,here,here,here
工作区(了解它们的工作方式)
Pimp up your debugger: Creating a custom workspace for WinDbg debugging Uncovering How Workspaces Work in WinDbg
Cmdtree
允许您定义调试器命令的“菜单”,以方便访问常用命令,而不必记住简洁的命令名。不必将所有命令定义都放在同一个cmdtree文本文件中....您可以将它们分开并加载多个(它们然后获得自己的窗口)。
Amazing helper .cmdtree How do I make a cmdtree window dock at startup in WinDbg Making it easier to debug .NET dumps in WinDbg using .cmdtree Microshaoft Cmdtree Special Command—Execute Commands from a Customized User Interface with .cmdtree
启动脚本
启动WinDbg时,可以在命令行上使用-c选项自动运行WinDbg脚本。
提供了打开DML(调试器标记语言)模式,加载特定扩展名,设置.NET异常断点,设置内核标志的机会(例如,在进行内核调试时,您可能需要更改DbgPrint掩码,以便看到跟踪信息.... ed nt !Kd_DEFAULT_Mask 0xFFFFFFFF),加载cmdtrees等。
http://yeilho.blogspot.co.uk/2012/10/windbg-init-script.html Take Control of WinDbg
一个示例脚本:
命令备忘单
Crash Dump Analysis Poster v3.0 SOS Cheat Sheet (.NET 2.0/3.0/3.5) WinDbg cheat sheet (Art of Dev) WinDbg Kernel-Mode Extension Commands Flashcards
扩展(扩展支持的命令/功能的范围)
AddSym-允许在IDA和WinDbg之间传递符号名称 bigLasagne (bldbgexts & blwdbgue)-汇编语法突出显示和驱动程序映射工具) BigLib Number Reader Byakugan-检测反调试方法,vista堆可视化/仿真,跟踪内存中的缓冲区 CmdHist-记录您在调试 session 中执行的每个命令,以便您可以轻松地重新执行 Core Analyzer-检查堆结构是否损坏,检测线程共享的对象,等等。 dom WinDbg Extension-(!STLpvector,!idt,!unhex,!grep等) dumppe-从内存中转储PE文件 Image Viewer Extension (Vladimir Vukicevic) Intel UEFI Development Kit Debugger Tool-调试UEFI固件 leaktrap-GDI / USER句柄跟踪器,有助于泄漏检测 Mona(需要PyKD)-一组有助于高级分析/查找漏洞的命令 MSEC-提供自动崩溃分析和安全风险评估 narly-列出有关已加载模块的信息,例如是否使用SafeSEH,ASLR,DEP,/ GS(缓冲区安全性检查) netext(Rodney Viana)-(!wservice-列出WCF服务对象,!wconfig-显示.config行,!whttp-列出HttpContext,!wselect /!wfrom-支持类似数组查询的SQL) ODbgExt-打开调试器扩展 OllyMigrate-将调试对象传递给另一个调试器,而无需重新启动 Psscor2-SOS的超集,用于协助调试.NET 2.0托管代码 Psscor4-SOS的超集,用于协助调试.NET 4托管代码 PyDBGExt-允许使用Python脚本 PyKD-允许使用Python编写WinDbg脚本 sdbgext (Nynaeve)-(!valloc,!vallocrwx,!heapalloc,!heapfree,!remotecall,!remotecall64,!loaddll,!unloaddll,!close,!killthread,!adjpriv,!ret) SieExtPub-旧版扩展名...现在已在ext.dll中内置到WinDbg中 SOSEX-用于帮助调试托管的NET 2.0或4.0代码的更多命令 SPT/SDBGExt2 (Steve Niemitz)-(!DumpHttpContext,!DumpASPNetRequests,!DumpSqlConnectionPools,!DumpThreadPool等) Uniqstack-调试器扩展的来源(需要OSR在线帐户访问) viscope-代码覆盖图 Wait Chain Traversal/wct.dll (CodePlex Debugging Extensions-显示应用程序线程的等待链(帮助查找deadlocks) windbgshark-集成Wireshark协议(protocol)分析器以启用VM流量操纵和分析 WinDbg Extensions (Sasha Goldstein)-示踪剂,WCT,heap_stat,bkb,traverse_map,traverse_vector) WinDbg Highlight(ColorWindbg.dll)(使用Google翻译翻译链接)-突出显示 的汇编语言语法
编写自己的扩展程序
Developing WinDbg ExtEngCpp Extension in C++ Tools of the Trade: Part IV - Developing WinDbg Extension DLLs The Basics of Debugger Extensions: Short Term Effort, Long Term Gain
调试托管代码
Breaking on an Exception Breaking on specific CLR Exception Debugging .NET framework source code within WinDbg Debugging exceptions in managed code using WinDbg Debugging managed code using WinDbg and SOS.dll Debugging with WinDbg. Deadlocks in Applications. MANAGED DEBUGGING with WinDbg. Introduction and Index Setting .NET breakpoints in WinDbg for applications that crash on startup
脚本(C#,PS,Python和WinDbg)
KDAR (Kernel Debugger Anti Rootkit)-WinDbg脚本的集合 Sysnative BSOD Scripts/Processing Apps WinDbg Script library-WinDbg脚本的集合 Scripting MDbg and DbgHostLib-允许托管代码编写托管调试器(MDBG)和DbgEng 的脚本 ExtCS-允许通过C#脚本 控制WinDbg PowerDBG-允许通过PowerShell脚本 控制WinDbg Pykd-允许通过Python脚本 控制WinDbg windbglib-用于WinDbg的pykd扩展周围的Python包装器库,模仿了immlib(因此您可以使用最初为Immunity Debugger编写的脚本)
使用dbgeng.dll API / WinDbg工具的调试器/工具
A Simple Dbgeng Based User Mode Debugger Acorns.Debugging NET Deadlock Detector(使用cdb.exe)(download) CLR Managed Debugger(MDBG) DbgHost - How to control a debugging engine Debug Diagnostic Tool v1.2(DebugDiag),Ver 2.0 + DebugDiag Blog Dynamorio-可以与WinDbg 进行交互的动态二进制检测工具 IDA + WinDbg plugin GUI WinDbg LeakShell(查找托管泄漏) mdbglib - Managed Debug API PyDbgEng-Windows调试引擎 的Python包装器 SOSNET-WinDbg前叉/替代Shell,专注于使用SOS扩展并支持C#脚本 SOSNET O2 fork-SOSNET的 fork ,它将Roslyn用于C#REPL(读取-评估-打印-循环)脚本引擎 VDB/Vivisect(kenshoto)-提供跨WinDbg 分层的跨平台调试API WinAppDbg + Heappie-WinAppDbg Writing a basic Windows debugger
生成故障转储文件以进行事后分析的不同方法
DebugDiag 2.0 Dump Cheat Sheet-包括如何从Hyper-V,VMware ESX和XenServer VM生成转储。 Citrix SystemDump Keyboard Keypress Combination MiniDumpWriteDump-(通过应用程序内部的Win32 API调用)。 (Example for C# applications) NMI Switch(用于生成NMI的基于硬件的功能...通常在高端服务器上找到,例如HP,或者您可以获取附加PCI卡"Universal PCI Dump Switch")。 Microsoft NMI技术background。 Procdump Menu System ? Advanced System Settings ? Startup and Recovery(registry info),(how to configure a Complete (Full) Memory Dump),(how to enable Complete Memory Dump),(how to enable Complete Memory Dump on Windows 7 when PC has lots of memory...normally not available when more than 2 GB of memory) Task Manager "Create Dump File" UserDump,instructions(非常旧的工具) UserModeProcessDumper,instructions Visual Studio "Save Dump As…" WER (Windows Error Reporting....local dumps) WinDbg
转储分析工具
BlueScreenView-在BSOD之后找到Windows保存的minidump .dmp文件,并提取有关导致崩溃的信息 Debug.Analyzer(可以分析转储文件,并且可以在.NET中编写插件) SAD - Simple After Dump(尸体分析仪) Volatility-分析转储文件中记录的“内存”的框架(cheat sheet)
转储相关工具
Citrix dumpcheck-检查转储文件的一致性(看起来像废弃了link + link) dumpchk(调试工具的一部分)-检查转储文件 的一致性 MoonSols Windows Memory Toolkit(以前为windd)-将各种原始内存转储文件转换为WinDbg兼容的dmp文件 vm2dmp-Microsoft Hyper-V VM状态到内存转储转换器 vmss2core-将VMware快照文件转换为核心转储文件(download),(instructions)
内核调试虚拟机
VMKD-虚拟机KD扩展 VirtualKD-(VMware / VirtualBox中托管的操作系统的内核调试器支持)
影片
.NET Cracking 101 #2 - WinDbg basics .NET Debugging for the Production Environment (Channel9) dotnetConf - Advanced Debugging with WinDbg and SOS David Truxall "Debugging with WinDbg" Mike Taulty Debugging Memory Leaks oredev 2009 Session: Debugging .NET Applications with WinDbg Pluralsight Advanced Windows Debugging(以及Pluralsight的其他产品) Tess Ferrandez WinDbg (Channel9) TiGa's Video Tutorial Series on IDA Pro
网志
Advanced .NET Debugging All Your Base Are Belong To Us(Sasha Goldstein) Analyze-v ASP.NET Debugging Cyberiafreak(线程和高级Windows编程和调试) Debug Analyzer.NET Debug and Beyond Debugging Experts Magazine Online Debugging Toolbox(WinDbg脚本,调试和故障排除工具及技术,可帮助您隔离软件问题。) Decrypt my World greggm's WebLog Junfeng Zhang's Windows Programming Notes Kristoffer's tidbits Mark Russinovich's Blog Mike Stalls .NET Debugging Blog Naveen's Blog Never Doubt Thy Debugger (Carlo) Notes from a Dark Corner Ntdebugging Blog(Microsoft全局升级服务团队) Nynaeve. Adventures in Windows debugging and reverse engineering PFE Developer Notes for the Field Visual Studio Debugger Team WinDbg by Volker von Einem
高级文章和教程资源
Advanced Debugging Techniques in WinDbg Debugging Applications for MS.Net and Windows (PowerPoint Slides) Debugging STL Containers with WinDbg Debug Tutorials 1-7 (CodeProject-Toby Opferman) Debugging.tv Developmentor WinDbg Tagged articles Dr Fu's Security Blog - Malware Analysis Tutorials - Reverse Engineering Approach Exploit writing tutorial part 5 : How debugger modules & plugins can speed up basic exploit development Hunting Rootkits Remote Microsoft Windows Server OS Kernel Debugging Using Dell Windows Debugger Utility (DWDU)(DELL(TM) Windows(R) Debugger Utility 1.1 README)
替代调试器
Bokken-(Inguma)(radar的GUI) BugDbg Debug++(尚未发布) Debuggy Discoloured Ring 0 Debugger(download) edb(Linux) FDBG GoBug Hades (Ring 3 debugger with anti debugger detection strategy) Hopper(Linux,OS X和Windows)(当前未实现Windows调试) Hyperdbg IDA Debugger ImmunityDebugger Nanomite Obsidian (non-intrusive debugger) OllyDBG PEBrowse RaceVB6(VB6 P代码调试器) radare radare2ui(雷达的GUI) Rasta Ring 0 Debugger(RR0D) Syser Kernel Debugger TRW 2000(非常古老的调试器,大约在W9x左右)+ dions plugin archive VisualDux Debugger Wintruder(可扩展调试器) WKTVDebugger(Visual Basic P代码的调试器)(download) x64_dbg Zeta Debugger
其他连结
Collaborative RCE Tool Library-调试器和系统级工具 cr4zyserb-插件和其他调试工具 How to Write a Windows Debugger References (Devon Straw)-如果您想编写自己的调试器,则需要详细信息,例如PDB文件格式,.DMP文件格式,PE文件结构,如何记录堆栈跟踪等,等等。 Tuts4You-解包器,IDA,OllyDBG,Immunity Debugger插件等。
有很好的教程来演示如何使用WinDbg吗?
最佳答案
基本教程和用法演示
“启动” /附加WinDbg的不同方法
工作区(了解它们的工作方式)
Cmdtree
允许您定义调试器命令的“菜单”,以方便访问常用命令,而不必记住简洁的命令名。不必将所有命令定义都放在同一个cmdtree文本文件中....您可以将它们分开并加载多个(它们然后获得自己的窗口)。
启动脚本
启动WinDbg时,可以在命令行上使用-c选项自动运行WinDbg脚本。
提供了打开DML(调试器标记语言)模式,加载特定扩展名,设置.NET异常断点,设置内核标志的机会(例如,在进行内核调试时,您可能需要更改DbgPrint掩码,以便看到跟踪信息.... ed nt !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
命令备忘单
扩展(扩展支持的命令/功能的范围)
编写自己的扩展程序
调试托管代码
脚本(C#,PS,Python和WinDbg)
使用dbgeng.dll API / WinDbg工具的调试器/工具
生成故障转储文件以进行事后分析的不同方法
转储分析工具
转储相关工具
内核调试虚拟机
影片
网志
高级文章和教程资源
替代调试器
其他连结
关于windbg - WinDbg的好教程吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4946685/
10-16 17:34