Windows平台的Windbg/x64dbg/OllyDbg/VisualGDB调试器简介以及符号文件*.pdb总结(★firecat推荐★)

一、Windbg

Windbg是微软开发的一套调试器中的组件。WinDBG属于内核级别调试器,不仅可以用来调试应用程序,也可以调试内核级的代码,如驱动程序。Windbg由于其丰富的命令和对Windows的原生支持还有其易用性,是其他其他调试器望尘莫及的。如果安装了Windows SDK,一般会带有windbg.exe,gflags.exe和appverif.exe,安装路径是:

Windows SDK v8.1

C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\windbg.exe

C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\windbg.exe

Windows SDK v10

C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe

C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\windbg.exe

注意,32位程序请使用32位windbg调试,64位程序用64位windbg调试。

gflags.exe和windbg.exe在同一个安装路径

WinDbg Preview

C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2001.2001.0_neutral__8wekyb3d8bbwe\DbgX.Shell.exe

AppVerifier

C:\Windows\System32\appverif.exe

C:\Windows\SysWOW64\appverif.exe

★WinDBG官网:

WinDbg windbg

Windows 调试工具(WinDbg、KD、CDB、NTSD) - Windows drivers | Microsoft Docs windbg

使用 WinDbg 预览版进行调试 - Windows drivers | Microsoft Docs WinDbg Preview 新版本,仅适用于Win10

https://www.microsoft.com/en-us/download/details.aspx?id=20028 AppVerifier

Common WinDbg Commands (Thematically Grouped)

如果 Windows SDK 已安装,但是没有windbg,请打开 "设置",导航到 "应用" & 功能",选择" Windows 软件开发工具包",然后依次单击"修改"+“Add”以更改安装以添加Windows 调试工具.

我们用AppVerifier主要是为了打开页堆(page heap)调试功能,你也可以用系统工具 gflags.exe 来做同样的事

打开gflags,菜单Image File,Image填exe名字,不要全路径,选上Create user mode stack trace database;

或者使用命令行,达到同样效果:

C:\Program Files (x86)\Windows Kits\10\Debuggers\x64>gflags.exe -i SmartDispenser.exe +ust

★Windbg特色功能:

1. 支持应用层程序调试(可以源码调试)

2. 支持内核层调试。如调试驱动和操作系统

3. 支持远程调试

4. 分析dump文件

5. 查看本地操作系统信息

6. 丰富的命令(可以看到你用其他工具看不到的信息)

不足:

1. 界面不是太友好

与vc调试器比较:源码调试器首选vc

与ollydbg比较:无源码应用层程序调试首选ollydbg

★远程调试应用程序
准备:
1. 远程机安装windbg

2. 本地安装windbg

远程机使用TCP链接设置:
设置windbg启动命令行:windbg.exe -server tcp:port=123456 (123456是端口号,这个可以随意设置)
然后通过命令行的方式启动,附加或启动一个需要调试的进程
本地机设置:
设置windbg启动命令行:windbg.exe -remote tcp:server=172.168.1.3,port=123456 (172.168.1.3是远程机器IP, 123456是端口号,一定要与远程机一致),然后通过命令行的方式启动

★姊妹篇

Qt Creator的CDB调试器--使用技巧与心得,重点是Symbols Path设置

VC++内存泄漏检测方法(5):使用强大的Windbg工具,重点是Symbols Path设置

★书籍推荐

张银奎,高端调试 高端调试

张银奎《软件调试》

张银奎《软件调试(第二版)

熊力,lixiong - 博客园Windows用户态程序高效排错 全文PDF - lixiong - 博客园

熊力《Windows用户态程序高效排错

熊力《Windows用户态程序高效排错》勘误和补充

赫瓦特 (美) 《Windows高级调试》

★博文推荐

Windbg新手入坑指南

基于WinDbg的内存泄漏分析

从Ollydbg说起-----WinDbg用户态调试教程

二、OllyDbg(简称OD)

OllyDbg是用户态调试器,具有一定的智能分析能力,但与IDA(智能反汇编分析器)的分析能力相比,不是一个量级的。但它的调试器功能非常完善。所以通常用IDA来阅读代码,而用Olly来动态跟踪程序。

OllyDbg:3级调试工具,与当年的TRW2000(RING 0级调试工具)齐名,用的人很多。上手容易,教程如牛毛。只能用来搞32位程序,作者已不再更新。
x64dbg:新型的调试工具32位/64位都能搞,相对bug多,教程少;但是越来用的人越多。周更新。

WinDbg:一般调试微软内存/蓝屏工具,一般人玩不动。
IDA:可动态、静态、流程图式分析与调试,占用资源也最多。

OllyDbg v1.10

https://www.52pojie.cn/thread-350397-1-1.html 52pj-Ollydbg

三、x64dbg

x64dbg是Windows下的32/64位调试器,开源。x64dbg采用 QT 平台编写,支持多国语言。熟悉OllyDbg的用户应该很容易上手。x64dbg整体前景比较乐观,功能有待加强,但界面简洁明晰、操作方便快捷,设计人性化等。通过这款调试工具用户可以分析64位的应用,这是OllyDbg所不能做到的,它只能分析32位应用,所以想要分析64位应用,你可以使用小编带来的这款调试工具,是一款专门用于分析64位应用的调试软件。支持类似C的表达式解析器、全功能的DLL和EXE文件调试、IDA般的侧边栏与跳跃箭头、动态识别模块和串、快反汇编、可调试的脚本语言自动化等多项实用分析功能,可以帮助你完成64位应用的分析。

x64dbg

https://github.com/x64dbg/x64dbg

https://github.com/mrexodia/TitanHide

https://github.com/mrexodia/WorkraveQt

https://www.52pojie.cn/thread-1094207-1-1.html

https://www.lanzous.com/i8mzfrc 原版+插件下载,52pj

四、VisualGDB

VisualGDB - Serious cross-platform support for Visual Studio

在Linux下调试工程是一件很苦逼的事情,不像在Windows下用Visual Studio那样简便,但是最近发现一件神器可以让Linux下的程序一样可以在Windows下的Viusal Studio中调试起来。VisualGDB通过SSH使得Windows下的VS能够连接到Linux的环境,只要配置好头文件以及库文件等相关目录即可。

x.微软符号文件

Symbol information

1、下载方法

方法1:  使用vs进行下载,当然必须是vs2003以后的版本,通过attach到一个进程中或者启动一个程序进行调试。

方法2: 使用Windbg进行下载,同样是attach或run一个程序,Ctrl+S设置一下符号路径,然后使用命令.reload

2、设置调试器Symbols路径
WinDBG、VC.Net及以上版本都可以通过设置环境变量指定Symbols路径,并都能根据环境变量设置自动去微软服务器拉取window系统symbols。

右键我的电脑—〉“属性”—〉“高级系统设置”—〉“高级”—〉“环境变量”—〉“系统变量”,新建两个环境变量:

_NT_SYMBOL_PATH_NT_ALT_SYMBOL_PATH

_NT_SYMBOL_PATH=C:\Symbols;srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
_NT_ALT_SYMBOL_PATH=cache*C:\Symbols
_NT_SYMBOL_PROXY=127.0.0.1:8100

这样设置后,调试器首先会到_NT_ALT_SYMBOL_PATH指定的共享路径中去寻找pdb文件,并把找到的文件缓存到C:\Symbols目录下,下次访问时就不用到共享目录中查找,这样可以提高速度。当在_NT_ALT_SYMBOL_PATH中找不到时会查看路径_NT_SYMBOL_PATH,接着自动从微软官方网站下载windows系统的pdb文件,并缓存到共享目录C:\Symbols中,缓存的好处是下次直接从共享目录拉取,不用再跳到微软网站拉取。
注意:设置以上变量后第一次使用Windbg或者VS调试时,因为要下载windows系统的pdb文件,可能要等待一段时间(Windbg会在命令行窗口右下角显示“BUSY”状态,但也有可能不显示状态,VS在状态栏会显示Loading symbols for XXX),并且pdb文件都相对比较大,视网速快慢,可能要等待十几分钟到几个小时。另外在测试中发现,WinDbg下载symbols的速度比VS快得多。

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要下载Win7 x64的符号文件,可以按照以下步骤进行操作: 1. 打开微软官方网站并登录:https://www.microsoft.com/ 2. 在搜索栏中输入“Win7 x64符号文件”或类似的关键词,并点击搜索按钮。 3. 在搜索结果中找到“Win7 x64符号文件下载”或类似的链接,点击进入该页面。 4. 在下载页面中,选择合适的下载选项,通常会提供多个下载源。 5. 点击下载按钮,等待下载程序完成。 6. 一旦下载完成,找到下载文件,并解压缩到合适的目录中。 7. 在Win7操作系统中,打开“控制面板”并选择“系统和安全”。 8. 在“系统”下的“高级系统设置”中,点击“环境变量”按钮。 9. 在“用户变量”或“系统变量”中,找到名称为“_NT_SYMBOL_PATH”的变量,双击进行编辑。 10. 在编辑框中,输入符号文件所在的目录路径,多个路径之间用分号分隔。 11. 确认并保存环境变量的更改。 12. 重新启动计算机,使环境变量的更改生效。 通过以上步骤,您就可以成功下载和配置Win7 x64符号文件,以便在调试和分析系统问题时使用。请注意,微软官方网站提供的符号文件是经过验证的,最为可靠和安全。 ### 回答2: 要下载Win7 x64符号文件,您可以按照以下步骤进行操作: 1. 打开浏览,并转到Microsoft的官方网站(https://www.microsoft.com/zh-cn/)。 2. 在网站的搜索栏中,输入“Windows 7符号文件下载”。 3. 点击搜索按钮来检索相关的结果。 4. 在搜索结果页面中,找到并点击“Windows 7符号文件下载”的链接。 5. 进入下载页面后,您需要先选择操作系统的版本,这里选择Win7 x64。 6. 一旦选择了正确的版本,您将看到可用的符号文件列表。 7. 根据您的需求,选择需要下载的符号文件。通常,您可以选择下载整个符号文件集。 8. 点击下载按钮以开始下载所选的符号文件。 9. 下载过程可能需要一些时间,这取决于您的网络速度和所选文件的大小。 10. 在下载完成后,您可以通过双击文件或使用解压缩软件将其解压缩到合适的目录中。 请注意,符号文件是用于调试Windows操作系统的工具,一般情况下只对开发人员和高级用户有用。如果您只是常规用户或不从事软件开发等相关工作,则无需下载和安装这些符号文件。 ### 回答3: 要下载Win7 x64符号文件,你可以按照以下步骤操作: 1. 打开微软的符号文件下载中心(Symbol Server)网页。 2. 在网页上找到Win7 x64符号文件的下载选项。一般情况下,你需要在网页的搜索栏中输入"Windows 7 x64"来寻找相关的符号文件。 3. 点击下载链接,选择一个合适的下载路径来保存符号文件。请确保你有足够的磁盘空间来存放这些文件,因为它们的大小可能会相当大。 4. 下载完成后,你将会得到一个文件或者一个压缩文件,具体取决于下载的资源。如果你下载的是一个压缩文件,解压缩文件之后将得到一系列的符号文件。 5. 你可以将这些符号文件复制到你的Win7 x64系统的符号文件路径中。符号文件路径可以在WindbgVisual Studio等调试工具的设置选项中找到。在这个路径中,调试工具将会自动查找并加载所需的符号文件。 6. 重新启动你的调试工具,并打开你需要进行调试的Win7 x64程序。在调试过程中,调试工具将会使用下载的符号文件来帮助你分析和解决问题。 请注意,下载符号文件可能需要一些时间,具体取决于你的网络连接速度和符号文件的大小。如果下载速度较慢,你可以尝试寻找其他来源或使用下载工具来提高下载速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值