双机调试
文章来源:华盟论坛
条件:已经安装好Visual Studio 2015、VM、Win7-x64、wdk10
为什么要搭建双机调试,普通的应用程序可以直接在本机进行调试;但内核程序出错,便会系统蓝屏,内核死锁等,因此搭建双机调试环境,用Windbg调试工具对目标程序进行调试
两台机子是通过串口线连在一起的,打印机也是串口线,可以把它删除
把目录 C:Program Files (x86)Windows Kits10Remotex64下的WDK Test Target Setup复制到虚拟机安装;并在Debuggers目录下的对应的windbg生成快捷方式到桌面,右键属性,将目标里的内容改成以下内容
"C:Program Files (x86)Windows Kits10Debuggersx64windbg.exe" -k com:port=\.pipecom_1,baud=115200,pipe
然后打开windbg,dt命令显示有关局部变量、全局变量或数据类型的信息
用户经常会需要查看在启动调试目标时使用了哪些命令行参数,这个信息是保存在PEB中的,可以通过!peb来获取,这个命令将解析PEB并给出完整的命令行,所有已加载DLL的位置,以及环境变量等
符号文件通常包含全局变量的名字和地址,函数名,地址及其原型,局部变量的名字和地址等的类型信息
把相关驱动测试工具拷贝到虚拟机
用Visual Studio 写一个简单的程序
在属性中把运行库改为多线程调试、Windows7
生成一个扩展名为“sys”的内核模块,这个程序不驱动任何设备
在处理器上,权限分为四个级别,Ring0,Ring1,Ring2,Ring3,用户程序运行在Ring3上,Windows内核及其扩展模块(驱动程序运行在Ring0上)
小白入门,大佬勿喷