windbg.jpg

学习目的

  • 了解windbg 调试器
  • 配置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
image.png

  • copy 一个单独的exe

image.png

  • microsoft store 中安装 windbgPreview (需要windows10 1607以上)

windows 调试器

Debugging tools for windows 包中包含四个调试器

  • cdb,ntsd:命令行界面的用户态调试器
  • kd :命令行界面的内核态调试器
  • windbg :用户态,内核态 图形化调试器

所有调试器都基于DbgEng,DLL

windbg命令

  • 常规命令
    • windbg自带
    • 没有前缀
    • 作用于被调试目标
  • 元命令
    • 作用于调试器自生
    • 有前缀 点(. )
  • 扩展命令
    • 需要插件DLL 的支持
    • 有前缀(!)
    • 一些插件DLL自动加载

启动调试

  • 运行可执行文件

image.png

  • 附加到进程

命令:

  1. ● windbg -p <pid> 通过进程id附加
  2. ● windbg -pn <name> 通过进程名附加

UI 调整

字体大小:
image.png
保存workspace
image.png

32位&64位

调试器支持很多平台:

  • x86,x64,arm,arm64

intel/amd:

  • 64位程序只能被64位dbg调试
  • 32位程序可以被32位dbg和64位dbg调试
    • 32位dbg调试32位程序更好一些(使用64位调试会跑在wow上)