如何识别您正在虚拟机下运行?

2024-04-01

有没有办法从虚拟机内识别您的代码正在虚拟机内运行?

我想有或多或少简单的方法来识别特定的虚拟机系统,特别是如果虚拟机安装了提供商的扩展(例如 VirtualBox 或 VMWare)。但是有没有一个通用的方法来识别你不是直接在CPU上运行的呢?


对此的大量研究致力于检测所谓的“蓝色药丸”攻击,即主动尝试逃避检测的恶意虚拟机管理程序。

检测虚拟机的经典技巧是填充 ITLB,运行一条指令must进行虚拟化(当将控制权交给虚拟机管理程序时,必然会清除此类处理器状态),然后运行更多代码来检测 ITLB 是否仍然填充。第一篇论文位于here http://www.symantec.com/avcenter/reference/Virtual_Machine_Threats.pdf,以及一个相当丰富多彩的解释研究人员的博客 http://web.archive.org/web/20080213212608/http://www.matasano.com/log/930/side-channel-detection-attacks-against-unauthorized-hypervisors/和替代方案Wayback Machine 博客文章链接(图片已损坏) http://web.archive.org/web/20080720153608/http://www.matasano.com/log/930/side-channel-detection-attacks-against-unauthorized-hypervisors/.

对此讨论的底线是,总有一种方法可以检测恶意虚拟机管理程序,并且检测不试图隐藏的虚拟机管理程序要简单得多。

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

如何识别您正在虚拟机下运行? 的相关文章

  • 虚拟化 ItemControl?

    我有一个ItemsControl但是包含我想要虚拟化的数据列表VirtualizingStackPanel IsVirtualizing True 似乎不适用于ItemsControl 确实是这样吗 还是有另一种我不知道的方法可以做到这一点
  • Linux 中是否有可以唯一标识 VM 实例的 UUID 类型值?

    我有一个在 Linux 中运行的应用程序 每个人都会尝试从操作系统获取 UUID 并向中央服务器报告 我想确保所有实例都使用全局唯一的 UUID 运行 如果 Linux 位于裸机上 则它只能读取 UUID 例如 从 dmidecode 命令
  • docker:直接通过 SSH 访问容器

    到目前为止我们使用了几个linux用户 系统 foo 服务器 系统栏 服务器 我们想把系统用户放入docker容器中 linux用户system foo gt 容器system foo 服务器内部的更改不是问题 但远程系统使用这些用户向我们
  • 我的 BIOS 设置中没有启用 Hyper-V 的选项

    我是 Windows Phone 8 应用程序开发新手 我安装了SDK 8 0 当我运行应用程序时 它显示一条错误 告诉我启用 Hyper V 在搜索过程中我发现这个 MSDN 文档BIOS 中有解决方案 但是当进入我的BIOS设置时 却没
  • 在 Cypress 测试 Vue.js 应用程序期间禁用 Ag Grid 虚拟化

    如何在 Vue js 应用程序的 Cypress 测试期间禁用 Ag Grid 的虚拟化 由于 Ag 网格不会一次绘制所有内容 因此我必须模拟滚动来验证网格中的数据 网格行为等 这使得我的 Cypress Mocha 测试变得很麻烦 如果我
  • Docker Java 应用程序无法从控制台获取输入

    我正在尝试为我的 java 应用程序创建一个 docker 映像 启动时需要为该应用程序提供密码 当前通过控制台 我尝试了多种获取输入的方法 但都失败了 这是 docker 的限制吗 如果是 有解决方法吗 对于这个片段 Console co
  • 特权指令、陷阱和系统调用之间的关系

    我试图了解虚拟机监视器 VMM 如何虚拟化 CPU 我现在的理解是 当CPU处于用户模式时 当即将执行特权指令时 CPU会发出保护故障中断 在 C 等高级语言中 特权指令被包装在系统调用中 例如 当应用程序需要当前日期和时间 与I O设备交
  • 在 SR-IOV 虚拟功能 (VF) NIC 之间转发数据包

    我有一个支持 Intel SR IOV 的 Intel 82599ES 10G NIC 我已成功创建了 8 个虚拟功能 VF 并将其分配给 2 个 qemu kvm VM 每个 VM 2 个 VF 两台虚拟机都使用分配的 VF 运行 DPD
  • vCPU 是否可以使用两台不同硬件计算机的不同 CPU

    我搜索过这个问题 但似乎没有得到公平的答案 假设我不想创建一个具有 vCPU 的虚拟机 并且该 vCPU 必须有 10 个核心 但我只有 2 台计算机 每台计算机有 5 个物理 CPU 核心 是否可以通过依赖这两个物理 CPU 来创建一个
  • WPF DataGrid 虚拟化无法正常工作?

    我有一个 DataGrid 其中有一个 DataTable 设置为其 ItemsSource DataTable 包含 24 列和约 1600 行 实际上我稍后必须加载更多行 但目前这已经够麻烦的了 尽管将列和行的虚拟化设置为活动状态 Da
  • C/C++软件可以编译成字节码以便以后执行吗? (架构独立的 UNIX 软件。)

    我想将现有软件编译成演示文稿 以便以后可以在不同的体系结构 和操作系统 上运行 为此 我需要一个可以在另一个架构 操作系统上轻松运行 模拟的 字节 代码 LLVM http llvm org 红外 一些 RISC 汇编 一些随机的想法 编译
  • 适用于 Android 的 I-Phone 虚拟机

    我正在考虑打开一个项目来为 android 2 0 创建一个 iPhone 虚拟机 请阅读 motorola droid 在此之前我有一些问题 是否已经存在我刚刚错过的一个 Droid 的 Arm Cortex A8 降频至 550MHz
  • 应用程序的沙箱虚拟机(概念)

    我想编写一个沙箱虚拟机来执行已编译的程序 我的目标是将该程序与操作系统的其余部分隔离并控制其执行 以便它不会对主机做出任何有害的事情 我假设 执行的程序被编译为可移植可执行格式 并且是机器代码 而不是任何类型的字节代码或 CLR 执行的程序
  • 自动化 VMWare 或 VirtualPC

    我目前正在尝试使用构建脚本 并且由于我有一个受源代码控制的 ASP net Web 部件 因此我的构建脚本应该在最后执行此操作 从网络获取 裸 Windows 2003 IIS VMWare 或 Virtual PC 映像 启动它 将文件从
  • libvirt 和 VirtualBox / 入门

    我正在尝试使用 VirtualBox 作为虚拟化解决方案来开始使用 libvirt 我安装了所有内容 并且 VirtualBox 本身在使用 VBoxHeadless 命令时正在运行 但是 libvirt 无法连接到 VirtualBox
  • 寻找有关在 Windows 7 上安装应用程序的“正确”方法的文档

    我正在使用一些遗留应用程序 10 15 年 并试图找到有关在 Windows 7 上安装和运行它们 以及任何用户应用程序 的 正确 方法的指导 而无需完全的管理员权限 换句话说 可执行文件 只读文件应存放在何处 用户数据 读写文件应存放在何
  • 在我的服务器上运行其他人代码(沙箱)的安全方法?

    我想制作一个在本地运行其他人的代码的网络服务 当然 我想限制他们的代码对某个 沙箱 目录的访问 这样他们就无法连接到我服务器的其他部分 数据库 主网络服务器等 最好的方法是什么 运行VMware Virtualbox 我猜它已经尽可能安全了
  • 树视图虚拟化

    我们正在尝试找到一种虚拟化的好方法TreeView 数据并不是真正的问题 因为它非常轻 每个项目大约 16 字节 问题是我们可能有数以万计的数据 尽管实际数据只占用 160 kb 内存 但树视图项目确实使用更多的内存 我们现在已经尝试使用
  • 在“无头模式”下运行虚拟操作系统意味着什么?

    我已经听到很多关于新版本的 VMWare Fusion 如何以 无头模式 运行虚拟操作系统的信息 谷歌搜索清楚地表明其他虚拟化产品也具有类似的功能 但是 我无法找到这实际上意味着什么的很好的描述 当你这样做时会发生什么 无头模式意味着虚拟机
  • 检查 VT-x 是否已激活而无需在 Linux 中重新启动?

    我有一台配备 Intel Core i5 M 450 2 40GHz 的笔记本电脑 显然有 VT x 但没有 VT d 我有 Ubuntu 12 04 32 位 但希望在其上运行基于虚拟 64 位终端的 Linux 我如何知道 BIOS 是

随机推荐

  • 为什么路由不能与 ElasticSearch Bulk API 一起使用?

    我正在向 ElasticSearch 设置批量请求并指定要路由到的分片 但是当我运行它时 文档会被发送到不同的分片 这是 ElasticSearch 批量中的错误吗 当我只索引单个文档时它就有效 当我搜索时它有效 但当我进行批量导入时则不然
  • 如何在混合移动应用程序中实施 Google Analytics?

    我正在使用 HTML5 CSS 和 jQuery Mobile 编写一个混合移动应用程序 我将使用 Cordova Js 将 HTML5 应用程序转换为适用于 iOS 和 Android 的本机移动应用程序 我想使用 Google Anal
  • vim 有 C++11 语法文件吗?

    特别是初始化列表的显示非常糟糕 vector
  • 为什么 vue v-model 不适用于数组 prop?

    我有一个自定义组件 它采用modelValue道具并发出update modelValue事件 在父组件中 我传递一个数组 测试组件 vue
  • Azure 服务总线“发送”抛出由于对象的当前状态而导致操作无效

    我不确定发生了什么变化 但突然我得到一个 InvalidOperationException 由于对象的当前状态 操作无效 我的代码以前确实有效 但我不记得更改过任何内容 我正在使用 Microsoft Azure ServiceBus 4
  • 创建 d3.js SVG 文本元素后获取其宽度

    我正在尝试获取一堆的宽度text我用 d3 js 创建的元素 这就是我创建它们的方式 var nodesText svg selectAll text data dataset enter append text text function
  • 如何在会话中运行多个图 - Tensorflow API

    张量流API https github com tensorflow models tree master research object detection提供了一些预先训练的模型 并允许我们使用任何数据集来训练它们 我想知道如何在一个张
  • 在 Pydroid 3 终端中安装 Git

    我正在使用 Pydroid3 并且想在 Pydroid 终端中使用 Git 在我的 Termux 终端中 我能够按照此处所述安装 Git git 命令现在只能在 Termux 终端中识别 但不能在 Pydroid 中识别 无法在 Pydro
  • Keras/Tensorflow 中涉及梯度的自定义损失函数

    我发现这个问题之前已经被问过几次了 但没有任何解决方案 我的问题很简单 我想实现一个损失函数 它计算预测梯度和真值之间的 MSE 最终转向更复杂的损失函数 我定义了以下两个函数 def my loss y true y pred x dyd
  • 自定义警报对话框边框

    我正在创建一个自定义对话框 其示例代码为 final AlertDialog dialog protected AlertDialog createDialog int dialogId AlertDialog Builder builde
  • 如何设计深度卷积神经网络? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 据我了解 所有 CNN 都非常相似 它们都有一个卷积层 后面是池化层和 relu 层 有些具有专门的层 例如 FlowNet 和 Segn
  • Iphone 迭代 NSString 的子字符串出现次数

    我想找到 NSString 中所有出现的子字符串 并逐一迭代以对该 NSString 进行一些更改 我该怎么做呢 怎么样 find first occurrence of search string in source string NSR
  • Angular2 模块级样式表

    我正在使用模块化结构设计我的网站sass questions tagged sass我愿意以这样的方式组织样式表 在每个模块级别 而不是组件级别 定义样式表 然后将其导入所有组件中以保持整个模块的标准布局 那么这是一个好方法吗 如果是的话
  • 如何使用 distutils 和/或 setuptools 在 mac os x 上创建 .dylib C 扩展?

    我需要使用 distutils 和 或 setuptools 创建一个 C 扩展 它可以在运行时和编译时动态使用 用于不同的目的 这在 Linux 上不是问题 但在 OS X 上却是问题 默认情况下 distutils 在 OS X 上创建
  • mongodb 字段以 $ 开头的奇怪行为

    在这个帖子上MongoDB 查找嵌套元素 https stackoverflow com questions 8983482 mongodb finding nested elements 作者声称 mongodb 文档结构是 car re
  • 本地 Dask 工作线程无法连接到本地调度程序

    在 OSX 10 12 6 上运行 Dask 0 16 0 时 我无法连接本地dask worker给当地人dask scheduler 我只是想关注官方达斯克教程 https github com dask dask tutorial b
  • rpart - 查找修剪树的 cp 值将返回的叶子数量

    我有一个要求 需要根据分类变量 具有超过 5 个类别值 与连续变量的关联将其分为 5 组 为了实现这一目标 我正在使用rpart with annova 方法 例如我的分类变量是type有代码1 2 3 4 5 6 7 8 9 10 11
  • ReferenceError:令牌未定义

    我一直在关注使用 ionic 进行身份验证的登录教程 但是当我尝试运行该程序并登录时 错误是 ReferenceError 令牌未定义 在 storeUserCredentials services js 16 在 services js
  • 使用 ASP.NET 进行卷曲请求

    我已经阅读了 Stack 上的其他一些帖子 但我无法让它工作 当我在Windows机器上的git中运行curl命令时 它在我的电脑上工作正常 但是当我将其转换为asp net时 它不起作用 private void BeeBoleReque
  • 如何识别您正在虚拟机下运行?

    有没有办法从虚拟机内识别您的代码正在虚拟机内运行 我想有或多或少简单的方法来识别特定的虚拟机系统 特别是如果虚拟机安装了提供商的扩展 例如 VirtualBox 或 VMWare 但是有没有一个通用的方法来识别你不是直接在CPU上运行的呢