¿Cómo esconderse de un programa que se ejecuta en una máquina virtual?

13

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 siento, esta aplicación no puede ejecutarse en una máquina virtual". y haz que tu software se detenga!

Hay muchas razones legales para anular tales pruebas. Además, tales 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 VM 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.

Femto Trader
fuente
1
¿Puedes aclarar lo que quieres decir con "ocultar un programa"? Además, ¿qué software estás tratando de ejecutar, específicamente?
Anderson Green
@AndersonGreen, significan que quieren evitar que un programa detecte que se está ejecutando en una VM.
Synetech
Así que déjame aclarar esto, tu software en ejecución dentro de la VM y no quieres que el software en el host detecte que hay cierto software ejecutándose dentro de la VM, ¿correcto?
user88311
1
Deberías ser cuidadoso. Si el programa está verificando deliberadamente si se está ejecutando en un entorno depurado / virtual, es muy posible que esté tratando de hacer cumplir una determinada declaración que figura en su Acuerdo de licencia . La manipulación de VM podría ser una violación directa del EULA.
bytebuster
1
@bytebuster Dije en mi pregunta "Además, tales limitaciones (la mayoría de las veces) no están escritas en los Acuerdos de licencia de usuario" ... Entonces sé que a veces está prohibido hacerlo ... y otras veces está permitido ... ¡no busque asesoramiento legal sino asesoramiento técnico!
Femto Trader

Respuestas:

1

En resumen, creo que simplemente no puedes. Es la discusión sobre el malware que intenta detectar si se está ejecutando en una máquina virtual para evitar ser detectado por los sistemas que usan máquinas virtuales para ejecutar código para verificar si hay malware.

Algunas referencias rápidas son: VRT: ¿Cómo sabe el malware la diferencia entre el mundo virtual y el mundo real? y The Dead Giveaways of VM-Aware Malware .

Scherand
fuente
1
Totalmente en desacuerdo, tienes el argumento al revés. La detección de que es un entorno virtualizado hace que sea mucho más fácil para el malware hacer su trabajo. También considere que existen laboratorios anti-malware y antivirus que necesitan ejecutar máquinas virtuales para aislar su investigación y que instalan malware en esas máquinas virtuales y deben ocultar el hecho de que la instancia es una instancia virtualizada. Esa es la razón precisa por la cual ESXi / VSphere permite configurar un indicador para ocultar el hecho de que una VM es una VM.
Matthias Wolf
También estoy totalmente en desacuerdo, ¿Qué tal el paso de GPU NVidia con tarjetas de grado de consumo? Los controladores de NVidia realizan una comprobación de "VM" y no se instalan con el código de error 43, pero un rápido google encuentra la solución. Es un juego constante de gato y ratón cuando se trata de cosas como esta.
FreeSoftwareServers
Creo que esta respuesta es correcta, o más bien lo sería si dijera que cualquier cosa que funcione 'ahora' probablemente no funcionaría después de un período de tiempo, ya que esto es, en muchos sentidos, una especie de 'carrera armamentista' (especialmente en lo que respecta al malware ) y, por lo tanto, los medios de detección frente a los medios para impedir la detección cambian constantemente y avanzan con el tiempo.
Chuck van der Linden el
0

Hasta donde yo sé, depende del tipo de virtualización que esté utilizando.

Comencemos diciendo que seguramente puede mitigar algunas cosas (por ejemplo, cambiar la dirección MAC, desinstalar adiciones de invitados).

Dicho esto, si está ejecutando 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 puede reparar de ninguna manera, y un programa (principalmente malwares) sabrá que se está ejecutando en una VM.

Puede hacerlo directamente utilizando una Paravirtualización que consiste en utilizar su hardware real en un entorno cerrado.

ingroxd
fuente
Yo diría que depende igualmente de qué hipervisor esté usando en cuanto a qué controles está haciendo el software para ver si está en una VM.
FreeSoftwareServers