Windbg及Dump文件分析方法

本文详细介绍了WinDbg用户模式调试的步骤,包括无代码和有代码情况下的调试方法,以及如何设置和验证断点。此外,文章讨论了WinDbg中的符号文件及其重要性,强调了正确匹配符号文件对调试的重要性。最后,文章概述了用户模式Dump文件的类型,如完整用户模式Dump和Minidump,并解释了如何使用WinDbg分析Dump文件。
摘要由CSDN通过智能技术生成

1.WinDbg

1.1WinDbg介绍

WinDbg全称Debugging Tools for Windows,是windows平台下的调试工具。

获取Windbg的三种途径:

(1)在Visual Studio安装时安装Windows Driver Kit(WDK)。WDK中包含WinDbg。

(2)安装Windows Software Development Kit (SDK)。SDK中包含WinDbg。下载地址

(3)如果只下载单独的WinDbg,先下载SDK,在安装过程中选择“Debugging Tools for Windows”,同时勾掉其他选择框。

1.2用户模式的WinDbg

WinDbg有两种类型:内核模式调试器和用户模式调试器。内核模式用于调试Windows内核以及驱动程序。用户模式用于调试用户程序,本文主要介绍用户模式的调试器,内核模式调试器的使用方法可在微软官网查找。

1.2.1无代码情况下调试

(1)打开WinDbg.exe

(2)在File菜单中选择Open Executable, 在 Open Executable 对话框中选择notepad.exe(C:\Windows\System32),点击Open。

(3)在底部窗口中,输入命令:

.sympath srv*

窗口将输出以下内容:

Symbol search path is: srv*

Expanded Symbol search path is: cache*;SRV*https://msdl.microsoft.com/download/symbols

符号搜索路径指示WinDbg查找符号文件(PDB)的地方,通过符号文件调试器可以获取代码模块中的函数名称、变量名等信息。输入如下命令将通知WinDbg进行初始化搜索和加载符号文件动作:

.reload

(4)输入以下命令可查看Notepad.exe模块的符号

x notepad!*

如果看不到任何输出,在此输入.reload命令。

输入以下命令可查看Notepad.exe模块中包含main名称的符号

x notepad!*main*

窗口将输出以下内容:

00a31409          notepad!WinMain (<no parameter info>)

00a331c9          notepad!WinMainCRTStartup (<no parameter info>)

(5)输入以下命令可在notepad!WinMain上打断点:

bu notepad!WinMain

输入以下命令验证断点是否已经设置:

bl

窗口将输出以下内容:

     0 e Disable Clear  00a31409     0001 (0001)  0:**** notepad!WinMain

(6)输入以下命令运行Notepad:

g

Nopad将会运行到WinMain函数,并中断。输入以下命令可查看Notepad进程已加载模块列表:

lm

调试器窗口将输出以下内容:

start    end        module name

00a30000 00a60000   notepad    (pdb symbols)          C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\sym\notepad.pdb\BAF2EA337470437B9DF28CCDFD3EDEB22\notepad.pdb

6dfa0000 6dff1000   WINSPOOL   (deferred)            

6e1b0000 6e34e000   COMCTL32   (deferred)            

73730000 73739000   VERSION    (deferred)            

74f10000 74f1c000   CRYPTBASE   (deferred)            

74f20000 74f80000   SspiCli    (deferred)            

74f80000 74ffb000   COMDLG32   (deferred)            

75100000 75191000   OLEAUT32   (deferred)            

75300000 75f4b000   SHELL32    (deferred)            

76130000 76220000   RPCRT4     (deferred)            

76220000 762c1000   ADVAPI32   (deferred)            

76510000 76610000   USER32     (deferred)            

76640000 76687000   KERNELBASE   (deferred)            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值