Защита программы протектором от запуска на виртуальной машине.
Разработчики виртуальных машин с каждой новой версией предоставляют дополнительные возможности по конфигурированию, в результате чего виртуальную ось практически невозможно отличить от настоящей.
Одна и та же функция VMProtectIsVirtualMachinePresent при подключении разных библиотек VMProtectSDK32.lib и VMProtectSDK64.lib такое чувство что работает по разному.
Сделал тестовую программу с одной лишь этой функцией в двух вариантах, x86 версия нормально определяет виртуальную машину, а x64 вариант программы, ту же самую виртуальную машину уже считает настоящей…
Из-за того, что протектор не поддерживает исключения в х64 коде, детект виртуальным машин для х64 несколько урезан, в результате чего результаты работы VMProtectIsVirtualMachinePresent для х32 и х64 могут отличаться.
Полная поддержка исключений в х64 планируется в версии 3.0, которая разрабатывается в настоящий момент.