Как найти виртуальную машину на компьютере
Детектим виртуалки
Определяем факт запуска приложения в VirtualBox, VMware Workstation, Virtual PC и Parallels Workstation
Не каждому хочется, чтобы его, кхм, новый текстовый редактор какие-нибудь неприятные дядьки исследовали под виртуальной машиной. Детект виртуалок — обязательный функционал определенного рода софта, и поэтому наша рубрика ну совершенно никак не может обойтись без обзора соответствующих способов!
Как распознать виртуальную машину?
Во-первых, любая виртуальная машина несет на своем борту какое-нибудь специфическое оборудование. Это касается видеоадаптера, жесткого диска, идентификатора процессора, версии BIOS, MAC-адреса сетевой карты.
Во-вторых, виртуальные машины оставляют следы в системе в виде запущенных вспомогательных процессов, драйверов и других специфических объектов.
В-третьих, если как следует покопаться в реестре виртуальной машины, там можно найти много всяких интересных ключей, характерных только для виртуальных машин.
Ну и в-четвертых, некоторые производители специально оставляют возможности, позволяющие обнаружить их продукты.
Что же касается общих признаков наличия виртуальной машины, предложенных в свое время госпожой Рутковской (характерное расположение таблиц IDT, GDT и LDT, а также время выполнения операций процессором), то в настоящий момент все эти признаки трудно поддаются анализу и приведению к какому-нибудь общему знаменателю, главным образом из-за многоядерности и многоликости современных процессоров.
Анализируем оборудование
Начнем, пожалуй, с жесткого диска. Если посмотреть идентификатор жесткого диска в диспетчере устройств на виртуальной машине, то в его составе можно увидеть интересные строчки:
Самый простой способ узнать наименование жесткого диска — прочитать значение ключа с именем «0» в ветке реестра HKLMHARDWARESYSTEMCurrentControlSetServicesDiskEnum.
В этом месте перечисляются все дисковые накопители в системе, и первым, как раз в ключе с именем «0», будет тот диск, с которого произошла загрузка системы.

Хакер #174. Собираем квадрокоптер
Как читать реестр, я думаю, ты знаешь. Используем сначала API RegOpenKeyEx для открытия нужного ключа, далее с помощью RegQueryValueEx читаем значение. Выглядеть это должно примерно вот так:
Далее все просто — используем strstr для поиска нужных нам строк в считанном значении и, в зависимости от результата сравнения, делаем вывод. Версия BIOS содержится в ключе «SystemProductName» в ветке HKLMHARDWAREDESCRIPTIONSystemBIOS. К примеру, для VMware там будет лежать строка «VMware Virtual Platform», а для VirtualBox — «VBOX –1».
Прочитать это все можно с помощью все тех же API — RegOpenKeyEx и RegQueryValueEx.

Данные о видеоадаптере можно подглядеть в HKLMSystemCarrentControlSetEnumPCI. В этой ветке перечислено все, что подключено к шине PCI, в том числе и видеокарта. Для VirtualPC это строчка вида VEN_5333&DEV_8811&SUBSYS_00000000&REV_00, которая определяет видеоадаптер S3 Trio 32/64, эмулируемый виртуалкой от Microsoft — на реальном железе такое оборудование нынче днем с огнем не сыскать (а у меня такая была в конце прошлого века. — Прим. ред.). Для VirtualBox видеокарта описана последовательностью VEN_80EE&DEV_BEEF&SUBSYS_00000000&REV_00, что расшифровывается как «VirtualBox Display», а у Parallels Workstation — строка VEN_1AB8&DEV_4005&SUBSYS_04001AB8&REV_00 определяет видеоадаптер «Parallels Display».
Помимо этого, в VirtualBox можно найти строку VEN_80EE&DEV_CAFE&SUBSYS_00000000&REV_00, определяющую некий «VirtualBox Device», а у Parallels Workstation строки VEN_1AB8&DEV_4000&SUBSYS_04001AB8&REV_00 и VEN_1AB8&DEV_4006&SUBSYS_04061AB8&REV_00, определяющие «Parallels Tools Device» и «Parallels Memory Controller» соответственно.
Алгоритм действий следующий: пытаемся открыть нужный нам ключ, и если он открывается успешно, то оборудование, описанное этим ключом, в наличии и можно делать вывод о присутствии какой-либо виртуальной машины:
Идентификатор процессора определяется с помощью команды cpuid. Благодаря ей можно получить много всякой полезной информации об установленном процессоре. Вид выдаваемой этой командой информации зависит от содержимого регистра EAX. Результат работы команды записывается в регистры EBX, ECX и EDX. Подробно про эту команду можно почитать в любой книге по программированию на ассемблере. Для наших целей мы будем использовать эту инструкцию, предварительно положив в регистр EAX значение 0x40000000:
После выполнения этого кода на VMware Workstation в переменных ID_1, ID_2 и ID_3 будут записаны значения 0x61774d56, 0x4d566572 и 0x65726177 соответственно (в символьном представлении это не что иное, как «VMwareVMware»), на VirtualBox в ID_1 и в ID_2 будет лежать значение 0x00000340, а на Parallels Workstation в ID_1 0x70726c20, в ID_2 — 0x68797065 и в ID_3 — 0x72762020 (что соответствует строке «prl hyperv»).
Использование MAC-адреса для идентификации производителя сетевой карты, конечно, не самый надежный способ (ибо MAC-адрес довольно-таки просто поменять), но тем не менее его вполне можно применить для детекта виртуальных машин в качестве дополнительной проверки.
Ты наверняка знаешь, что первые три байта MAC-адреса сетевой карты определяют ее производителя. Производители виртуальных машин в этом плане не исключение:
Вытащить эти первые три байта из MAC-адреса нам поможет API-функция GetAdaptersInfo:
Вспомогательные процессы, окна и другие «подозрительные» объекты
Для нормальной работы практически все виртуальные машины требуют установки дополнений к гостевой операционной системе, например VBoxGuestAddition для VirtualBox или Parallels Tools для Parallels Workstation. Без этих дополнений работа с виртуальной машиной несколько затруднительна (ни тебе нормального разрешения экрана и полноэкранного режима, ни взаимодействия с USB-девайсами, ни нормальной настройки сетевых подключений). В общем, все производители виртуалок не рекомендуют использовать их без этих дополнений. А эти самые дополнения оставляют очень заметный след в виде запущенных процессов:
Для поиска процесса по имени мы воспользуемся функциями CreateToolhelp32Snapshot, Process32First и Process32Next:
Помимо непосредственно самих процессов, демаскирующим признаком могут стать окна, открытые этими процессами. Окон в каждой из рассматриваемых виртуальных машин может быть довольно много, и все их мы перечислять не будем, а ограничимся одним или двумя. Итак:

Найти окно по имени класса очень просто — для этого есть функция FindWindow:
Помимо процессов и окон, указывающих на наличие ВМ, можно найти и другие «подозрительные» объекты — например, если покопаться в гостевой ОС виртуальной машины утилитой WinObj или какой-нибудь аналогичной, то можно найти вот такие объекты:

Проверить наличие «подозрительного» объекта очень просто, достаточно попытаться открыть его с помощью CreateFile:
Что еще «подозрительного» можно найти в реестре?
Помимо признаков наличия специфического оборудования, в реестре можно увидеть и другие следы, оставляемые виртуальными машинами. Некоторые из них базируются в ветке HKLMHARDWAREACPIDSDT. Достаточно в этом месте проверить наличие таких вот ключей:
Проверку реализуем так же, как мы проверяли наличие определенного оборудования. Просто делаем попытку открыть нужный нам ключ и, в случае успеха, делаем вывод о наличии ВМ.

Возможности, заложенные производителем
Некоторые производители (в частности, VMware и Microsoft) специально реализуют возможности управления своими продуктами, которые можно использовать для наших целей.
В Virtual PC используются инвалидные (не «инвалидные», а «альтернативно одаренные». И вообще-то они «недействительные». — Прим. ред.) команды процессора с опкодами 0x0F, 0x3F, 0x07 и 0x0B, попытка выполнения которых на реальном процессоре вызовет исключение, в то время как на Virtual PC все пройдет нормально. С помощью этих команд можно достаточно просто задетектить виртуалку от Microsoft:
В VMware Workstation для взаимодействия гостевой и основной ОС реализован небольшой бэкдор в виде порта с номером 0x5658. Для его использования необходимо в EAX положить «магическое» число 0x564d5868 (в символьном представлении — «VMXh»), а в ECX записать одну из команд взаимодействия гостевой и основной ОС (например, команда 0x0A возвращает версию установленной VMware Workstation). Короче, выглядит все это приблизительно так:
Заключение
Как видишь, признаков, характерных для виртуальных машин, предостаточно, и для того, чтобы их увидеть, сильно глубоко копать совсем не нужно.
Лучшие виртуальные машины для Windows: ставьте, если очень хочется посмотреть на другие ОС
Рассмотрим детальнее, что такое виртуальные машины для Windows и для чего они нужны. Узнайте все о лучших симуляторах ОС и о том, как начать их использование.
Виртуальная машина (ВМ) – это компьютерное приложение, с помощью которого пользователь может создавать имитацию операционной системы. В машине устанавливается образ ОС для использования внутри существующей системы. Очень удобно, не правда ли? Но есть и подводные камни. Читайте, с чем вы столкнетесь при установке и какую виртуальную машину для Виндовс версий 7,8 и 10 лучше выбрать.
Зачем нужны виртуальные машины для ПК?
В большинстве случаев ВМ используются для тестирование программного обеспечения в разных операционных системах. Для работы с несколькими ОС понадобится всего один компьютер, что существенно ускоряет работу.
На одном компьютере можно запустить одновременно несколько виртуальных машин. Их количество зависит от доступной оперативной памяти и места на детском диске, так как виртуальная ОС потребляет точно такой же ресурс памяти, как и обычная инсталлированная на компьютере копия.
С помощью виртуальных машин можно работать с программами, функциями, которые недоступны в основной ОС. Также, есть возможность создания резервных копий ВМ, с их последующим перемещением и использованием на других компьютерах.
Вирусы, ошибки и другие сбои виртуальной ОС не влияют на работу основной системы. После закрытия машины происходит остановка работы дополнительной ОС и освобождается оперативная память.
В процессе работы ВМ устройство может тормозить, ведь повышенное потребление ресурсов хранилища приводит к увеличению времени обработки запросов.
Причины установки ВМ:
VirtualBox
VirtualBox – это виртуальная машина для Windows 7,8,10. Среда виртуализации распространяется на бесплатной основе и может быть установлена как для работы с операционными системами, так и для развертывания сетевой инфраструктуры и хостинга сайтов.
Главное окно VirtualBox:
Главная особенность данной виртуальной машины – это кроссплатформенность. Она отлично работает на всех версиях Виндоус. Также, с сайта разработчика можно скачать инсталляторы для Mac OS, Linux, Debian. В самой среде виртуализации можно устанавливать любые десктопные ОС.
С помощью VirtualBox вы сможете ознакомиться с функционалом ОС или же в безопасном режиме протестировать программу без вреда основной системе. Часто пользователи предпочитают устанавливать на виртуальные машины старые игры, которые несовместимы с современными ОС.
После завершения работы симулятора все данные и изменения будут сохранены. При следующем включении вы будете возвращены на рабочий стол и сможете продолжить выполнение задач.
Преимущества и недостатки
Преимущества VirtualBox:
Также, отличительной особенностью новой VirtualBox 4 является удобная система управления виртуализацией и интуитивно-понятная рабочая область программы. Также, в новой сборке доступна возможность выполнения захвата видео с экрана дополнительной ОС.
VirtualBox поддерживает работу с подключенными к компьютеру USB-носителями.
Недостатки программы:
Как установить
Для установки программы VirtualBox загрузите инсталлятор с официального сайта разработчика – компании Oracle. Процесс установки стандартный и не требует дополнительных настроек:
В поле «Custom Setup» есть возможность отключить поддержку USB, сетевых служб. Это позволяет уменьшить итоговый размер приложения.
Видеоинструкция, как установить две ОС с помощью VirtualBox
Обзор функционала и первая настройка программы
Поле установки программы можно приступать к созданию первой виртуальной машины. Кликните на кнопку «Создать» в левом верхнем углу окна. Откроется вкладка настройки ВМ:
В окне мастера настройки выберите тип виртуальной ОС (Windows, Linux, Debian, MacOS) и ее версию. Задайте имя для создаваемого симулятора и кликните на кнопку «Далее».
Затем, программа предоставит вам возможность самостоятельно указать размер оперативной памяти, который будет выделен под дополнительную ОС. Для пользователей-новичков советуем задавать значение, которое указано в поле «Рекомендуемый размер основной памяти».
Размер оперативной памяти для ВМ следует определят в зависимости от технических характеристик вашего ПК. Если на вашем компьютере доступно 4 ГБ оперативной памяти, для нормальной работы симулятора будет достаточно 512 МБ-1 ГБ.
Далее программа попросит выбрать в файловой системе образ ОС (который соответствует указанному ранее семейству и версии). После завершения настройки появится окно с кратким перечислением всех параметров. Нажмите на «Финиш».
После завершения установки виртуального Windows, в главном окне VirtualBox появиться иконка для запуска ОС. Кликните на нее и дождитесь загрузки рабочего стола. При необходимости, выполните установку драйверов.
Для автоматического обновления драйверов откройте вкладку «устройства» на панели инструментов виртуальной машины. Затем нажмите на нужный тип носителя и в новом окне следуйте инструкции для получения нового ПО.
Готово. Теперь вы можете начинать работу с виртуальной операционной системой. Для выхода из программы сначала выключите ОС, а потом закройте VirtualBox.
VMware
VMWare Workstation – это лучшая виртуальная машина для Windows 10. Разработчик позиционирует программу как удобную платформу для создания виртуализации. По сравнению с другими популярными аналогами, VMWare поддерживает больше функций для кастомной настройки виртуальной машины и позволяет синхронизировать симулятор с инструментами разработки ПО.
Данная среда для виртуализации популярна среди программистов, веб-дизайнеров и других специалистов, которым часто приходиться тестировать работу своих проектов на кроссплатформенность.
Преимущества и недостатки
Среди преимуществ VMWare можно выделить:
Недостатки приложения:
Как установить
Скачать виртуальную машину для Windows можно с официального сайта разработчика VMWare.com.
В процессе установки программы рекомендуется выключить Защитник Windows или другой работающий антивирус. Это необходимо только для правильной инсталляции всех файлов и алгоритмов шифрования, которые применяет программа для виртуальных машин. Никакого вреда для вашей основной ОС нанесено не будет, так как продукт скачан с официального источника.
Обзор функционала и первая настройка программы
Для создания первой виртуальной машины в VMWare понадобится загрузить на компьютер дистрибутив ОС, которую вы хотите использовать в эмуляторе. Затем откройте окно установленного приложения и кликните на поле «Создать новую виртуальную машину»
Обратите внимание! Пользователь может создать группу виртуальных машин, вместо нескольких симуляторов. Это позволяет снизить ресурс потребляемой оперативной памяти и ускорить работу компьютера и симулятора ОС.
В окне мастера настройки ВМ укажите путь к образу операционной системы (это может быть файл в памяти компьютера или загрузочный диск). Также, есть возможность настроить виртуальную машину без установки ОС (её можно инсталлировать позже).
Далее следуйте инструкции, чтобы установить виртуальную машину:
После завершения настройки виртуальной машины дождитесь установки образа ОС и начинайте работу:
Microsoft Virtual PC
Microsoft Virtual PC – это еще один популярны эмулятор виртуальных машин. Программа хорошо совместима со всеми версиями OS Windows. Если в качестве основной ОС вы используете продукт от Майкрософт, для эмуляции советуем выбрать именно Microsoft Virtual PC.
Преимущества и недостатки
Преимущества эмулятора:
Недостатки:
Обзор функционала и первая настройка программы
Для установки виртуальной ОС сначала загрузите ее образ в память компьютера, а затем откройте приложение Microsoft Virtual PC. Кликните на кнопку «Создать виртуальную машину» и в новом окне настройте следующие параметры:
Мы рассказали вам о лучших виртуальных машинах для Windows, но далеко не о всех. Если вы считаете, что это не самые лучшие — пишите в комментариях! Помогите новичкам-читателям определиться, с какого эмулятора начать.
Как пользоваться VirtualBox
VirtualBox – это специальное средство для виртуализации, позволяющее запускать операционную систему внутри другой. Оно поставляется в двух версиях – с открытым и закрытым исходным кодом. С помощью VirtualBox мы можем не только запускать ОС, но и настраивать сеть, обмениваться файлами и делать многое другое.
Что представляет собой VirtualBox и как им пользоваться – об этом и многом другом поговорим в сегодняшней статье.
Шаг 1: Установка Virtual Box
В инсталляции VirtualBox нет ничего сложного: программа поставляется в бесплатном доступе для Linux, Solaris, macOS и Microsoft Windows. Скачать ее можно с официального сайта.
Как только установка будет завершена, перед нами отобразится главный экран программы:
С ним мы и будем работать в последующих разделах – в частности рассмотрим, как создать виртуальную машину и провести дополнительные настройки.
Шаг 2: Создаем виртуальную машину
Как мы уже говорили, основная функция VirtualBox – виртуализация. Чтобы запустить новую операционную систему, необходимо создать для нее виртуальную машину. Для этого необходимо выполнить следующее:
Обратите внимание на то, что мы еще не устанавливали операционную систему, а лишь отвели для нее место. Теперь мы можем запустить виртуальную машину и поставить на нее нужную ОС, но перед этим давайте пройдемся по некоторым параметрам.
Шаг 3: Настраиваем процессор
Для каждой операционной системы мы можем задать пользовательские настройки процессора, например, нам доступна возможность выбрать количество ЦП, а также установить предел загрузки ЦПУ. Все эти параметры находятся в настройках выбранной виртуальной машины:
Функция «Включить PAE/NX» предназначена для поддержки 4 и более Гб ОЗУ в 32-битных системах.
Во вкладке «Ускорение» мы можем выбрать режим виртуализации, а также настроить дополнительные параметры для увеличения скорости работы.
Шаг 4: Настраиваем графику
Иногда при установке новой виртуальной машины значение видеопамяти по умолчанию составляет 16 Мб, тогда как рекомендуется выделять не менее 128 Мб. Изменить это можно в настройках раздела «Дисплей».
Если у вас видеокарта на 2 Гб, то максимальное значение видеопамяти будет равно 256 Мб. В этом же разделе можно установить количество мониторов, изменить коэффициент масштабирования и многое другое.
Шаг 5: Настраиваем сеть
Изначально виртуальная машина использует сеть NAT, что вполне удобно, если необходимо получить доступ к интернету. Если же вам нужно настроить взаимосвязь между разными ВМ, то потребуется выполнить дополнительные настройки.
В настройках переходим в раздел «Сеть» и заходим в подраздел «Адаптер 2». Там активируем пункт «Включить сетевой адаптер» и указываем тип подключения «Виртуальный адаптер хоста».
Обратите внимание на имя – теперь все, кто будет его использовать, автоматически подключатся к единой виртуальной сети.
Шаг 6: Клонирование
Еще одна полезная функция – «Клонирование». С ее помощью мы можем сделать резервную копию виртуальной машины, чтобы в последующем обратиться к ней при возникновении различного рода проблем.
Для этого кликаем правой кнопкой мыши по виртуальной машине и выбираем «Клонировать. ».
В отобразившемся окне потребуется выбрать путь и скачать туда резервную копию.
Шаг 7: Запускаем виртуальную машину
Вот мы и пришли к самому главному – запуску созданной виртуальной машины в VirtualBox. Для этого нам потребуется загрузочный диск необходимой операционной системы. Это обычный образ, который мы всегда используем при установке ОС на ПК. Установить его в VirtualBox мы можем следующим образом:
Шаг 8: Устанавливаем дополнительные плагины
Дополнительные расширения VirtualBox позволяют получить доступ к USB-устройствам и веб-камере из виртуальной машины, настроить удаленный доступ и многое другое. Для их установки потребуется скачать дополнительный пакет с официальной страницы.
Далее следуем инструкции:
Таким образом, вы сможете работать с USB-устройствами напрямую через виртуальную машину.
Шаг 9: Делаем снимки состояния
Ранее мы уже создавали копию виртуальной машины, которой можно воспользоваться в случае непредвиденных проблем. Но это не единственный способ создания резервной копии – мы также можем использовать специальную функцию «Снимок состояния». Она позволяет возвращать систему к предыдущему состоянию.
Создать снимок можно следующим образом:
Шаг 10: Записываем видео с экрана
Если вам потребуется снять ролик о том, как вы пользуетесь операционной системой через VirtualBox, сделать это можно прямо в программе. Достаточно запустить виртуальную машину и перейти в раздел «Вид», затем выбирать «Запись».
Шаг 11: Подключаем дополнения гостевой системы
Дополнения гостевой системы позволяют использовать такие возможности, как общий буфер обмена, общие папки, перетаскивание файлов, интеграция экрана, адаптация разрешения виртуальной машины и многое другое.
Останется запустить специальный установщик, который поддерживается как на Linux, так и на Windows.
На этом моя статья подходит к концу. Сегодня мы рассмотрели, как пользоваться мощным инструментом VirtualBox. С его помощью мы можем устанавливать дополнительные операционные системы, проводить между ними сеть, а также выполнять все то, что доступно в обычной ОС.












