热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MACOSX系统下利用VMwareFusion双虚拟机使用Windbg调试windows驱动

前期准备软件VMwareFusion软件UltralEdit或VisualStudioCode或SublimeText等文本编辑软件。Window

前期准备

软件

  • VMware Fusion软件
  • UltralEdit或 Visual Studio Code或Sublime Text等文本编辑软件。
  • Windows镜像
  • Windbg等调试所需软件 ### 环境
  • 在虚拟机里面安装XP等Windows系统镜像。(安装教程不赘述)
  • 使用VMware的克隆功能 或 链接克隆功能 或 再次安装另一个Windows系统。
  • 在主虚拟机(用来调试另一台虚拟机)里面安装Windbg等调试所需软件。(本教程只需Windbg)

调试虚拟机

  1. 打开虚拟机,在虚拟机资源库里面找到被调试虚拟机,右键选择在Finder中显示,会出现.vmx配置文件。
    屏幕快照 2017-11-08 下午9.33.44

    • 如果打开后是一整个虚拟机文件,则右键-显示包内容就可以看到.vmx配置文件了。
  2. 右键VMX文件,打开方式选择UltralEdit等文本编辑软件。
    屏幕快照 2017-11-08 下午10.19.36

  3. 在里面找到checkpoint.vmState = ""这一行(也有可能不需要在此行)。在下面添加:

    serial0.present = "TRUE" 
    serial0.fileType = "pipe"
    serial0.yieldOnMsrRead= "TRUE" 
    serial0.startCOnnected= "TRUE" 
    serial0.fileName = "/Users/tora/Documents/Serial"
    
  4. 其中serial0.fileName = "/Users/tora/Documents/Serial"后面双引号里面的路径可以自己定义,这是定义用来存放串口之间通讯的文件的位置。

    • 要注意代码里面的双引号必须是英文标点,不然打开虚拟机会报错。
  5. 再次在虚拟机资源库里面找到主虚拟机,做相同的操作,不过添加的代码变成:

    serial1.present = "TRUE"
    serial1.yieldOnMsrRead= "TRUE"
    serial1.fileType = "pipe"
    serial1.fileName = "/Users/tora/Documents/Serial"
    serial1.pipe.endPoint = "client"
    
  6. 其中serial1.fileName = "/Users/tora/Documents/Serial"双引号里面的路径必须和被调试虚拟机一样

  7. 代码里面serial后面的数字,0 代表是COM1 ,1代表COM2 以此类推。因此,配置Windbg时,记得选择COM2口作为调试端口。

配置系统

  1. 启动被调试虚拟机,在选择系统处移动一下光标,不要回车,然后放着不动。
    屏幕快照 2017-11-08 下午9.57.47

    • 这一步很重要,必须被调试虚拟机要占用着pipe管道。
    • 这里可以看到虚拟机上方工具栏已经显示有串口了。
    • 屏幕快照 2017-11-08 下午9.49.18
  2. 启动主虚拟机,点击开始-我的电脑右键-管理
    屏幕快照 2017-11-08 下午9.50.14

  3. 打开计算机管理,点击左侧系统工具-设备管理器,右侧双击端口(COM和LPT),可以看到连接到虚拟机的串口号。演示里面是COM2。
    屏幕快照 2017-11-08 下午9.50.54

  4. 打开自行安装的Windbg,依次点击 File-Kernel Debug,在打开的COM选项卡里面,Baud Rate填写115200,在Port里面填写COM2,然后确定
    屏幕快照 2017-11-08 下午9.53.04

    屏幕快照 2017-11-08 下午9.53.26

  5. 再次确定,会出现一个控制台,显示Waiting to reconnect...
    屏幕快照 2017-11-08 下午9.54.17

  6. 选择被调试虚拟机,在上面的标签栏-虚拟机里面选择重启虚拟机
    屏幕快照 2017-11-08 下午10.10.58

  7. 在被调试虚拟机里面选择系统时,选择带有[启用调试程序]标签的系统。

  8. 可以看到,主虚拟机里面Windbg的控制台刷新出被调试虚拟机的内核信息。
    屏幕快照 2017-11-08 下午10.12.23

  9. 这种方式每次调试都要重启目标机,没有在windows上随时都可以用windbg连接目标机那么方便。

参考

MAC 系统下使用vmwarefusion 双虚拟机调试windows驱动


推荐阅读
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • Visual C# TabControl中TabPage分离成若干个Form的小办法
    写Visual的同学们都会用到这个TabControl的控件,然后会分好几页的TabPage,每页都有很多控件和业务逻辑,但是每页的关系也 ... [详细]
  • 线程漫谈——线程基础
    本系列意在记录Windwos线程的相关知识点,包括线程基础、线程调度、线程同步、TLS、线程池等。进程与线程理解线程是至关重要的,每个进程至少有一个线程,进程是线程的容器,线程才是真正的执行体,线程必 ... [详细]
  • FIN7后门工具伪装成白帽工具进行传播
    fin7,后门,工具,伪装,成,白, ... [详细]
  • 配置 Sublime Text 2参数
    为什么80%的码农都做不了架构师?二、配置SublimeText2如有需要配置Sublimetext2,需要点击Preferences-Sett ... [详细]
  • Ubuntu下Sublime Text 2的安装
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了Python3安装Scrapy的方法步骤,分享给大家,具体如下:运行平台:WindowsPython版本:Python3.xIDE:Sublimetext3一、Scrapy简介Scrapy是一个为了爬取网站数据提取结构 ... [详细]
  • Pylance有哪些特性
    这篇文章给大家分享的是有关Pylance有哪些特性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Pylance安装和其他VSC ... [详细]
  • Windows下实用工具整理
    Windows下实用工具整理命令工具cmder支持tab标签、集成git、支持绝大UnixLinux命令。但是安装之后一般都会有以下几个问题:中文乱码问题、文字重叠问 ... [详细]
  • 编辑器VSCode使用心得
    工欲善其事必先利其器,趁手的工具会使我们开发事半功倍。市面上的编辑器我用过许多,编辑器使用经历Notepad++,(开源)这个应该是最轻量级的吧,查看代码还好,编辑代码就算了官网地 ... [详细]
author-avatar
大佬9997_608
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有