Alguns softwares contêm testes para verificar se estão sendo executados em uma máquina virtual.
É muito desagradável ver mensagens de alerta como "Desculpe, este aplicativo não pode ser executado em uma máquina virtual". e tenha seu software parado!
Existem muitas razões legais para substituir esses testes. Além disso, essas limitações (na maioria das vezes) não são escritas nos Contratos de Licença do Usuário.
Então ... como oculto o fato de uma máquina virtual estar executando o programa? Não quero que os programas que fazem essa verificação detectem com êxito a VM que está sendo executada.
Estou usando um servidor virtual privado (VPS) com Hyper-V ... Sou administrador do sistema operacional (Windows 2003) instalado neste VPS, não administrador do Hyper-V.
fonte
Respostas:
Em suma, acho que você simplesmente não pode. É a discussão sobre malware tentando detectar se está sendo executado em uma VM para evitar ser detectado por sistemas que usam VMs para executar código para verificar a existência de malware.
Algumas referências rápidas são: VRT: Como o malware sabe a diferença entre o mundo virtual e o mundo real? e as ofertas inoperantes do Malware VM-Aware .
fonte
Até onde eu sei, isso depende do tipo de virtualização que você está usando.
Vamos começar dizendo que você certamente pode atenuar algumas coisas (por exemplo, alterar endereço MAC, desinstalar adições de convidados).
Dito isto, se você estiver executando uma virtualização completa, o hipervisor emulará o hardware para os convidados. Uma CPU emulada terá seu próprio relógio (software) que, mais cedo ou mais tarde, mostrará velocidades diferentes, quando não deveria.
Essa é uma das coisas que você não pode reparar de forma alguma, e um programa (principalmente malware) saberá que está sendo executado em uma VM.
Você pode esclarecer isso usando uma Paravirtualização que consiste em usar seu hardware real em um ambiente fechado.
fonte