elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
08 Septiembre 2008, 19:39  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación VB (Moderadores: ||MadAntrax||, E0N)
| | |-+  [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC  (Leído 587 veces)
||MadAntrax||
Lab Member
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1.452


This is the end, my only friend, the end...


Ver Perfil WWW
[Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« en: 30 Junio 2008, 21:34 »

Tatatachan!!... aquí vuelvo con mi tercera función para los "anti's" en VB6, en este caso me he metido con la máquina virtual de Microsoft: VirtualPC 2007 Este método me gusta bastante porque es el primero que ha sido desarrollado íntegramente por mí, y de momento no he visto nadie que detecte un VirtualPC de la misma forma, empecemos...

¿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

 >:D
« Última modificación: 30 Junio 2008, 23:02 por ||MadAntrax|| » En línea

MSN Kick 1.5 (100%)
Cactus Joiner 3.0 (65%)
Cactus Metamorph 0.2.1 (100%)
Cactus Downloader (45%)
Cactus Keylogger (30%)
Cactus Worm Generator (20%)

jackl007 ツ

Desconectado Desconectado

Mensajes: 759


IP GMailer


Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #1 en: 30 Junio 2008, 21:46 »

excelente, yo ya iba a postear este tipo de cosillas, me adelantaste.
(me iba a poner a mirar lares del mismo modo).
el de VMware es mas sencillo se puede implementar del mismo modo que el virtual, el registro contiene ese tipo de info, o sino el proceso.
es cosa de curiosiar y probar.
al final se completa un modulo llamado: antiVirtualMachines, donde contenta todos los scripts. :D
En línea

jackl007 ツ

Desconectado Desconectado

Mensajes: 759


IP GMailer


Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #2 en: 30 Junio 2008, 21:48 »

por cierto incluso el mismo code funciona con VMware.
(es multiWare el codigo) ;D
En línea

carlitos.dll

Desconectado Desconectado

Mensajes: 252


Ver Perfil
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #3 en: 30 Junio 2008, 22:06 »

lo encuentro muy creativo, gracias por el source. ¿Una consulta? ¿Para qué evitar VirtualPC?
En línea
jackl007 ツ

Desconectado Desconectado

Mensajes: 759


IP GMailer


Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #4 en: 30 Junio 2008, 22:18 »

¿Para qué evitar VirtualPC?

Si programas malware es muy util, ya que evitaras en parte de que tu "creacion" sea estudiada por personas que trabajan para los antivirus.
de ese modo sera indetectable (salvo que lo prueben en alguna pc o la VM sea distinta y no se evada).
En línea

cobein

Desconectado Desconectado

Mensajes: 410



Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #5 en: 30 Junio 2008, 22:30 »

Muy interesante, me preguntaba si no hay una manera un poco mas "general" de detectar este tipo de soft?
En línea

Novlucker

Conectado Conectado

Mensajes: 1.366



Ver Perfil
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #6 en: 30 Junio 2008, 22:41 »

Citar
Muy interesante, me preguntaba si no hay una manera un poco mas "general" de detectar este tipo de soft?

No creo que sea necesario, ya que este "tipo de soft" es contado con los dedos  :P
Basta un par de rutinas de este tipo para solucionar el problema

Saludos
En línea

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y del Universo no estoy seguro."
Albert Einstein

||MadAntrax||
Lab Member
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1.452


This is the end, my only friend, the end...


Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #7 en: 30 Junio 2008, 22:59 »

por cierto incluso el mismo code funciona con VMware.
(es multiWare el codigo) ;D

Vaya, pues me ahorraste tiempo. Estaba instalando un Windows XP en un VMWare para probar, pero ya no hace falta.

Edito el primer post para que la gente sepa que sirve para VirtualPC, VMWare y posiblemente algún otro software de Virtualización, lástima que la función se llama IsVirtualPCPresent() y no IsVirtualEnvironmentPresent() o algo por el estilo, en fin...

Con esto completamos:

IsAnubisPresent() = Detects Anubis SandBox.
IsSandboxiePresent() = Detects Sandboxie SandBox.
IsVirtualPCPresent() = Detects VirtualPC 2007 & VMWare & ... Software.

Saludos y gracias por los comentarios.!!
En línea

MSN Kick 1.5 (100%)
Cactus Joiner 3.0 (65%)
Cactus Metamorph 0.2.1 (100%)
Cactus Downloader (45%)
Cactus Keylogger (30%)
Cactus Worm Generator (20%)

Karcrack

Desconectado Desconectado

Mensajes: 253


Se siente observado ¬¬'


Ver Perfil
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #8 en: 30 Junio 2008, 23:11 »

Muy bueno Mad... ya estan a salvo nuestras aplicaciones de mirones >:D

Ahora solo falta probar a ver si tambien funciona con otras herramientas de virtualizacion... como : QEMU...
En línea

Krackwar

Desconectado Desconectado

Mensajes: 804


xD


Ver Perfil
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #9 en: 01 Julio 2008, 00:06 »

 :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o

Me as dejado sin palabras.
En línea

[ìmg]http://img523.imageshack.us/img523/4146/dibujozx1.png [/img]
cobein

Desconectado Desconectado

Mensajes: 410



Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #10 en: 01 Julio 2008, 00:47 »

Un comentario acerca del code, seria coveniente agregar control de errores porque en algunos sistemas al tratar de acceder a WMI nos da error. Por lo me nos en vista con una cuenta restringida.
En línea

||MadAntrax||
Lab Member
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1.452


This is the end, my only friend, the end...


Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #11 en: 01 Julio 2008, 15:39 »

Un comentario acerca del code, seria coveniente agregar control de errores porque en algunos sistemas al tratar de acceder a WMI nos da error. Por lo me nos en vista con una cuenta restringida.

Vaya, no lo sabia...

De todas formas he mejorado la función. Ahora es capaz de discriminar bajo que entorno de virtualización se encuentra nuestra aplicación, el control de errores devuelve -1, permitiendo al usuario seguir ejecutando o no su soft cuando no ha sido posible detectar una VirtualMachine.

Esta noche posteo la función mejorada. Saludos!! :P
En línea

MSN Kick 1.5 (100%)
Cactus Joiner 3.0 (65%)
Cactus Metamorph 0.2.1 (100%)
Cactus Downloader (45%)
Cactus Keylogger (30%)
Cactus Worm Generator (20%)

invisible_hack

Desconectado Desconectado

Mensajes: 332


Mixer v2.0 - Genera passwords seguras con 1 click


Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #12 en: 01 Julio 2008, 18:08 »

Muy weno, te veo muy animado con todos estos codigos ultimamente eh?  ;D
En línea


VISITAD MI FORO DE INFORMÁTICA, HACKING Y MUCHO MÁS!!!!! (HAZ CLIC EN EL BANNER DE MI FIRMA)

www.invisiblehack.foro.st
cobein

Desconectado Desconectado

Mensajes: 410



Ver Perfil WWW
Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC
« Respuesta #13 en: 02 Julio 2008, 09:30 »

Me tome la libertad de modificar el code para detectar tambien Sun VirtualBox, lo testie en ubuntu corriendo un XP SP2

Código
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
 
   DetectVirtualPC = UCase(DetectVirtualPC)
 
   Select Case True
       Case DetectVirtualPC Like "*VIRTUAL*"
           IsVirtualPCPresent = True
       Case DetectVirtualPC Like "*VBOX*"
           IsVirtualPCPresent = True
   End Select
 
End Function
 
En línea

Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC