学习目的
- 了解windbg 调试器
-
前置知识
对windows系统的基本理解:进程,线程,虚拟内存
- 使用过其他调试器 。visual Studio
-
资料
书籍:
- windows internals 7th part1
- advanced windows Debuger
- 软件调试 张银奎
- “Debugging Tools for windows “ 文档
- Debugging Help
web: http://windbg.info
安装windbg
在windows SDK 和wdk 中安装
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
- copy 一个单独的exe
- microsoft store 中安装 windbgPreview (需要windows10 1607以上)
windows 调试器
Debugging tools for windows 包中包含四个调试器
- cdb,ntsd:命令行界面的用户态调试器
- kd :命令行界面的内核态调试器
- windbg :用户态,内核态 图形化调试器
windbg命令
- 常规命令
- windbg自带
- 没有前缀
- 作用于被调试目标
- 元命令
- 作用于调试器自生
- 有前缀 点(. )
- 扩展命令
- 需要插件DLL 的支持
- 有前缀(!)
- 一些插件DLL自动加载
启动调试
- 运行可执行文件
- 附加到进程
命令:
● windbg -p <pid> 通过进程id附加
● windbg -pn <name> 通过进程名附加
UI 调整
32位&64位
调试器支持很多平台:
- x86,x64,arm,arm64
intel/amd:
- 64位程序只能被64位dbg调试
- 32位程序可以被32位dbg和64位dbg调试
- 32位dbg调试32位程序更好一些(使用64位调试会跑在wow上)