Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Mad Antrax

#651
Cita de: aaronduran2 en 27 Junio 2008, 23:21 PM
Parece bueno; voy a probarlo. Buen trabajo, ||MadAntrax||.

No lo parece... lo es!! :P :xD

Próximo objetivo: IsSandBoxiePresent() (Ya lo tengo terminado, estoy redactando el testo del post...)
#652
Aquí vuelvo con una nueva función: IsAnubisPresent(). Dicha función permite de una forma muy rápida saber si nuestra aplicación se está ejecutando dentro de la SandBox de Anubis, permitiendo en tal caso terminar la ejecución del programa y evitar que nuestras funciones sean inspeccionadas por el usuario, pero antes...

¿Que es Anubis?

Anubis es un servicio gratuito que permite a un usuario enviar un fichero ejecutable para ser examinado de forma exhaustiva. Anubis es una aplicación con un front-end basado en Web, pero el back-end sigue tratándose de un simple PC con Windows instalado y una SandBox que recopila información de los ficheros enviados.

Anubis Web :http://anubis.iseclab.org/

¿Como funciona IsAnubisPresent()?

Bien, como ya se ha explicado, el back-end de este servicio es un Windows completo: con su registro, sus ficheros, sus variables de sistema, etc... mucha de esta información es única (por ejemplo el número de serie del HDD, el número de serie del ID de Windows, etc...) y con una simple comparación podemos saber si nuestro ejecutable esta siendo analizado desde ese Sistema Operativo en concreto

Vale, lo entiendo... pero ¿como has adivinado los números de serie del Windows de Anubis?

Bueno, la idea no es 100% mía. En internet circula un Source algo extenso y desordenado que recoge la información de una variable del registro para comparar el ProductId, viendo ese source se me ocurrió la idea de programar mi propio: Anubis-Dumper. Este programa recopila dicha información única del Sistema Operativo Windows de Anubis y genera carpetas en la raiz con los valores recopilados, con el único fin de mostrar dichos valores por el propio sistema de análisis de Anubis.

Aquí una captura del Anubis-Dumper que me permitió recopilar los datos



Una vez que tenemos los valores, solo he tenido que generar una sencilla función que haga las comprobaciones oportunas para detectar si el ejecutable se haya bajo el análisis de Anubis

Ole!, dejemonos de royos, donde está el source?

Aquí te dejo el source principal: Anti-Anubis

Código (vb) [Seleccionar]
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Program:  Anti-Anubis 1.0
' Coder:    MadAntrax
' Web:      foro.elhacker.net
' Date:     27/06/08
'
' Programa que detecta si nuestro malware
' se ejecuta en la SandBox de Anubis, permitiendo
' finalizar el proceso y evitar que inspeccionen nuestro
' malware :)
'
' Original idea: http://hackhound.org
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Function IsAnubisPresent(ByVal OptionToCheck As Integer) As Boolean
    On Error Resume Next
    Set WShell = CreateObject("WScript.Shell")
   
    Select Case OptionToCheck
        Case 1  'Recomendado
            If GetSerialNumber(Environ("SystemDrive") & "\") = "1824245000" Then
                IsAnubisPresent = True
            Else
                IsAnubisPresent = False
            End If
        Case 2  'Recomendado
            If WShell.RedRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId") = "76487-337-8429955-22614" Then
                IsAnubisPresent = True
            Else
                IsAnubisPresent = False
            End If
        Case 3  'No recomendado
            If UCase(App.EXEName) = "SAMPLE" Then
                IsAnubisPresent = True
            Else
                IsAnubisPresent = False
            End If
        Case 4  'No recomendado
            If UCase(Environ("USERNAME")) = "USER" Then
                IsAnubisPresent = True
            Else
                IsAnubisPresent = False
            End If
    End Select
End Function

Public Function GetSerialNumber(DriveLetter As String) As Long
    Buffer1 = String$(255, Chr$(0))
    Buffer2 = String$(255, Chr$(0))
    Res = GetVolumeInformation(DriveLetter, Buffer1, Len(Buffer1), SerialNum, 0, 0, Buffer2, Len(Buffer2))
    GetSerialNumber = SerialNum
End Function


Para ejecutar el programa se recomienda lo siguiente:

Código (vb) [Seleccionar]
Sub Main()
If Is AnubisPresent(1) = True Then End
'Your Code Here...
End Sub


Y por si alguien le interesa, os dejo el Source del Anubis-Dumper, solo hay que compilar el dumper y enviarlo para analizar al propio Anubis, en cuestión de minutos obtendremos las variables preparadas para programar las condiciones para el Anti-Anubis.

Código (vb) [Seleccionar]
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Program:  Anubis-Dumper 1.0
' Coder:    MadAntrax
' Web:      foro.elhacker.net
' Date:     27/06/08
'
' Programa que recopila cierta información del sistema
' y genera carpetas en la raíz con el único fin
' de mostrar dicho contenido en la web de Anubis
'
' Original idea: http://hackhound.org
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Public Function GetSerialNumber(strDrive As String) As Long
    Temp1 = String$(255, Chr$(0))
    Temp2 = String$(255, Chr$(0))
    Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
    GetSerialNumber = SerialNum
End Function

Sub Main()
    On Error Resume Next
   
    Set WShell = CreateObject("WScript.Shell")
    MkDir GetSerialNumber(Environ("SystemDrive") & "\")
    MkDir Environ("USERNAME")
    MkDir App.EXEName

    AA = WShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId")
    MkDir AA
    DoEvents
    End
End Sub


Dejo adjunto un fichero con los 2 sources preparados. Saludos!!
#653
Cita de: Dominicano en 27 Junio 2008, 15:22 PM
||MadAntrax|| , si algun dia piensas en cambiar de lenguaje, por ejemplo a NET, visual basic.net te espara con los brazos abiertos, no tienes nadas que perder, mas bien ganas.

A ver quien es el majo que programa malware en .Net... la mejor combinación sería:

Para el GUI: VB6 o .Net en tal caso...
Stub & AppCore: C, C++, C#, ASM, ...

Pero yo estos lenguaje sno los domino como para programar lo que se hacer en VB6, y no tengo tiempo ni para respirar... así que tampoco tengo tiempo para aprender un lenguaje nuevo...

Me quedo en VB6
#654
Pues vaya *****, no se que coño pasa con mi VB6 que va lentísimo :(

Por cierto usais el entorno IDE o el SDI? Yo he probado los 2 formatos de desarrolo en VB y los 2 me va más lento. Eso si, el entorno de desarrolo SDI es más liviano, consume menos recursos y es más bonito :P

En fin, me tendré que acostumbrar a esta velocidad... saludos!!
#655
Pues eso, recién me instalé Windows Vista Ultimate en mi equipo, y me instale el Visual Studio 6.0

Para mi sorpresa, en el momento que estoy diseñando cualquier formulario (mover controles, redimensionar controles de cualquier tipo, etc...) se produce una lentitud brutal! Haciendo que el diseño de los formularios resulte irritante.

Alguien con Windows Vista tiene los mismos síntomas?
Si alguien usa Windows Vista + Visual Studio 6.0 y no le ocurre, que me diga que service Pack tiene y su configuración.

Saludos y gracias!!
#656
Toma, aquí te dejo el Source del Cactus Metamorph. Pero porfavor no copies nada. Ya he visto que has imitado el mismo estilo de ventanas de ayuda en tu aplicación de Downloader.

El source pertenece a la versión 0.3 que aún no está publicada.

Saludos (el source no está completo)
#657
Cita de: seba123neo en 13 Junio 2008, 17:48 PM


Píxel muerto


Correcto, sólo hay que advertir que esa foto pertenece a un LCD ampliado bastante, con el ojo humano no llegas a ver las celdas tan separadas.
#659
Un ejemplo claro para usar DoEvents:

Código (vb) [Seleccionar]
For i = 1 to 1000
   Label1.Caption = i
Next i


Al ejecutar esto, el usuario sólo alcanzará ver el número 1000 de forma instantánea. Si queremos mostrar el progreso del bucle podemos usar lo siguiente:

Código (vb) [Seleccionar]
For i = 1 to 1000
   Label1.Caption = i
   If i Mod 10 = 0 Then
      DoEvents
      Sleep 250
   End If
Next i


Esta nueva condición que hay dentro del bucle hace que el código entre en modo Sleep cada 10 iteraciones. Es facil... Dividimos la variable i entre 10, si el resto de la división es 0 entonces la condición se cumple. En este ejemplo el usuario verá:

1,10,20,30,40, ..., 980, 990, 1000

Si cambiamos la condición:

Código (vb) [Seleccionar]
If i Mod 50 Then

El usuario obtendrá:

1,50,100,150, ..., 950, 1000

(Ojo, Sleep es una API que no he declarado en este ejemplo, para usarla primero hay que declarar dicha API)

Saludos!!
#660
copy/paste todo el trozo de código donde aparecen los bucles... asi por telépatia es algo difícil.