Обходим детектирование виртуальной машины программами в VMWare

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

Я использовал VMWare Fusion для Mac, однако с тем же успехом способ работает и в Workstation для Win.

1) Для работы необходима заново установленная система, как внести изменения в уже существующую — не нашёл.
Готовите виртуальный диск, указываете систему, как это обычно делаете, и в настройках к устанавливаемой машине, у меня этот пункт назван Isolation, выключаете любой обмен данными с хостовой ОС.
2) Далее надо найти конфигурационный VMX файл, создаваемый на этапе создания машины в VMWare, и в конец добавить строки:
isolation.tools.getPtrLocation.disable = «TRUE»
isolation.tools.setPtrLocation.disable = «TRUE»
isolation.tools.setVersion.disable = «TRUE»
isolation.tools.getVersion.disable = «TRUE»
monitor_control.disable_directexec = «TRUE»
monitor_control.disable_chksimd = «TRUE»
monitor_control.disable_ntreloc = «TRUE»
monitor_control.disable_selfmod = «TRUE»
monitor_control.disable_reloc = «TRUE»
monitor_control.disable_btinout = «TRUE»
monitor_control.disable_btmemspace = «TRUE»
monitor_control.disable_btpriv = «TRUE»
monitor_control.disable_btseg = «TRUE»

Эти опции предотвращают детектирование программами виртуального окружения через такие сложные проверки, как отслеживание адресного пространства памяти, счётчиков.

Важно! Если на этапе настройки установки будет опция вроде «Express install», «Быстрая установка» — выключайте их. Также не стоит устанавливать VMWare Tools в установленную систему, т.к. некоторое ПО в проверку включает и наличие этого пакета.

3) Сохраняем файл, указываем для загрузки ISO с установщиком системы, устанавливаем ОС как обычно.

4) Несмотря на то, что подавляющее большинство программ, не любящих виртуальной среды, не заходят дальше проверок, которые мы отсекли на 2 шаге, некоторые особо упорные всё же идут дальше и пытаются искать всё, что похоже на название контроллеров виртуальных дисков.

Чтобы победить и их в Windows, идём в редактор реестра в ветку HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum. Как видите, там есть вполне явная отсылка к тому, что диск — виртуальный.

dbaa3fa287ac4d51a47db3931279d7de.png

Нам нужно изменить его, убрав из параметра VMware, Virtual, Ven, итп, и сохранить её так.

После пробуйте запускать ваш упрямый объект экспериментов — в процентах 90 случаев описанные шаги помогут пройти проверки на виртуальное окружение.

Важно! Значение в HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum перезаписывается после каждой перезагрузки, так что его нужно менять после каждого нового запуска системы.

Комментарии (3)

  • 1 октября 2016 в 17:08

    0

    Спасибо, попробуем. Мб получится все же запустить никому не нужный Дневной дозор со старфорсом на виртуальной XP на семерке.
    Хотя скорее не удастся — когда разбирался с этим было оущение, чо чуть ли не половина виртуального обородудования и ключей реестра хранят в себе отпечаток VMware Player (запускал на нем, а не на workstation — мб причина в этом)…
    • 1 октября 2016 в 17:27

      0

      Так на дневной вроде как была человеческая кхм трещина, а вот с ночным дела обстоят хуже. Проще уж на старенький ноут хрюшу накатить.
  • 1 октября 2016 в 17:55

    +2

    Описанные вами методы недостаточны для параноидальных программ. Как правило авторы коммерческого ПО используют по 3–4 метода детекта виртуальной машины, неговоря уже про malware.
    VMware может быть задетектирована:
    1) Проверками диапазона MAC адресов
    2) Наличием sys файлов на диске (в случае установки VMware Tools)
    3) Через WinAPI опросом конфигурации ОС и прочей системной информации (FirmwareTable)
    4) Низкоуровневыми трюками.

© Habrahabr.ru