Algunos programas contienen pruebas para ver si se están ejecutando en una máquina virtual.
Es muy desagradable ver mensajes de alerta como "Lo sentimos, esta aplicación no se puede ejecutar en una máquina virtual". ¡Y detenga su software!
Hay muchas razones legales para anular dichas pruebas. Además, dichas limitaciones (la mayoría de las veces) no están escritas en los Acuerdos de licencia de usuario.
Entonces... ¿cómo puedo ocultar el hecho de que una máquina virtual está ejecutando el programa? No quiero que los programas que realizan este análisis detecten con éxito la máquina virtual que se está ejecutando.
Estoy usando un Servidor Privado Virtual (VPS) con Hyper-V... Soy administrador del sistema operativo (Windows 2003) instalado en este VPS, no administrador de Hyper-V.
Respuesta1
En resumen, creo que simplemente no puedes. Es la discusión sobre el malware que intenta detectar si se está ejecutando en una VM para evitar ser detectado por sistemas que usan VM para ejecutar código para buscar malware.
Algunas referencias rápidas son:VRT: ¿Cómo sabe el malware la diferencia entre el mundo virtual y el mundo real?yLos obsequios muertos del malware compatible con máquinas virtuales.
Respuesta2
Hasta donde yo sé, depende del tipo de virtualización que estés utilizando.
Comencemos diciendo que seguramente puedes mitigar algunas cosas (por ejemplo, cambiar la dirección MAC, desinstalar adiciones de invitados).
Dicho esto, si ejecuta una virtualización completa, el hipervisor emula el hardware para los invitados. Una CPU emulada tendrá su propio reloj (software) que, tarde o temprano, mostrará diferentes velocidades, cuando no debería.
Esta es una de las cosas que no se puede reparar de ninguna manera, y un programa (principalmente malware) sabrá que se está ejecutando en una máquina virtual.
Puedes hacerlo directamente utilizando una Paravirtualización que consiste en utilizar tu hardware real en un entorno cerrado.