1.windbg简介
windbg是一个非常强大的调式工具,它适用于windows系统,WinDbg是Microsoft Windows上的多用途调试器,可从微软网站上免费下载安装使用。可用于调试用户态下的应用程序、驱动程序,以及核心态下的操作系统自身。该软件是GUI界面,但与更为著名但功能稍弱的Visual Studio Debugger几乎完全不同。
WinDbg能从服务器自动装载匹配的调试符号文件,如PDB文件。调试符号文件在源代码文件与二进制可执行程序之间创建对应。Microsoft的公开的符号服务器提供了Windows 2000以后各版本操作系统及服务包的绝大部分符号。
2.调式教程
2.1本地调式
1.以管理员的身份打开cmd,输入’dcdedit -debug on’
2.重启系统,以管理员身份打开windbg,接着 ‘file -》kernel debug ->local’
3.输入指令,查看内核结构信息,下面显示的是TEB结构信息,TEB的全称是线程环境块,下图可以看到TEB的地址为c82000.
4.使用dt _teb c82000可以查看TEB中各个字段的值,其它结构类似。
2.2双机调式
1.打开虚拟机设置,添加串行端口并填写管道信息((打印机的为com1,有打印机的话命名为com2)。
2.在windbg目标后面填写 -b -k com:pipe,port=\.\pipe\com_2,resets=0,reconnect -y
3.修改虚拟系统启动选项,用管理员权限打开虚拟机的cmd,输入一下命令:
bcdedit /enum //查看配置
bcdedit /set “{current}” bootmenupolicy Legacy //修改启动方式
bcdedit /dbgsettings SERIAL DEBUGPORT:2 BAUDRATE:115200
//设置串口2为调试端口,波特率为115200
bcdedit /copy “{current}” /d “Debug”
4.接着执行一下命令:
bcdedit /debug “{<新建的启动配置的标识符>}” on //打开调试开关,我这里是{9f18bb31-1578-11ea-ab98-f0b8641e891a}
bcdedit /enum
5.重启系统 按f8,进入Dos界面,选boot Manage,再摁enter键。
6.用管理员权限运行windbg,链接成功。