Как узнать виртуальная машина или нет windows

Как узнать, работаю ли я на виртуальной машине или нет?

Есть ли способ узнать, является ли машина с Windows, на которой я работаю, виртуальной или физической? (Я подключаюсь с помощью RDP к машине. Если это виртуальная машина, она работает и обрабатывается VMWare).

Если это Windows, просто взгляните на аппаратные экраны. У него будет миллиард пять виртуальных устройств под маркой VMWare.

В окне CMD введите:

Вы найдете строку со следующим текстом (или аналогичным):

Если это обрабатывается VMware, это не так уж сложно в настоящий момент. Это может измениться в будущем.

В Windows из CMD:

возвращает что-то вроде:

В Linux запустите это:

] # dmesg | grep DMI
DMI 2.3 присутствует. DMI: Виртуальная машина Microsoft Corporation / Виртуальная машина, BIOS 090006 23.05.2012 [root @ myhost

] # dmesg | grep -i virtual DMI: Виртуальная машина Microsoft Corporation, Виртуальная машина, BIOS 090006 23.05.2012 Загрузка ядра паравиртуализированного ядра на аппаратном вводе: эмуляция кнопки мыши Macintosh как / devices / virtual / input / input1 scsi 0: 0: 0: 0: виртуальный диск Msft с прямым доступом 1.0 PQ: 0 вход ANSI: 4: мышь, совместимая с Microsoft Vmbus, как / устройства / виртуальные / входные / входные4 физические: [root @ backdev1

Если вы находитесь в Windows, как говорит Castrocra , вы можете запустить systeminfo команду из командной оболочки cmd , а затем искать «версию BIOS».

Вероятно, это настоящие машины:

С другой стороны, это почти наверняка виртуальная машина:

Проверка поддержки аппаратной виртуализации

Аппаратная виртуализация — технология, обеспечивающая работу виртуальных операционных систем на аппаратном уровне (процессор, материнская плата) компьютера.

Наличие аппаратной поддержки очень сильно виляет на производительность виртуальных машин (например, виртуальная машина в Oracle Virtual Box) и разного рода эмуляторов (например, эмулятор Android для Windows – BlueStacks и др.).

С помощью данной технологии виртуальные операционные системы взаимодействуют с компонентами компьютера напрямую. Виртуальная ОС не зависит от родительской. Таким образом, можно запустить, например, 64-разрядную систему на 32-разрядной. Также, благодаря аппаратной виртуализации, виртуальная ОС может работать со скоростью, почти соизмеримой скорости штатно установленной системы.

Технологии виртуализации

Существует две наиболее распространённые технологии аппаратной виртуализации: VMX и SVM.

VMX (Virtual Machine eXtension) – технология аппаратной виртуализации от производителя процессоров Intel. Другие аббревиатуры и названия: VT-x, Vanderpool.

SVM (Secure Virtual Machine) – технология аппаратной виртуализации от производителя процессоров AMD. Другие аббревиатуры и названия: AMD-V, Pacifica.

Приложения для проверки

SecurAble

Очень простая программа, которая проверяет наличие аппаратных возможностей процессора, отвечающих за безопасность. Последним проверяемым параметром является интересующая нас поддержка аппаратной виртуализации. Если Вам интересно, как аппаратная виртуализация влияет на безопасность компьютера, нажмите на пиктограму и прочитайте довольно интересное объяснение (на англ.). Программа не требует установки, просто запустите и посмотрите результат.

Читайте также:  Системные характеристики для windows 10

Программу можно скачать с сайта разработчиков.

CPU-Z (CPUID)

Популярная бесплатная программа, отображающая информацию об основных компонентах компьютера: процессоре, материнской плате, оперативной памяти и видеокарте. После запуска программа собирает информацию о компонентах компьютера, затем отображает ее в соответствующих вкладках.

Нас интересует первая вкладка «CPU». По логотипу мы сразу видим, что в исследуемом компьютере установлен процессор от производителя Intel. В группе «Processor» есть поле «Instructions», где перечислены все инструкции, поддерживаемые процессором. Нас интересует присутствие инструкции, которая упоминается в разделе «Технологии виртуализации» этой статьи.

На картинке выше видно, что в поле «Instructions» присутствует инструкция «VT-x», что свидетельствует о поддержке аппаратной виртуализации на исследуемом компьютере.

Скачать программу можно на официальном сайте — CPUID. Следует отметить, что там также присутствует портативная (portable) версия, не требующая установки.

AIDA64

AIDA64 – мощная программа, позволяющая подробно изучить компоненты компьютера. Программа платная, но для нашей цели подойдет и пробная 30-дневная версия. На сайте разработчика также можно скачать портативную (portable) версию, не требующую установки.

Запустите программу и в меню слева перейдите в раздел «Системная плата > CPUID». В поле справа найдите список с названием «Виртуализация» и изучите его на предмет поддержки аппаратной виртуализации.

Как видно из картинки выше, процессор на исследуемом компьютере поддерживает набор инструкций «VMX» (кодовое название «Vanderpool»), что свидетельствует о присутствии в нем поддержки аппаратной виртуализации.

Аппаратная виртуализация в Windows – как проверить активность

Использование программ и операционных систем в виртуальной машине в настоящее время является обычной практикой, и виртуализация становится всё более неотъемлемой частью повседневной работы пользователей с компьютером благодаря появлению недавно анонсированной собственной изолированной программной среды Windows, то есть Windows Sandbox.

Но, чтобы воспользоваться всеми преимуществами виртуальных машин, сначала необходимо убедиться, что аппаратная поддержка, гарантируемая ПК, активна и полностью доступна в Windows.

Современные компьютерные процессоры оснащены специальными расширениями для традиционного набора команд x86, которые могут значительно улучшить использование виртуальных машин: независимо от того, называются они VT-x (Intel) или AMD-V, вышеупомянутые расширения используют одно и то же. Цель состоит в том, чтобы повысить производительность при работе с виртуальными машинами, повысить безопасность и защитить каждую виртуальную машину от ошибок и вредоносного кода, наносящих ущерб хост- и гостевой системе.

В Windows 10 проверка того, что расширения для виртуализации были включены в BIOS довольно проста: просто запустите инструмент управления задачами (также известный как диспетчер задач) с помощью сочетания клавиш Ctrl + Shift + Esc , откройте вкладку Производительность и убедитесь, что выделена закладка процессора (в столбце слева) и ознакомьтесь с информацией, представленной в нижней части: в строке, посвященной Виртуализации должно присутствовать слово Включено.

Читайте также:  Зависание windows при обновлении

В случае отключенной виртуализации для активации расширения VT-x или AMD-V потребуется доступ к BIOS / прошивке UEFI на ПК. Процедура, которая обычно не является необходимой, учитывая, что ПК, представленные на рынке сегодня, обычно продаются с активной «вспомогательной» виртуализацией по умолчанию.

Определить запущена программа на виртуальной машине или на настоящей

Определить запущена ли программа в виртуальной среде
Как определить, что код выполняется на виртуальной машине?

Как определить, что программа выполняется в виртуальной машине?
Подскажите, как можно определить, что программа выполняется в виртуальной машине (например.

Как определить, на виртуальной машине ли запущен bat-файл или нет?
Вот, что и нужно, чтобы при запуске бат файла в виртуальной машине выводилось сообщение:»Произведён.

Определить, программа запущена на ноутбуке или десктопе
Здравствуйте, подскажите как можно проверить ноутбук или системный блок?

Проверяйте при запуске программы оборудование на виртуальной машине на присутствие таких вещей как:
Дисковод — VBOX CD-ROM
Жесткий диск — VBOX HARDDISK
Видеокарта — VgaSave

Если что нибудь из списка имеется то скорей всего программа запущена на виртуалке.

Только эвристика. Надежного и стопроцентно рабочего способа нет.
Кое-что можно «заподозрить», перебирая имена устройств в оборудовании, есть также у
разных виртуалок свои особые «бэкдоры», можно проверять систему на их наличие, также
искать процессы и службы, которые работают только в виртуальной среде и имеют
специфические имена. Чем больше способов в совокупности будет применяться, тем выше
надежность детекта. Тема сложная, короче говоря.

Поищите в Гугле документ под названием «thwarting virtual machine detection», может найдете
что-то интересное. Еще есть вот такая статья:
http://www.codeproject.com/Art. -a-Virtual

Добавлю, что в некоторых ситуациях граница между виртуальной машиной и физической становится
весьма размытой. Например, если вы установите роль Hyper-V на Windows Server 2008, он сам станет
виртуальной машиной (т.н. bare metal Hypervisor).

Как определить, что вы работаете под виртуальной машиной?

Существует ли способ определить из виртуальной машины, что ваш код выполняется внутри виртуальной машины?

Я полагаю, что существуют более или менее простые способы идентификации конкретных систем виртуальных машин, особенно если на виртуальной машине установлены расширения поставщика (например, для VirtualBox или VMWare). Но есть ли общий способ определить, что вы не работаете непосредственно на процессоре?

12 ответов:

Большая часть исследований по этому вопросу посвящена обнаружению так называемых атак «голубых таблеток», то есть вредоносного гипервизора, который активно пытается уклониться от обнаружения.

Классический трюк для обнаружения виртуальной машины состоит в том, чтобы заполнить ITLB, выполнить инструкцию, которая должна быть виртуализирована (что обязательно очищает такое состояние процессора, когда он дает управление гипервизору), а затем выполнить еще немного кода, чтобы определить, заполнен ли ITLB. Первая бумага на нем расположена здесь , а также довольно красочное объяснение из блога исследователя и альтернативная обратная ссылка на статью блога (Images broken).

Читайте также:  Как изменить звук windows 10 при входе

Суть обсуждения этого вопроса заключается в том, что всегда есть способ обнаружить вредоносный гипервизор, и гораздо проще обнаружить тот, который не пытается скрыть.

Red Hat имеет программу, которая определяет, под каким (если таковые имеются) продуктом виртуализации она работает.: virt-what .

Использование стороннего поддерживаемого инструмента, такого как это-лучшая долгосрочная стратегия, чем попытка свернуть свою собственную логику обнаружения: больше глаз (тестирование против большего количества продуктов виртуализации) и т. д.

Более эмпирический подход заключается в проверке известных драйверов устройств виртуальной машины. Вы можете написать запросы WMI, чтобы найти, скажем, адаптер дисплея VMware, дисковод, сетевой адаптер и т. д. Это было бы удобно, если бы вы знали, что вам нужно беспокоиться только об известных типах узлов виртуальных машин в вашей среде. Вот пример выполнения этого в Perl, который может быть перенесен на язык по вашему выбору.

Это зависит от того, что вы ищете:

Если виртуальная машина не скрывается от вас специально, вы можете использовать какой-нибудь известный крючок. Например, поиск драйверов VmWare или наличие определенных строк в памяти или некоторых других контрольных знаков.

Если виртуальная машина действительно хочет, чтобы вы делали для нее специальные вещи, у нее будет какой-то очевидный крюк, например, изменение идентификатора процессора или добавление некоторых специальных регистров, к которым вы можете получить доступ, чтобы обнаружить его. Или особый устройство в известном месте в памяти (предполагая, что вы можете получить необработанный доступ к физическому пространству памяти вашего мира). Обратите внимание, что современные машины, такие как IBM Power6 и Sun UltraSparc T1/T2, всегда работают с гипервизором и никогда не работают непосредственно на необработанном оборудовании. Интерфейс к «аппаратному обеспечению», которое использует ОС, на самом деле является интерфейсом программного уровня гипервизора, без возможности обойти его. В этом случае обнаружение тривиально, так как это постоянное «да». Это наиболее вероятно будущее направление для всех компьютерных систем, которые могут позволить себе накладные расходы, посмотрите на поддержку в последних проектах, таких как Freescale qoriq p4080 chip, например (www.freescale.com/qoriq).

Если виртуальная машина намеренно пытается скрыться, а вы преследуете ее присутствие, это игра в кошки-мышки, где нарушение синхронизации и различный профиль производительности виртуальной машины почти всегда будут выдавать его. Очевидно, это зависит от того, как реализована виртуальная машина и сколько аппаратная поддержка существует в архитектуре (я думаю, что мэйнфрейм zSeries намного лучше скрывает присутствие виртуальной машины или стека виртуальных машин под вашей конкретной ОС, чем обычная x86-машина, например). См. http://jakob.engbloms.se/archives/97 для некоторого обсуждения этой темы. Можно попытаться спрятаться как виртуальная машина, но обнаружение, скорее всего, всегда выиграет, если оно будет достаточно сильно стараться.

Однажды я наткнулся на фрагмент кода ассемблера, который говорил вам, находитесь ли вы в виртуальной машине. Я погуглил, но не смог найти оригинальную статью.

Оцените статью