В сообществе исследователей цифровой защиты появилась информация о том, что система Denuvo получила обновленные механизмы для обнаружения работы внутри гипервизоров. Защита научилась отслеживать логические несоответствия между ответами обработчика процессорных инструкций CPUID и реальным поведением физического процессора. Ранее виртуализация использовалась энтузиастами для изоляции защитных модулей, создания изолированных сред и анализа работы антипиратского кода, однако теперь разработчики системы внедрили дополнительные перекрестные проверки, выявляющие искусственное окружение.

Техническая суть обнаружения заключается в сопоставлении флагов доступности инструкций и результата их фактического выполнения. В частности, речь идет об инструкции генерации случайных чисел RDRAND и маскировании тридцатого бита в регистре, сообщающем о ее поддержке. Если обработчик виртуальной среды скрывает поддержку функции и рапортует об ее отсутствии, но физический процессор тем не менее успешно выполняет команду без генерации аппаратного исключения типа #UD внутри защищенного блока try/except, система безопасности фиксирует противоречие. Зафиксировав такое расхождение между заявленными возможностями виртуального процессора и реальным исполнением команд, Denuvo мгновенно аварийно завершает работу игрового процесса.
Специалисты и участники тематических сообществ отмечают, что текущее изменение не является непреодолимой преградой, а представляет собой очередной этап противостояния систем защиты и исследователей. Для нейтрализации конкретно этой проверки достаточно скорректировать логику маскирования в гипервизоре, оставив флаг поддержки RDRAND активным, чтобы статус проверки CPUID и физическое исполнение инструкции перестали конфликтовать. Тем не менее появление подобных проверок демонстрирует, что разработчики Denuvo продолжают изучать методы виртуализации и закрывать лазейки, связанные с расхождением параметров эмулируемых и реальных процессоров.