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
  • Cyber​​iafreak (线程和高级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器插件等