从 Linux 调试 Windows 内核

2023-12-28

我曾经使用调试 Windows 内核虚拟KD, WinDBG和一个虚拟机。

最近我得到了一台Linux机器,现在我想知道当你的主机无法运行时调试Windows内核的最简单方法是什么虚拟KD/WinDBG*?

我假设该解决方案需要两个虚拟机,但我宁愿在我的实际计算机上托管两个实例,而不是让一个实例驻留在另一个虚拟实例中......

有办法让它发挥作用吗?

提前致谢!

*出于稳定性原因,葡萄酒是最后的手段......


解决了!基本上,我最终使用了two(虚拟盒)VMs模拟一个串行连接(零调制解调器电缆)通过Unix 域套接字(在主机上)。欲了解更多信息,请阅读以下内容:

硬件设置*:

  • Debuggee:
    • 确保机器已关闭并编辑串口设置。
    • Enable Port 1,并按如下方式指定值: 端口号:COM1,端口模式:主管道,创建管道:未选中(客户端),端口/文件路径:/tmp/win_link.
  • Debugger:
    • 与上面相同(使用相同的路径),只是这次创建管道应该是Checked(服务器)。

调试器设置:

  • 运行WinDBG并按Ctrl+K调用内核调试.
  • in COM,输入:波特率:115200,端口:COM1,重置:0 并验证Pipe和重新连接是未经检查的(重要的)。
  • 您将看到以下输出:Opened \\\\.\com1 Waiting to reconnect...

调试器设置:

  • Run /port com1 /baud 115200 /id 1 上的 bootcfg /debug。要验证,请运行bootcfg.**
  • Reboot.
  • 在启动阶段的早期,另一台机器上的 WinDBG 应该检测到调试程序正在运行。

*假设使用 VirtualBox。 VMWare/KVM 用户按照类似的步骤可能会获得相同的结果。另外,有关更多信息,请参阅VirtualBox 文档 https://www.virtualbox.org/manual/ch03.html#serialports.

**假设访客使用的是 Windows XP。更高版本包括bcdedit,可以按照描述使用here http://msdn.microsoft.com/en-us/library/windows/hardware/ff556867%28v=vs.85%29.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Linux 调试 Windows 内核 的相关文章

  • 调用栈和反汇编疑问

    三大疑点 1 假设我得到如下调用堆栈 user32 dll InternalCallWinProc 20 0x28 bytes user32 dll UserCallWinProcCheckWow 32 0xb7 bytes user32
  • vagrant - Vagrantfile:同步多个文件夹

    我已尝试以下方法将多个文件夹从主机同步到来宾计算机 但只有一个文件夹正在同步 即后一个文件夹 config vm synced folder host site1 var www site1 config vm synced folder
  • Java:一行中多个++-增加。第一个是哪一个?

    嘿 我有以下两行代码 result i temp i temp i 1 temp i 2 i 2 我想知道这行代码是否会执行相同的操作 result i temp i temp i temp i 我可以确定吗EVERYVM会从左到右处理该行
  • LXC 与 VM 的典型用例是什么?

    我正在尝试确定 LXC 容器何时是比使用完整虚拟机更好的选择 您是否有任何精确的用例可以以某种方式带来一些争论 LXC 是否更面向 PaaS 无需硬件控制即可运行应用程序 我们是否总是需要从 IaaS 角度使用虚拟机来控制基础设施 Rega
  • 如何使 Windows DNS 和 WINS 设置保留在 Azure VM 中?

    我在 Azure VM 中设置了一个域控制器 并且其他几个服务器也设置为 VM 当我设置服务器虚拟机时 我将 DNS 和 WINS 配置为指向 DC 的 IP 地址并将它们加入域 但是 这些设置在关闭 虚拟机被释放 后将无法保留 当虚拟机重
  • 适用于 Windows 的 Docker 桌面

    我正在尝试在我的 Windows 10 Pro 64 位计算机上运行 Docker 桌面 其构建规范和设置详细信息如下 版本 Windows 10 专业版 64 位 版本 1903 操作系统版本 18362 657 CPU 英特尔 i7 H
  • 如何更改年龄不匹配的 PDB 以使其正确匹配?

    我们的夜间构建过程被破坏了很长一段时间 因此它生成的 PDB 文件与相应的图像文件的年龄相差几个小时 我已经解决了这个问题 但是 我想开始使用符号服务器 但由于必须使用这些年龄不匹配的 pdb 文件而无法开始 我通过使用 Windbg 中的
  • 未在虚拟机内分配外部 IP

    我正在尝试设置几个 Centos 6 虚拟机 我为它们分配了静态 IP 但运行 ifconfig 时 我看不到外部 IP 只看到内部 IP Google 不允许这种功能吗 除了Anderson所说的之外 这是从实例本身查询外部IP的命令 c
  • git 我可以加快提交速度吗?

    我在共享文件夹中有一个大存储库 我在该文件夹的虚拟机中使用 git 一切都很好 但存储库很大 git 正在搜索所有目录和文件 当提交缓慢时 我无法将此存储库移出共享文件夹 我尝试过了git add特定文件和目录 但当我这样做时git com
  • 分析 Windbg 中 !threadpool 和 !threads 的输出

    我已经在四台服务器上生成了转储 并正在分析 threadpool 和 threads 的输出 我注意到以下输出大致一致 0 024 gt threadpool CPU utilization 0 Worker Thread Total 2
  • 如果 WinDbg 附加断点,则驱动程序加载/卸载失败

    我刚刚开始进行驱动程序开发 对于一些加载 卸载和调试的实验 我编写了以下简单的驱动程序 include
  • 当我启动虚拟机时“VT-x 不可用”[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我使用 VMWare 软件创建了一个虚拟机 但在启动虚拟机时出现错误 它说 VT x 不可用 00 00 03 916 NAT zone nm mbu
  • vagrant + virtualbox 等待机器启动时超时

    抱歉 我对 vagrant 很陌生 我正在运行 vagrant 1 4 3 和 virtualbox 4 3 26 我的主机操作系统是 ubuntu 14 04 2 我是一名 php 开发人员 我正在努力让我的开发环境为几个项目做好准备 我
  • WinDbg中出现“SOS版本与您正在调试的CLR版本不匹配”怎么办?

    我的某些应用程序出现问题 它是一个基于 wcf 的应用程序 在 Windows 2003 Server x86 的 IIS6 下运行 在事件日志中 我从 W3SVC WP 源 EventID 2262 收到这样的错误 ISAPI C WIN
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • 是否可以在VM内使用VMX CPU指令?

    VM guest 内部的进程是否有可能使用 VMX AMD V VT x CPU 指令 然后由外部 VMM 处理而不是直接在 CPU 上处理 Edit 假设外部VM使用VMX本身来管理其虚拟客户机 即它在Ring 1中运行 如果可能的话 是
  • WinDbg从符号中获取所有函数的地址

    执行命令x ShittyProject 我得到这样的输出
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • JavaFX 模块对于 VM 不可见

    我使用 Intellij Idea 作为我的 IDE 由于我需要使用 css 文件 因此我安装了 Intellij Ultimate 现在 javaFx 不适用于它们 抛出异常 boot层初始化时出错 java lang module Fi
  • 在调用堆栈中看到大量 clr!CLR Semaphore::Wait

    我们看到很多像下面这样的调用堆栈 我可以知道什么条件 情况会发生这种情况吗 OS Thread Id 0x48654 559 Current frame ntdll NtWaitForSingleObject 0xa Child SP Re

随机推荐

  • 尝试同时编译多个 CUDA 文件时出现链接错误 LNK2005

    我有一个 CUDA 程序 可以正常工作 但目前全部写在一个文件中 我想将这个大文件分成几个较小的文件 以便更容易维护和导航 新的结构是 foo cuh foo cu bar cuh bar cu main cu The cuh头文件包含结构
  • 我想在 Yup 中转换值,但 Formik 没有返回正确的值

    我在表单 电子邮件 中有一个值 我想将其转换为小写 我在 Yup 中有一个转换正在工作 但 Formik 没有显示小写值 如何才能使当我以大写形式输入电子邮件时 它会自动转换为小写形式 这是我的代码 import React from re
  • 无法终止 SPID“事务回滚正在进行中”

    我的数据库中有一条处于永久回滚模式的未提交语句 当我尝试终止与此语句关联的 SPID 时 出现以下错误 事务回滚正在进行中 预计回滚完成 0 预计剩余时间 0 秒 此未提交的语句导致用户无法查看数据库的表 视图和过程树 如何停止这个 SPI
  • 在运行时加载 MP3 文件

    我正在尝试使用在运行时加载 mp3 文件WWW http docs unity3d com ScriptReference WWW htmlUnity中提供的类 我没有收到任何错误 但在处理歌曲后我无法播放音乐 我到处都找过了 但找不到任何
  • 在构造函数中设置变量数组的最小大小

    因此 我的编程教授希望我编写一个 Kingdom 类 其变量名至少有 12 个字符长 通常情况下 如果最小 12 个字符的不变量被破坏 人们只需使用 String 名称变量和错误消息来实现此类 就像 Java 中的这样 import jav
  • 马尔可夫链聊天机器人如何工作?

    我正在考虑使用马尔可夫链之类的东西创建一个聊天机器人 但我不完全确定如何让它工作 据我了解 您可以根据给定单词和后面的单词的数据创建一个表格 在训练机器人时是否可以附加任何类型的概率或计数器 这是个好主意吗 问题的第二部分是关键字 假设我已
  • lldb:异常断点(相当于gdb的catch throw)

    我正在尝试使用 lldb 进行 C 调试 如果抛出异常 我想停止 就像 gdb 的那样catch throw 并且我在 lldb 文档中找不到等效项 Use breakpoint set E c 打破所有异常并且breakpoint set
  • 将 JScrollPane 添加到 JLabel

    我似乎不知道如何添加JScrollPane to a JLabel The JLabel我正在使用的是一个长格式的 HTML 字符串 请帮忙 area new JLabel JScrollPane scroller new JScrollP
  • 如何运行指向 jar 的 TestNG 测试

    我有一个 Jar文件包含在 TestNG 测试上运行所需的文件 我想在该 Jar 文件中运行特定的 xml 文件 我的要求是是否可以执行指向 Jar文件如果是的话我该怎么做 您可以使用 xmlpathinjar suites GroupBa
  • 如何确定谁更改了文件?

    在 Windows 中 如何以编程方式确定上次更改或删除文件的用户帐户 我知道设置对象访问审核可能是一个选项 但如果我使用它 我就会遇到尝试将审核日志条目与特定文件匹配的问题 听起来复杂而混乱 我想不出任何其他方法 那么有人对这种方法或任何
  • 如何获取 PowerShell 字符串中最后一次出现的字符的索引?

    我想从 PowerShell 中的以下字符串获取最后一个 出现的索引 以便修剪 Activity 单词并保留它 string C cmb Trops TAX Auto Activity 我正在将代码从 VBScript 转换为 PowerS
  • 从 IEnumerable 中的任意点访问一系列元素

    我有这个方法 private IEnumerable
  • Laravel Jobs 不允许序列化“Closure”

    我想将数据发送到 NewsletterStore 作业 但它因以下错误而失败 有什么建议么 我还尝试删除 SerializesModels Models 特征 没有任何成功 Error Exception Serialization of
  • 如何在 Julia 中逐行读取文件?

    如何打开文本文件并逐行读取它 我对两种不同情况的答案感兴趣 一次获取数组中的所有行 一次处理每一行 对于第二种情况 我不想一次将所有行保留在内存中 将文件作为行数组一次性读入内存只需调用readlines功能 julia gt words
  • ASP.NET Core MVC 2.0 中基于路径的身份验证

    在 ASP NET Core MVC 1 1 中 我们有基于路径的身份验证 如下所示 public void Configure IApplicationBuilder app IHostingEnvironment env ILogger
  • 为什么 git-for-each-ref 无法正确排序标签?

    当我有一个包含轻量级标签和带注释标签的存储库时 git for each ref似乎只对其中一组进行排序 我想修改我的通话for each ref获得对所有标签进行排序并将它们混合在输出中的输出 例如 bash 3 2 git tag gt
  • C 反转字符串函数得到奇怪的输出

    我试图理解指针并制作一个反向字符串函数 code include
  • 批量:将txt文件中的文件复制到一个文件夹中

    我正在尝试创建一个批处理文件 将文本文件中列出的多个文件复制到新文件夹中 我发现了几个与此相关的线程 但我仍然无法使批处理正常工作 我遇到的问题是txt中列出的文件都位于不同的源位置并且具有不同的扩展名 例如 该列表如下 C Users F
  • CSS边距重叠而不是给出距离[重复]

    这个问题在这里已经有答案了 最近我遇到了边距问题 但我无法解决它 我的 HTML 看起来像这样 div class info box Some text div div class form div CSS info box border
  • 从 Linux 调试 Windows 内核

    我曾经使用调试 Windows 内核虚拟KD WinDBG和一个虚拟机 最近我得到了一台Linux机器 现在我想知道当你的主机无法运行时调试Windows内核的最简单方法是什么虚拟KD WinDBG 我假设该解决方案需要两个虚拟机 但我宁愿