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 ... herehereherehere

  • 工作区(了解它们的工作方式)
  • 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

  • 一个示例脚本:
    $$ 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
    

    命令备忘单
  • 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"
  • UserDumpinstructions(非常旧的工具)
  • UserModeProcessDumperinstructions
  • 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的好教程吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4946685/

    10-16 17:34