Como ocultar de um programa que está sendo executado em uma máquina virtual?

12

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.

Femto Trader
fonte
1
Você pode esclarecer o que você quer dizer com "ocultar um programa"? Além disso, qual software você está tentando executar, especificamente?
Anderson Green
@AndersonGreen, eles significam que desejam impedir que um programa detecte que está sendo executado em uma VM.
Synetech 29/09/12
Então, deixe-me ver se entendi, seu software em execução na VM e você não deseja que o software no host detecte a existência de determinado software em execução na VM, correto?
user88311
1
Você deve ter cuidado. Se o programa estiver deliberadamente verificando se está sendo executado em um ambiente virtual / depurado, é possível que esteja tentando impor uma determinada declaração listada em seu Contrato de Licença . A adulteração da VM pode ser uma violação direta do EULA.
Bytebuster 1/10/12
1
@bytebuster Eu disse na minha pergunta "Além disso, essas limitações (na maioria das vezes) não estão escritas nos Contratos de Licença do Usuário" ... Então eu sei que às vezes é proibido fazê-lo ... e às vezes é permitido ... não procure aconselhamento jurídico, mas aconselhamento técnico!
Femto Trader

Respostas:

1

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 .

Scherand
fonte
1
Discordo totalmente, você argumenta da maneira errada. A detecção de que é um ambiente virtualizado facilita muito o trabalho do malware. Considere também que existem laboratórios anti-malware e antivírus que precisam executar VMs para isolar suas pesquisas e que implantam malware nessas VMs e precisam ocultar o fato de que a instância é uma instância virtualizada. Esse é o motivo exato pelo qual o ESXi / VSphere permite definir um sinalizador para ocultar o fato de que uma VM é uma VM.
Matt
Também discordo veementemente: que tal a passagem da GPU NVidia com placas de grau de consumidor. Os drivers da NVidia fazem uma verificação de "VM" e não conseguem instalar o código de erro 43, mas um rápido google encontra a solução alternativa. É um jogo constante de gato e rato quando se trata de coisas assim.
FreeSoftwareServers
0

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.

ingroxd
fonte
Eu diria que depende igualmente do hypervisor que você está usando e do que verifica o software está fazendo para ver se ele está em uma VM.
FreeSoftwareServers