C++反汇编与逆向分析技术揭秘(第2版)
上QQ阅读APP看书,第一时间看更新

1.5 调试工具WinDbg

WinDbg是微软公司出品的一个支持32/64位程序调试的免费调试器,既支持有源码的程序调试,又支持无源码的程序调试。WinDbg不仅可以调试应用程序,还可以进行内核调试。WinDbg的一个强大之处在于可以从微软的符号服务器中获取系统符号文件,使应用程序或内核调试的反汇编代码可读性更好。WinDbg界面如图1-27所示,图中的标号说明如下。

图1-27 WinDbg界面

1:命令汇编窗口。

2:寄存器窗口。

3:内存变量窗口。

4:栈窗口。

虽然WinDbg也提供图形界面操作,但它最强大的地方还是调试命令,通常情况下会结合图形界面和命令行进行操作,初学者可以从一些常用的调试命令开始,通过快捷键F1查看命令的使用帮助,WinDbg的常用命令如表1-2所示。

表1-2 WinDbg的常用命令

通过实际操作演练,我们使用命令调试“Hello world”程序,将“Hello world”程序对话框标题修改为“I Like C++”,如图1-28所示,步骤如下。

图1-28 使用WinDbg修改程序

  • 加载可执行程序Ctrl+E。
  • 输入命令执行到入口代码:g $exentry。
  • 输入命令查看反汇编代码:u。
  • 输入命令修改内存:eza 00403000 "I Like C++"。
  • 输入命令查看修改的数据:da 00403000。
  • 输入命令运行程序:g。