[SOURCE] Brute Force Dictionary Creator 7913

Iniciado por 79137913, Mayo 28, 2013, 03:17:55 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 28, 2013, 03:17:55 PM Ultima modificación: Mayo 28, 2013, 03:21:51 PM por 79137913
HOLA!!!

Bueno... es un creador de diccionarios ni mas ni menos, pero al trabajar con strings anda rapido. Igual funciona bastante bienn :P.

Siguiendo... les dejo una captura, el source y el binario.


Es mas para ejemplo que para usarlo, pero si no tenemos nada funciona :P.

Código: vb

    Const Sym As String = "/\!·$%&/()='""¡¿?<>., :;-_*+" 'Simbolos
    Const Num As String = "0123456789"                   'Numeros
    Const Min As String = "abcdefghijklmnopqrstuvwxyz"   'Letras Minusculas
    Const May As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"   'Letras Mayusculas
    Const SpL As String = "áéíóúàèìòùâêîôûäëïöüçñ"       'Letras Especiales Minusculas
    Const SpU As String = "ÁÉÍÓÚÀÈÌÒÙÊÎÔÛÄËÏÖÜÇÑ"       'Letras Especiales Mayusculas
    Dim Cad As String                                    'Cadena entera de caracteres
    Dim X As Long                                        'Para los Bucles
     
    Private Sub Inicio()
    Dim Letras() As String
    Dim Posiciones() As Long
    Dim Palabras() As String
    Dim a As Long
    Dim CT As Long
    Dim CantPos As Long
    Dim CantLet As Long
       Letras = CharSplit7913(Cad)
       CantLet = UBound(Letras)
       Open "C:\Dic7913.txt" For Output As #1
       Close #1
       ReDim Palabras(1000)
       For a = 0 To Val(MinMaxL(1).Text) - Val(MinMaxL(0).Text)
           CantPos = MinMaxL(0) + a - 1
           ReDim Posiciones(CantPos)
           Do
           For X = 0 To CantPos
               Palabras(CT) = Palabras(CT) & Letras(Posiciones(X))
           Next
           CT = CT + 1
           Posiciones(0) = Posiciones(0) + 1
           For X = 0 To CantPos - 1
               If Posiciones(X) > CantLet Then Posiciones(X) = 0: Posiciones(X + 1) = Posiciones(X + 1) + 1
           Next
           If CT = 1001 Then
               Open "C:\Dic7913.txt" For Append As #1
                   For X = 0 To 1000
                       Print #1, Palabras(X)
                   Next
               Close #1
               ReDim Palabras(1000)
               CT = 0
           End If
           If Posiciones(CantPos) = CantLet + 1 Then GoTo Terminado
           Loop
    Terminado:
       Next
       If CT <> 0 Then
           Open "C:\Dic7913.txt" For Append As #1
               For X = 0 To CT
                   Print #1, Palabras(X)
               Next
           Close #1
           CT = 0
       End If
       MsgBox "Terminado", vbInformation, "Atencion"
    End Sub
     
    Private Sub Caracteres_Click(Index As Integer)
       'Limita el checkbox de los caracteres extra si el cuadro de texto esta vacio
       If Index = 6 And Len(ExtraCHR.Text) = 0 Then Caracteres(6).Value = 0: MsgBox "El cuadro de texto de caracteres extra debe tener al menos un caracter", vbCritical, "Error"
    End Sub
     
    Private Sub Go_Click()
    Dim FlagCheck As Boolean
       'Comprobacion de los minimos y maximos de longitud
       If Val(MinMaxL(0).Text) = 0 Then MsgBox "El minimo de longitud no puede ser cero", vbCritical, "Error": Exit Sub
       If Val(MinMaxL(1).Text) = 0 Then MsgBox "El maximo de longitud no puede ser cero", vbCritical, "Error": Exit Sub
       If Val(MinMaxL(0).Text) - Val(MinMaxL(1).Text) > 0 Then MsgBox "El maximo de longitud no puede ser menor que el minimo", vbCritical, "Error": Exit Sub
       'Comprobacion de los checkboxes, minimo uno debe estar tildado
       For X = 0 To 6
           If Caracteres(X).Value = 1 Then FlagCheck = True
       Next
       If FlagCheck = False Then MsgBox "Seleccione primero con que caracteres quiere hacer el diccionario", vbCritical, "Error": Exit Sub
       Cad = vbNullString 'Vacio el string Cad por si estaba lleno
       'Lleno cad con la seleccion del usuario
       If Caracteres(0).Value = 1 Then Cad = Num
       If Caracteres(1).Value = 1 Then Cad = Cad & Sym
       If Caracteres(2).Value = 1 Then Cad = Cad & Min
       If Caracteres(3).Value = 1 Then Cad = Cad & Max
       If Caracteres(4).Value = 1 Then Cad = Cad & SpL
       If Caracteres(5).Value = 1 Then Cad = Cad & SpU
       If Caracteres(6).Value = 1 Then Cad = Cad & ExtraCHR.Text
       MsgBox "El Proceso esta por Comenzar, esto podria tardar mucho tiempo para frenarlo presione Ctrl+Shift+Esc y termine el proceso, el diccionario quedara incompleto (este se guarda en c:\Dic7913.txt)", vbInformation, "Atencion - Por Comenzar"
       Call Inicio ' llamo al inicio de proceso
    End Sub
     
    Private Sub MinMaxL_KeyPress(Index As Integer, KeyAscii As Integer)
       If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0 'Verifica que solo se ingresen numeros en el desde hasta.
    End Sub
     
    Private Function CharSplit7913(expression As String) As String()
       Dim lExp     As Long
       Dim ExpB()   As Byte
       Dim AuxArr() As String
       ExpB = expression
       lExp = UBound(ExpB)
       ReDim AuxArr(lExp)
       For X = 0 To lExp Step 2
           AuxArr(X / 2) = ChrW(ExpB(X))
       Next
       ReDim Preserve AuxArr(Int(lExp / 2))
       CharSplit7913 = AuxArr
    End Function

     


Descargar Source y Binario:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scouts Team*                                                No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

una pregunta genera todas las posibilidades? por ejemplo si le digo 1 de logitud letras mayusculas me muestra las 25? ufff igual esta muy bueno gracias eso si le aplico un cambio tal vez poco significativo, el agregar la ñ y la Ñ a las letras minusculas y mayusculas no especiales ..

Saludos

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Acepta con humildad y aprecio que en la vida la muerte es inevitable y amarás ésta, adorando la muerte