Mac下的windows双机调试环境配置pd+vm

admin 2023年12月21日14:03:17评论54 views字数 2018阅读6分43秒阅读模式

前言:

对于驱动开发和windows内核来说必备双机调试,PC和win笔记本 配合vmware只需要一台被调试的虚拟机即可,而且网上教程繁多。

由于macos无法安装windbg所以需要准备两台虚拟机才行,一台调试机(装windbg),一台被调试机(运行驱动)。

然而怎么把这两台虚拟机通过串口链接起来成了问题。

注意事项: 被调试机的串口配置是Server  调试机的串口配置是client  (pd的不一样,连不上就反过来设置一下)

环境配置:

win7  被调试机win10 调试机 (有windbg)

这里提前说一下

启动顺序

  1. 调试机启动windbg,并且连接串口

  2. 被调试机启动

结束顺序。

  1. windbg 必须g 跑起来 不能停在断点上(被调试机的鼠标必须能操作)

  2. 退出windbg

  3. 被调试机关机

否则会出现被调试机关不了机的情况(一直转圈卡死),就只能在任务管理器结束vm的所有进程。

如果是恢复快照的话,调试机和windbg谁先启动都一样。


Parallels 下的双机调试

1、添加串口

Mac下的windows双机调试环境配置pd+vm

2、新建插口 名字是 com1 (名字就这样吧,反正pc配置的时候是这个名字)

Mac下的windows双机调试环境配置pd+vm

3、选择串口模式

Mac下的windows双机调试环境配置pd+vm

调试机选择    :客户端  

被调试机选择:服务端

(调试机 服务端 ;;;;; 被调试机:客户端   也能断下来。。。)

小插曲: 由于手速太快,把调试机恢复快照了。什么驱动环境啊,vs环境啊全没了。然后调试机串口com1的客户端被占用了,但是com1的服务端串口能用,然后把被调试机串口改成了客户端,也能被调试。就很神奇。

最开始: 调试机=com1客户端  被调试机=com1服务端 , 能调windbg能断下来================================================================================手残恢复调试机快照之后 : 调试机=com1服务端  被调试机=com1客户端   , 也能断下来 可以调试

4、配置客户端。

开机之后用管理员打开cmd 执行下面两条命令

bcdedit /copy {current} /d "MyOS"bcdedit /debug ON

执行完成之后 win+r 输入 msconfig  看一下全局 调试是不是com1

Mac下的windows双机调试环境配置pd+vm

然后关机

5、调试机配置windbg

Mac下的windows双机调试环境配置pd+vm

Mac下的windows双机调试环境配置pd+vm

6、被调试机开机(win7、win10) 会出现一个引导式访问 直接回车 (第一次开机会非常慢)

Mac下的windows双机调试环境配置pd+vm

7、调试机的windbg会显示连接成功


Mac下的windows双机调试环境配置pd+vm

之后点击break 就会断到内核 (断了之后先做快照)就可以调试了

Mac下的windows双机调试环境配置pd+vm

8、内核断点断下来的时候(被调试机)做开机快照

也就是在屏幕上鼠标没办法点的时候,不然下次恢复快照 windbg就不一定能链接上被调试机了

VMwate Fusion 下的双机调试

1、配置文件路径

说一下这个路径在哪儿

/Users/Virtual Machines.localized/com1

com1 是串口的名称

前面这个路径是虚拟机的存储位置(在vm中右键在访达中显示的这个路径)

/Users/Virtual Machines.localized//Users/{username}/Virtual Machines.localized/  通常就多个username

Mac下的windows双机调试环境配置pd+vm

然后右键显示包内容找到.vmx文件 编辑

Mac下的windows双机调试环境配置pd+vm

先把所有的serial0内容全部删除然后在最后添加以下内容(注意区分调试机和被调试机)

Mac下的windows双机调试环境配置pd+vm

被调试机

serial0.fileName = "/Users/Virtual Machines.localized/com1"serial0.present = "TRUE"serial0.fileType = "pipe"serial0.yieldOnMsrRead = "TRUE"serial0.startConnected = "TRUE"

调试机

serial0.fileName = "/Users/Virtual Machines.localized/com1"serial0.present = "TRUE"serial0.fileType = "pipe"serial0.pipe.endPoint = "client"serial0.yieldOnMsrRead = "TRUE"

2、配置被调试机

和上面一样

开机之后用管理员打开cmd 执行下面两条命令

bcdedit /copy {current} /d "MyOS"bcdedit /debug ON

然后先别急着重启

3、配置调试机

windbg 和上面一样

配置com

4、重启被调试机

遇到引导式访问直接回车就行,这时windbg就会收到请求。

5、断点断到内核 然后被调试机做快照


注意:win10调试win10

win10调试win10的时候 被调试机开机会出现多次断点,windbg一直g就行,直到进入桌面

Mac下的windows双机调试环境配置pd+vm

进入桌面之后 断到内核然后做快照。


pc端的双机调试网上教程有很多,b站也有视频照着配置就行。

还是就是要注意关闭顺序和启动顺序,顺序不对就会被卡死, 解决不了就重启物理机。

原文始发于微信公众号(Relay学安全):Mac下的windows双机调试环境配置pd+vm

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月21日14:03:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Mac下的windows双机调试环境配置pd+vmhttps://cn-sec.com/archives/2238129.html

发表评论

匿名网友 填写信息