Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: YAcosta en Junio 03, 2014, 07:55:59 pm

Título: Detectar maquina virtual
Publicado por: YAcosta en Junio 03, 2014, 07:55:59 pm
¿Saben de que forma podria detectar mi aplicativo si esta en una maquina virtual?¿Se podria detectar con VB6?

SAludos
Título: Re:Detectar maquina virtual
Publicado por: Albertomi en Junio 03, 2014, 10:11:10 pm
Estimado YAcosta
Si es posible, al menos para las maquinas virtuales de Microsoft. Hay que leer una llave en el registry de Windows y mediante WMI
 
Aquí te dejo un link
http://blogs.technet.com/b/tonyso/archive/2009/08/20/hyper-v-how-to-detect-if-you-are-inside-a-vm.aspx (http://blogs.technet.com/b/tonyso/archive/2009/08/20/hyper-v-how-to-detect-if-you-are-inside-a-vm.aspx)
 
Saludos desde algún lugar de Lima-Perú
Título: Re:Detectar maquina virtual
Publicado por: Albertomi en Junio 03, 2014, 10:17:23 pm
Ivan, autointerrogando a la PC con este código se supone que podrías determinarlo.
 
strComputer = "computername"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)

For Each objItem in colItems
  strModel = objItem.Model
  If strModel = "Virtual Machine" Then
    debug.print "This is a virtual machine!"
  else
    debug.print "This is NOT a Virtual Machine"
  End if
Next

 
Saludos desde algún lugar de Lima-Perú
Título: Re:Detectar maquina virtual
Publicado por: YAcosta en Junio 03, 2014, 11:23:47 pm
EXCELENTE!!! mi amigo, con esto que me diste y leyendo un poco de aqui y de alla modifique un pelito el código y funciono:
(http://i.snag.gy/TxbJm.jpg)

Lo que no sabia (ni imaginaba) es que se pudiera hacerse una consulta sql al objeto... aun no me queda claro del todo pero imagino que hay una BD (¿la del registro de windows?) que reune esa información y esa es en si una BD.

Gracias por el dato.

Codigo usado:
Código: (VB) [Seleccionar]
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem", , 48)
For Each objItem In colItems
  strModel = objItem.Model
  If strModel = "Virtual Machine" Or strModel = "VirtualBox" Then
    Debug.Print "This is a virtual machine!"
  Else
    Debug.Print "This is NOT a Virtual Machine"
  End If
Next
Título: Re:Detectar maquina virtual
Publicado por: LeandroA en Junio 04, 2014, 02:38:05 am
Hola Yvan te tiro un link de un hilo donde se trato a fondo este tema, y cobein tiro otra función, la cual no usa WMI, (restricciones de permisos en vista y superiores), fijate que hay dos funciones una larga al principio y una mas corta al final, y ademas te dicen si es Virtual Machine, VMWARE o VBOX

http://foro.elhacker.net/programacion_vb/isvirtualpcpresent_no_wmi_source-t219126.0.html

Edit:
Aca algo que recién acabo de cruzarme que quizás se pueda añadir a la función
http://www.sinfocol.org/2013/01/rutinas-para-la-deteccion-del-uso-de-maquinas-virtuales/
Título: Re:Detectar maquina virtual
Publicado por: YAcosta en Junio 04, 2014, 10:34:32 am
Juasss, esto es como el segundo orgasmo inmediatamente después del primero. Excelente papá, muchas gracias.


Saludos
Título: Re:Detectar maquina virtual
Publicado por: LeandroA en Junio 04, 2014, 06:56:41 pm
uchale que postura difícil pensar que te viniste con mi respuesta, un gracias hubiera estado bien jajaja
Título: Re:Detectar maquina virtual
Publicado por: YAcosta en Junio 04, 2014, 11:33:09 pm
jajaj. Al Cesar lo que es del Cesar jajaj.

Ese ultimo que hallaste esta repaja, de momento voy a usar el ultimo del foro elhacker, en la virtual obtengo 3, en la "real" obtengo 0 y con eso me basta.

Gracias
Título: Re:Detectar maquina virtual
Publicado por: lucius en Junio 06, 2014, 07:22:41 pm
Hola, tengo una duda siempre he utilizado virtualpc2007 y es imposible obtener el serial del disco duro(el de fabrica) dado que es una maquina virtual y me da como resultado " ", la consulta es si con virtualbox,  vmware pasa lo mismo o estos programas tambien te crear un serial virtual?