一、Windbg
Windbg是微软开发的一套调试器中的组件。WinDBG属于内核级别调试器,不仅可以用来调试应用程序,也可以调试内核级的代码,如驱动程序。Windbg由于其丰富的命令和对Windows的原生支持还有其易用性,是其他其他调试器望尘莫及的。如果安装了Windows SDK,一般会带有windbg.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
AppVerifier
C:\Windows\System32\appverif.exe
C:\Windows\SysWOW64\appverif.exe
★WinDBG官网:
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/ windbg
https://www.microsoft.com/en-us/download/details.aspx?id=20028 AppVerifier
http://windbg.info/doc/1-common-cmds.html
如果 Windows SDK 已安装,请打开 "设置",导航到 "应用" & 功能",选择" Windows 软件开发工具包",然后单击"修改"以更改安装以添加Windows 调试工具.
★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设置》
★书籍推荐
张银奎,高端调试 http://advdbg.org/
张银奎《软件调试》
张银奎《软件调试(第二版)》
★博文推荐
二、OllyDbg(简称OD)
OllyDBG是用户态调试器,具有一定的智能分析能力,但与IDA(智能反汇编分析器)的分析能力相比,不是一个量级的。但它的调试器功能非常完善。所以通常用IDA来阅读代码,而用Olly来动态跟踪程序。
https://www.52pojie.cn/thread-350397-1-1.html
三、x64dbg
x64dbg是Windows下的32/64位调试器,开源。x64dbg采用 QT 平台编写,支持多国语言。熟悉OllyDbg的用户应该很容易上手。x64dbg整体前景比较乐观,功能有待加强,但界面简洁明晰、操作方便快捷,设计人性化等。通过这款调试工具用户可以分析64位的应用,这是OllyDbg所不能做到的,它只能分析32位应用,所以想要分析64位应用,你可以使用小编带来的这款调试工具,是一款专门用于分析64位应用的调试软件。支持类似C的表达式解析器、全功能的DLL和EXE文件调试、IDA般的侧边栏与跳跃箭头、动态识别模块和串、快反汇编、可调试的脚本语言自动化等多项实用分析功能,可以帮助你完成64位应用的分析。
https://github.com/x64dbg/x64dbg
https://www.52pojie.cn/thread-1094207-1-1.html