elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ... 102
641  Programación / Programación Visual Basic / Re: IsVirtualPCPresent (no WMI) [Source] en: 3 Julio 2008, 11:43 am
Jaque-mate.

Tu código es más estable al no usar WMI, pero algo extenso (para mi gusto) si lo implementas en stubs o similares.

De todas formas, seguro que ay otro método más sencillo y sin utilizar WMI para detectarlo... hay que investigar más!!

--------------

Por cierto, puedes discriminar un poco más la función, me explico:

"*VIRTUAL*" = VirtualPC
"*VMWARE*" = VMWare
"*VBOX*" = VirtualBox

Puedes hacer que la función de vuelva un Integer, ejemplo:

Código
  1.   Select Case True
  2.        Case sData Like "*VIRTUAL*"
  3.           IsVirtualPCPresent = 1
  4.        Case sData Like "*VMWARE*"
  5.           IsVirtualPCPresent = 2
  6.        Case sData Like "*VBOX*"
  7.            IsVirtualPCPresent = 3
  8.        Case Else
  9.            IsVirtualPCPresent = 0
  10.    End Select

Así el usuari podrá determinar si finaliza su ejecución solo si nos encontramos en VMWARE o solo en VirtualPC, etc...

Saludos, muy buen código.
642  Programación / Programación Visual Basic / Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC en: 1 Julio 2008, 15:39 pm
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
643  Programación / Programación Visual Basic / Re: Controlar el uso de memorias USB en: 30 Junio 2008, 23:07 pm
Saludos, y perdón por el post tan largo.

Perdonado, pero usa las etiquetas de código GeSHI, ejemplo

Código:
[code][/ code] No se utiliza

Código:
[code=vb][/ code] Sí se utiliza

Así queda en formato VB6 y mola más :xD

Saludos!![/code][/code]
644  Programación / Programación Visual Basic / Re: [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC en: 30 Junio 2008, 22:59 pm
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.!!
645  Programación / Programación Visual Basic / [Source] IsVirtualPCPresent() - Sistema AntiVirtualPC en: 30 Junio 2008, 21:34 pm
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
  1. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. ' Program:  Anti-VirtualPC 1.0
  3. ' Coder:    MadAntrax
  4. ' Web:      foro.elhacker.net
  5. ' Date:     30/06/08
  6. '
  7. ' Programa que detecta si nuestro malware
  8. ' se ejecuta en la máquina virtual: Virtual PC
  9. ' permitiendo finalizar el proceso de nuestro
  10. ' malware :)
  11. '
  12. ' Usar la función IsVirtualPCPresent() As Boolean
  13. ' Detecta el nombre, modelo y driver del HD para determinar
  14. ' si nos encontramos en VirtualPC
  15. '
  16. ' Original idea: MadAntrax
  17. ' Referencias: http://www.microsoft.com/technet/scriptcenter/scripts/storage/disks/drives/stdvvb19.mspx?mfr=true
  18. '
  19. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  20.  
  21. Function IsVirtualPCPresent() As Boolean
  22.    Dim DetectVirtualPC As String
  23.  
  24.    Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
  25.    Set HDS = WMI.ExecQuery("Select * from Win32_DiskDrive")
  26.  
  27.    DetectVirtualPC = ""
  28.    For Each objHDS In HDS
  29.        DetectVirtualPC = DetectVirtualPC & objHDS.Caption & objHDS.Model & objHDS.PNPDeviceID
  30.    Next
  31.  
  32.    If InStr(UCase(DetectVirtualPC), "VIRTUAL") <> 0 Then
  33.        IsVirtualPCPresent = True
  34.    Else
  35.        IsVirtualPCPresent = False
  36.    End If
  37. End Function
  38.  

y para llamarlo, podemos usar algo así:

Código
  1. Sub Main()
  2.    If IsVirtualPCPresent = True Then
  3.        MsgBox "VirtualPC: Detectado"
  4.        End
  5.    End If
  6.    'Your Code Here
  7. End Sub
  8.  
  9.  

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
646  Programación / Programación Visual Basic / Re: [Source] IsSandboxiePresent() - Sistema AntiSanboxie en: 30 Junio 2008, 11:03 am
una manera sencilla es que si han instlado las tools del vm, mirar el proceso que carga, y de ese modo saber si se esta correiendo sobre VM (mayormnte la gente las habilita porque son muy utiles).
claro qe tambien se podria mirar el procesador, la mainboard, y los simuladores ...

Exacto!! Esta es la idea que estaba diseñando. Si el usuario ha instalado las Virtual Machine Editions se puede comprobar si existe cierto proceso en ejecución para determinar si estamos dentro de una VM.

Pero la mejor forma es mirar el nombre "virtual" que asigna VirtualPC o VMWare a la tarjeta de red NIC con la ayuda de scripts WMI. Esta noche posteo un source de ejemplo.

Saludos!! :)
647  Programación / Programación Visual Basic / Re: [Source] IsSandboxiePresent() - Sistema AntiSanboxie en: 30 Junio 2008, 00:17 am
En vb no se puede hacer anti vmware ni anti virtualpc.
Es necesario usar asm.

Seguro?, aun no te lo puedo garantizar porque estoy trabajando en ello... pero creo que anti-virtualpc lo podré programar usando solo VB6 y script WMI

En unos días posteo mis avances. Saludos!!
648  Programación / Programación Visual Basic / [Source] IsSandboxiePresent() - Sistema AntiSanboxie en: 28 Junio 2008, 16:04 pm
Bueno, lo prometido es deuda... aquí os deja la función para detectar si nuestro malware se está ejecutando en la Sandbox de Sandboxie: IsSandboxiePresent()

¿Que es Sandboxie?

Es un software diseñado para ejecutar aplicaciones dentro de un entorno seguro (dentro de una Sandbox). Su funcionamiento consiste en aislar el ejecutable y detectar todos los cambios que realice en el sistema, permitiendo borrarlos con un solo click. Se parece a una máquina virtual, pero más sencillo de usar y configurar, para más info:

:http://www.sandboxie.com/

¿Que método utiliza para detectar Sandboxie?

He incluido 2 métodos, uno de ellos programado por steve10120 de hackhound y el otro método (menos efectivo pero mucho más simple) programado por mí. El segundo método requiere que nuestro malware tenga un Form en su interior.

El método de steve10120 detecta si se ha cargado el modulo SbieDll.dll dentro de nuestra aplicación, si se encuentra el módulo significa que nuestro malware está dentro de una Sandbox.

El otro método comprueba el caption de nuestro Formulario, si detecta la string "[ # ]" significa que nuestra aplicación se encuentra dentro de la Sandbox. Como verás el primer método es más profesional, pero más fácilmente detectable por la heurística al usar una API. El segundo método solo busca una serie de caracteres, esto puede inducir a falsos positivos pero es más sencillo de implementar.

Ok, ¿y el source?

Aquí os dejo el source completo:

Código
  1. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. ' Program:  Anti-Sandboxie 1.0
  3. ' Coder:    MadAntrax
  4. ' Web:      foro.elhacker.net
  5. ' Date:     28/06/08
  6. '
  7. ' Programa que detecta si nuestro malware
  8. ' se ejecuta en la SandBox de Sandboxie, permitiendo
  9. ' finalizar el proceso y evitar que inspeccionen nuestro
  10. ' malware :)
  11. '
  12. ' Usar la función IsSandboxiePresent(byval OptionToCheck As Integer) As Boolean
  13. ' Se han añadido 2 métodos de detección para Sandboxie, el primero
  14. ' está basado en la idea original de http://hackhound.org
  15. '
  16. ' El segundo método esta diseñado integramente por mí
  17. '
  18. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  19. '
  20. ' Ejemplos para usar esta función:
  21. '
  22. '   Método 1:
  23. '       If IsSandboxiePresent(1) = True Then End
  24. '
  25. '   Método 2:
  26. '       If IsSandBoxiePresent(2,Form1) = True Then End
  27. '
  28. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  29.  
  30. Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
  31.  
  32. Function IsSandBoxiePresent(ByVal OptionToCheck As Integer, Optional MainFrm As Form) As Boolean
  33.    Select Case OptionToCheck
  34.        Case 1  'Recomendado
  35.            Dim hSbie As Long
  36.  
  37.            hSbie = GetModuleHandle("SbieDll.dll")
  38.            If hSbie <> 0 Then
  39.                IsSandBoxiePresent = True
  40.            Else
  41.                IsSandBoxiePresent = False
  42.            End If
  43.        Case 2  'No recomendado
  44.            If InStr(MainFrm.Caption, "[#]") <> 0 Then
  45.                IsSandBoxiePresent = True
  46.            Else
  47.                IsSandBoxiePresent = False
  48.            End If
  49.    End Select
  50. End Function

Y para llamarlo hay que usar lo siguiente:

Código
  1. Sub Main()
  2.    If IsSandBoxiePresent(1) = True Then End
  3.    '   Your Code Hare...
  4. End Sub
  5.  

Y si quieres usar el segundo método, de esta forma:

Código
  1. Private Sub Form_Load()
  2.    If IsSandBoxiePresent(2, Form1) = True Then End
  3.    'Your Code Here
  4. End Sub
  5.  

Saludos!! :P
649  Programación / Programación Visual Basic / Re: [Source] IsAnubisPresent() - Sistema AntiAnubis SandBox en: 28 Junio 2008, 15:30 pm
Muy bueno Mad, te lo pongo en la biblioteca de sources, aunque también te lo podías poner solo xDD Buen trabajo a ver cuanto tiempo dura siendo tuyo esta vez....  :¬¬

Realmente no es mio, en otros foros he visto que usan la misma técnica para detectar el s/n del HDD. Lo que sí es mio es el Anubis-Dumper que me sirvió para recopilar otros datos del SO Windows de Anubis y poder crearme mi própia función de IsAnubisPresent()

Saludos
650  Programación / Programación Visual Basic / Re: Problema: Lentitud del IDE de VB6 en WinVista en: 28 Junio 2008, 00:17 am
mad, en win vista para que te vaya rapido, tienes que ponerlo en modo clasico

COÑOOOOOOO

Era esooooo!! jajajaja. Que tonto soy. Por lo que parece, el Aero de Windows Vista hace que el IDE de VB6 funcione más lento... ha sido cambiar el tema a Windows Clásico y el problema se solucionó al instante!

Ahora ya puedo programar rápido!!! mil gracias astaroth_15
Páginas: 1 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ... 102
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines