¿Que método utilizas para detectar VirtualPC?
Revisé los otros sources en C/C++ para ver si me inspiraba, pero utilizaban técnicas algo profesionales para el pobre compilador de VB6, seguramente hay otra manera para detectar VirtualPC con VB6 pero esta es una de las más fáciles:
Con la ayuda de los Script WMI, hacemos un volcado de información sobre cada disco duro instalado en el equipo, concretamente buscamos 3 variables: Caption, Model y PNP DeviceID. En un equipo físico obtendremos nombres relativos al fabricante y modelo de nuestro HDD, mientras que en VirtualPC obtendremos nombres parecidos a estos:
Virtual HD, IDE\DISKVIRTUAL01_, etc...
Así que recopilamos toda la información en una sola variable y buscamos el string: "VIRTUAL" en su interior, hacemos una comparación y ya tenemos nuestro anti-VirtualPC terminado!
Ueeee, ahora... ¿me das el source?
Aquí está el modulo principal:
Código
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Program: Anti-VirtualPC 1.0
' Coder: MadAntrax
' Web: foro.elhacker.net
' Date: 30/06/08
'
' Programa que detecta si nuestro malware
' se ejecuta en la máquina virtual: Virtual PC
' permitiendo finalizar el proceso de nuestro
' malware :)
'
' Usar la función IsVirtualPCPresent() As Boolean
' Detecta el nombre, modelo y driver del HD para determinar
' si nos encontramos en VirtualPC
'
' Original idea: MadAntrax
' Referencias: http://www.microsoft.com/technet/scriptcenter/scripts/storage/disks/drives/stdvvb19.mspx?mfr=true
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function IsVirtualPCPresent() As Boolean
Dim DetectVirtualPC As String
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set HDS = WMI.ExecQuery("Select * from Win32_DiskDrive")
DetectVirtualPC = ""
For Each objHDS In HDS
DetectVirtualPC = DetectVirtualPC & objHDS.Caption & objHDS.Model & objHDS.PNPDeviceID
Next
If InStr(UCase(DetectVirtualPC), "VIRTUAL") <> 0 Then
IsVirtualPCPresent = True
Else
IsVirtualPCPresent = False
End If
End Function
y para llamarlo, podemos usar algo así:
Código
Sub Main()
If IsVirtualPCPresent = True Then
MsgBox "VirtualPC: Detectado"
End
End If
'Your Code Here
End Sub
Saludos!!
EDITADO: Parece ser que esta misma función detecta de forma correcta VirtualPC 2007 y VMWare (los 2 software de virtualización más usados). Así que esta función sirve para los 2











Autor





En línea








"Si no visitas mi blog, Chuck te dará una patada giratoria"