用网络进行内核调试 VMware+windbg
准备
下载vmware,安装需要调试的版本的操作系统,虚拟机-》设置-》网络适配器选择NAT即可,这个时候虽然虚拟机和电脑的IP不一致,但是也是可以ping通的,注意如果ping不通,需要关闭防火墙
网络调试前置条件
运行调试器的计算机称为主机,被调试的计算机称为目标计算机。
主机必须运行Windows XP或更高版本,
目标计算机必须运行Windows 8或更高版本。
主机可以使用任何网络适配器,但目标计算机必须使用Windows调试工具支持的网络适配器。
与其他类型的电缆相比,通过网络进行调试具有以下优点。
主机和目标计算机可以在本地网络的任何位置。
从一台主机上调试多台目标计算机很容易。
网线价格便宜,而且很容易买到。
对于任何两台计算机,它们都有以太网适配器。它们都有串行端口或1394端口的可能性较小。
操作步骤
确定主机的IP地址
使用以下过程之一确定主机的IP地址。
在主机上,打开命令提示窗口并输入以下命令: ipconfig
记下要用于调试的网络适配器的IPv4地址。
在目标计算机上(安装调试器的机器上),打开命令提示窗口并输入以下命令,其中host name是主机IP(被调试的机器):ping HostName,这一步是验证通讯是不是正确
选择网络调试端口
选择将用于主机和目标计算机上调试的端口号。您可以选择49152到65535之间的任意数字。您选择的端口将被运行在主机上的调试器以独占访问方式打开。请注意选择主机上运行的任何其他应用程序都不使用的端口号。 可以用于网络调试的端口号的范围可能受到公司网络策略的限制。无法从主机上分辨出限制是什么。要确定公司的策略是否限制可用于网络调试的端口范围,请与网络管理员联系。如果将多台目标计算机连接到一台主机,则每个连接都必须具有唯一的端口号。例如,如果将100台目标计算机连接到一台主机,则可以将端口50000分配给第一个连接,将端口50001分配给第二个连接,将端口50002分配给第三个连接,依此类推。不同的主机可以使用相同范围的端口(50000到50099)连接到另外100台目标计算机。
设置目标计算机(被调试的机器)
1、验证目标计算机是否具有受支持的网络适配器。
2、使用标准的Cat5或更好的网线将支持的适配器连接到网络集线器或交换机。不要使用交叉电缆,也不要在集线器或交换机中使用交叉端口。
3、在提升的命令提示窗口中(cmd以管理员运行),输入以下命令,其中w.x.y.z是主机的IP地址,n是您选择的端口号:
bcdedit /debug on
bcdedit /dbgsettings net hostip:w.x.y.z port:n
4、bcdedit 将显示自动生成的密钥。复制密钥并将其存储在可移动存储设备(如USB闪存驱动器)上。在主机上启动调试会话时,需要密钥。强烈建议您使用自动生成的密钥。但是,您可以创建自己的密钥,如后面“创建自己的密钥”部分中所述。
5、如果目标计算机中有多个网络适配器,请使用设备管理器确定要用于调试的适配器的PCI总线、设备和函数号。然后在提升的命令提示窗口中,输入以下命令,其中b、d和f是适配器的总线号、设备号和功能号:
bcdedit /set "{dbgsettings}" busparams b.d.f
6、重启计算机
如果目标计算机位于扩展底座中,并且已为扩展底座中的网络适配器启用网络调试,请不要从扩展底座中删除计算机。如果需要从扩展底座中删除目标计算机,请先禁用内核调试。要在目标计算机上禁用内核调试,请以管理员身份打开命令提示窗口,然后输入命令bcdedit/debug off。重新启动目标计算机。
设置主机(调试器所在的机器)
使用标准Cat5(或更高级别)网线将主机的网络适配器连接到网络集线器或交换机。不要使用交叉电缆,也不要在集线器或交换机中使用交叉端口。
启动调试会话
在主机上,打开windbg。
在“文件”菜单上,选择“内核调试”。
在“内核调试”对话框中,打开“网络”选项卡。
输入端口号和密钥。
单击“确定”。
您还可以通过打开命令提示窗口并输入以下命令来启动与windbg的会话,其中n是端口号,key是设置目标计算机时由bcdedit自动生成的密钥:
windbg -k net:port=n,key=Key
如果系统提示您允许windbg通过防火墙访问端口,则允许windbg访问所有不同网络类型的端口。首次尝试建立网络调试连接时,可能会提示您允许调试应用程序(windbg或kd)通过防火墙访问。Windows的客户端版本显示提示,但Windows的服务器版本不显示提示。您应该通过选中域、私有和公共三种网络类型的复选框来响应提示。如果没有得到提示,或者在提示可用时没有选中复选框,则必须使用“控制面板”允许通过防火墙进行访问。打开“控制面板>系统和安全”,然后单击“允许应用程序通过Windows防火墙”。在应用程序列表中,找到Windows GUI符号调试器和Windows内核调试器。使用复选框允许这两个应用程序通过防火墙。重新启动调试应用程序(windbg或kd)。
调试器如何获取目标计算机的IP地址
目标计算机上的内核调试驱动程序尝试使用动态主机配置协议(DHCP)来获取正在用于调试的网络适配器的可路由IP地址。如果驱动程序获得一个DHCP分配的地址,那么目标计算机可以由位于网络上任何位置的主机进行调试。如果驱动程序无法获得一个DHCP分配的地址,它将使用自动专用IP地址(APIPA)来获得一个本地链路IP地址。本地链路IP地址不可路由,因此主机和目标不能使用本地链路IP地址通过路由器进行通信。在这种情况下,如果将主机和目标计算机插入同一网络集线器或交换机,网络调试将工作。
总结
这个操作我在虚拟机上进行了测试可以进行调试
参考资料
https://www.cnblogs.com/yilang/p/11428744.html
用网络进行内核调试 VMware+windbg相关推荐
- windbg网络双机内核调试
target设置 bcdedit /debug on bcdedit /dbgsettings net hostip:10.0.0.5 port:60000 bcdedit会生成一个key 如果有一个 ...
- windbg linux内核调试,使用Windbg调试window内核
也 许很多人早就知道了,但是我不知道,以前一直抓住softice大腿不放,但是由于在我的Hyber Thread处理器上,Softice实在是运行的太不理想了.故而只能利用WinDbg了.不过听牛人说 ...
- Windbg+Vmware/VirutalBox内核调试加速工具VirtualKD
今天又想起来VirtualKD这个东西,试用了一下,真是爽坏了,可能我火星了~~ 很久以前就知道小喂有个VmKd工具,使用Vmware的后门指令直接拷贝数据来代替模拟串口,能大大提高调试时的数据传输速 ...
- windbg通过网络启动进行内核调试
调试环境搭建 用网线把目标机器和主机直连 ,并且手动为它们的有线网卡配制IP地址,且主机和目标机器IP地址必须ipv4格式. 要求:被调试的目标机器必须是win8或是Windows Server 20 ...
- 使用 VMware + win10 + vs2019 从零搭建双机内核调试环境
我在前面的文章--<使用 VMware + win10 + VirtualKD + windbg 从零搭建双机内核调试环境>分享了使用 windbg 进行双机内核调试的环境搭建的步骤. 有 ...
- 使用WinDbg内核调试
WINDOWS调试工具很强大,但是学习使用它们并不容易.特别对于驱动开发者使用的WinDbg和KD这两个内核调试器(CDB和NTSD是用户态调试器). 本教程的目标是给予一个已经有其他调试工具使用经验 ...
- windbg+VM 设置内核调试环境(双机调试)
虚拟机是XP情况: 启动项添加调试启动,并设置波特率为115200 具体操作可在boot.ini中添加如下代码: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS ...
- Windbg内核调试之一: Vista Boot Config设置
Windbg进行内核调试,需要一些基本的技巧和设置,在这个系列文章中,我将使用Windbg过程中所遇到的一些问题和经验记录下来,算是对Kernel调试的一个总结,同时也是学习Windows系统内核的另 ...
- 【转】VMWare+WinDbg搭建(驱动)调试环境
[转]VMWare+WinDbg搭建(驱动)调试环境 今天搭建了一个"VMWare+Windbg的虚拟机双机内核调试环境",第一次感受到了"符号和源码调试"的强 ...
最新文章
- vue-threeJS数据驱动的三维图形可视化
- 【性能优化】面试官:Java中的对象和数组都是在堆上分配的吗?
- matlab 12脉波变压器,12脉波中频炉专用变压器外形尺寸
- 被spring和hibernate4逼疯
- Windows Azure虚拟机概览
- 呼叫中心如何规划好工作习惯
- RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”...
- 通过JNI使用C ++尖叫快速进行Lucene搜索
- 这部计算机27厘米宽英语怎么说,24/27/32寸电脑显示器尺寸多大?长宽多少厘米?显示屏长宽与面积的算法...
- python【第三篇】迭代器、生成器、闭包
- 全文检索(LuceneSolr)
- Java 后台开发实习经历
- css shine_什么是Shine Enterprise Java模式?
- 携程、同程、QQ音乐、天猫...等14款APP被点名:涉嫌过度收集用户信息
- C编程 求1到100之间的奇偶数之和
- mysql 查询 投影_sql--查询(基本,条件,投影,排序)
- 【渝粤题库】广东开放大学 互联网金融 形成性考核
- 解决“¥”符号在安卓上显示只有一个横杠的问题
- Json概述以及python对json的相关操作(至尊宝错过了紫霞仙子,难道你也要错过python对json的相关操作吗?)
- WordPress网站程序如何搭建教程详细流程步骤