windows平台编译DynamoRIO和winafl x86/x64
2020-08-10 14:08:54 Author: bbs.pediy.com(查看原文) 阅读量:626 收藏

活跃值: 活跃值 (915)

能力值:

( LV4,RANK:50 )

在线值:

[分享]双机内核调试入门

1天前 330
目录

]

双机调试的配置网上能查到的有很多,但大都大同小异,用早期的版本举例,对新版本的支持有限,缺失异常时的一些处理。
本篇不算原创,是我早先在搭建双机调试环境时,查找相关资料的整理,以及在调试中遇到的部分问题解决的积累。

新版WinDbg Preview是WinDbg的改进版本,具有更多现代视觉效果,更快的窗口,完整的脚本体验,内置支持可扩展的调试器数据模型。同时兼容WinDbg的所有命令,兼容x86与x64系统,更强大的时间旅行调试TTD。
下载:WinDbg Preview
新版WinDbg Preview配置双机内核调试有两种方法。

虚拟机设置

删除不必要的设备,添加串行端口。
在这里插入图片描述

虚拟机系统配置

虚拟机中 WIN+R msconfig 打开系统配置
在这里插入图片描述
在这里插入图片描述

WinDbg Preview 设置

主机中 打开WinDbg Preview File Attach to kernel
在这里插入图片描述

附加成功示意图

在这里插入图片描述

异常修复处理

调试器反应慢 卡顿

COM 虚拟串口方式连接,调试器反应极其卡顿,可能由于虚拟机为复制的虚拟机,用iso文件创建新的虚拟机,即可解决该问题

调试器看不到寄存器、局部变量、Watch

如果遇到 WinDbg Preview 看不到寄存器、局部变量、Watch
虚拟机中 以管理员权限启动 cmd 添加一个新的启动加载器。

添加一个新的启动加载器

输入:

bcdedit

回车
在这里插入图片描述
设置端口1(该处的“1”,对应com接口1)

bcdedit /dbgsettings serial baudrate:115200 debugport:1

复制开机选项(这里我命名为:"Win10_Dbg",可任意修改)

bcdedit /copy {current} /d Win10_Dbg

增加开机引导项(ID填写上一条命令生成的字符串)

bcdedit /displayorder {current} {ID}

激活debug(ID填写上上一条命令生成的字符串)

bcdedit /debug {ID} ON

重启虚拟机,选择“Win10_Dbg”为启动项

End

主机打开vmmon64.exe,设置Windbg路径(先使用旧版Windbg路径)

在Windows10中,WinDbg的目录是固定的,如下所示:

  • x86: C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\WinDbg.exe

  • x64: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\WinDbg.exe

虚拟机需禁用驱动程序强制签名 这个网上有很多 就不一一赘述了

将 target文件夹拷贝到虚拟机 运行vminstall.exe(特别强调:只能装在虚拟机,勿在主机运行)

  • 默认设置 无需更改
  • 点击 Install
  • 重启 选择【调试模式启动】

正常的话,windbg会自动运行

修改调试器为新版WinDbg Preview

(DbgX.Shell.exe的路径) /k com:pipe,resets=0,reconnect,port=\.\pipe\(此处为虚拟机名)
在这里插入图片描述

WMware15 与 VirtualKD 不兼容 解决方案

Win10 1909 与 旧版本WMware 不兼容
更新WMware到最新15.5.2
但是在新版的WMware上双机内核调试的神器 VirtualKD-3.0 不好使了

这里推荐一个大佬的项目 VirtualKD-Redux
ZIP压缩包下载链接VirtualKD-Redux-2020.2

VirtualKD-Redux 的用法 与 VirtualKD 一致,而且还支持具有更多现代视觉效果的 WindbgPreview
安装与使用步骤与VirtualKD一致
这里我简单介绍

  1. 拷贝 target 到目标虚拟机 (32位系统拷贝target32,64位系统拷贝target64)
    在这里插入图片描述
  2. 虚拟机中执行 target 文件夹中的 vminstall.exe 文件,默认安装即可,最后一步会重启虚拟机
    在这里插入图片描述
  3. 根据物理机环境,打开对应版本的 vmmon.exe (32位系统拷贝vmmon32.exe,64位系统拷贝vmmon64.exe)
  4. 选取对应的windbg版本,VirtualKD-Redux会替我们自动设置调试器路径,建议 简单检查
    在这里插入图片描述
  5. 虚拟机在重启中,选择新建的入口,按F8 选择禁用强制签名
    在这里插入图片描述
  6. 虚拟机在重启中VirtualKD会自动拉起我们的调试器,如果没有拉起,可以手动点击 Run debugger 打开调试器
    在这里插入图片描述
// 以下命令告诉调试器使用符号服务器从https://msdl.microsoft.com/download/symbols
//的符号存储中获取符号并缓存符号c:\MyServerSymbols。
.sympath srv*c:\MyServerSymbols*https://msdl.microsoft.com/download/symbols

双机调试时
普通程序,入口点 main 加 MessageBox(0, 0, 0, 0);
驱动程序,入口点 DriverEntry 加 DbgBreakPoint();

  [1]: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugging-using-windbg-preview
 [2]: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symbol-path
 [3]: https://blog.51cto.com/14317856/2410156
 [4]: https://blog.csdn.net/m0_37921080/article/details/82495063
 [5]: https://www.cnblogs.com/endenvor/p/8926688.html

HWS计划·2020安全精英夏令营来了!我们在华为松山湖欧洲小镇等你

最后于 1天前 被随风行编辑 ,原因:


文章来源: https://bbs.pediy.com/thread-261326.htm
如有侵权请联系:admin#unsafe.sh