Crea tu propio Creador de Diccionarios por Fuerza Bruta en VBNet en solo 3 Pasos

Iniciado por 79137913, Junio 06, 2017, 10:41:39 AM

Tema anterior - Siguiente tema

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

HOLA!!!

Hoy veremos como crear un Creador de Diccionarios con No tienes permitido ver los links. Registrarse o Entrar a mi cuenta!

1)Primero crearemos el proyecto


2)Luego en el Form1 Realizar la siguente interfaz (respetando los nombres de los controles):

2.b) si queremos les ponemos los .Text para que quede asi:


3)Codigo:
3.a)Arriba de la clase Form1 ponemos lo siguiente:
Código: vbnet
Imports System.IO 'importamos esta libreria para poder trabajar con archivos


3.b)Dentro de la clase Form1 ponemos lo siguiente:
Código: vbnet

    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


3.c)Una vez esta listo el formulario y los controles le damos doble click a btnIniciar y dejamos este codigo dentro:
Código: vbnet

        'by 79137913 for Underc0de.org
        'creamos secuencia de caracteres a utilizar
        Dim Letras As String = "" 'string que contendra todos los caracteres a combinar para hacer el diccionario
        If checkNumeros.Checked Then Letras = Letras & Num 'si Numeros esta tildado agregamos eso a la cadena
        If checkSimbolos.Checked Then Letras = Letras & Sym 'si Simbolos esta tildado agregamos eso a la cadena
        If checkMinusculas.Checked Then Letras = Letras & Min 'si Letras Minusculas esta tildado agregamos eso a la cadena
        If checkMayusculas.Checked Then Letras = Letras & May 'si Letras Mayusculas esta tildado agregamos eso a la cadena
        If checkEspMin.Checked Then Letras = Letras & SpL 'si Letras Especiales Minusculas esta tildado agregamos eso a la cadena
        If checkEspMay.Checked Then Letras = Letras & SpU 'si Letras Especiales Mayusculas esta tildado agregamos eso a la cadena
        If checkAddMore.Checked Then Letras = Letras & txtAddMore.Text 'si Agregar Siguientes Caracters esta tildado agregamos eso a la cadena

        Dim CantLet As Long = Letras.Length - 1 'cantidad de letras
        Dim BufferPalabras As Long = 10000
        Dim Palabras(BufferPalabras) As String 'aqui se guardaran las combinaciones mientras las vamos generando en este ejemplo iremos guardando de a 10000 combinaciones
        Dim CT As Long = 0 'este contador nos dira cuantas palabras estan pendientes de guardar en el archivo
        Dim UbicacionArchivo As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Diccionario.txt" 'ubicacion del archivo de salida (en mis documentos)
        Dim CantPos As Long = 0 'Cantidad de letras palabra actual
        Dim Desde As Long = CInt(txtD.Text) 'desde que cantidad de caracteres
        Dim Hasta As Long = CInt(txtH.Text) 'hasta que cantidad de caracteres
        Dim Posiciones() As Long


        MsgBox("Se iniciara el proceso, puede tardar mucho, para detener cierre la aplicacion con el Administrador de Tareas.",, "ATENCION")

        Dim fs As FileStream = File.Create(UbicacionArchivo) 'creamos o sobreescribimos el archivo
        fs.Close() 'cerramos el archivo para que se pueda escribir

        For y = 0 To Hasta - Desde
            CantPos = Desde + y - 1 'establecemos el tamañode la combinacion actual
            ReDim Posiciones(CantPos)
            Do

                For x = 0 To CantPos 'una vez por cada posicion que tenga que tener la palabra
                    Palabras(CT) = Palabras(CT) & Letras(Posiciones(x)) 'armamos una combinacion uniendo los caracteres de la cadena letras
                Next x

                CT += 1 'incrementamos CT en 1
                Posiciones(0) += 1 'incrementamos la primera letra de posiciones (para que pase de "a" a "b" por ejemplo)

                For x = 0 To CantPos - 1 'nos fijamos si alguna posicion es mayor a la cantidad de letras si es asi volvemos a 0 esa posicion e incrementamos la siguiente
                    If Posiciones(x) > CantLet Then Posiciones(x) = 0 : Posiciones(x + 1) += 1
                Next

                If CT = BufferPalabras + 1 Then
                    File.AppendAllLines(UbicacionArchivo, Palabras) 'escribimos nuestro buffer de palabras en el archivo linea por linea
                    CT = 0 'volvemos el contador a 0
                    ReDim Palabras(BufferPalabras) 'borramos el buffer de palabras
                End If
            Loop Until Posiciones(CantPos) = CantLet + 1
        Next y
        If CT > 0 Then 'si hay palabras pendientes de escribir
            ReDim Preserve Palabras(CT - 1)
            File.AppendAllLines(UbicacionArchivo, Palabras) 'escribimos nuestro buffer de palabras en el archivo linea por linea
            CT = 0
        End If
        MsgBox("Terminado, mira en " & UbicacionArchivo & " , y encontraras el diccionario.",, "ATENCION")


El codigo Completo del proyecto quedaria asi:
Código: vbnet
Imports System.IO 'importamos esta libreria para poder trabajar con archivos

Public Class Form1
    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

    Private Sub btnIniciar_Click(sender As Object, e As EventArgs) Handles btnIniciar.Click
        'by 79137913 for Underc0de.org
        'creamos secuencia de caracteres a utilizar
        Dim Letras As String = "" 'string que contendra todos los caracteres a combinar para hacer el diccionario
        If checkNumeros.Checked Then Letras = Letras & Num 'si Numeros esta tildado agregamos eso a la cadena
        If checkSimbolos.Checked Then Letras = Letras & Sym 'si Simbolos esta tildado agregamos eso a la cadena
        If checkMinusculas.Checked Then Letras = Letras & Min 'si Letras Minusculas esta tildado agregamos eso a la cadena
        If checkMayusculas.Checked Then Letras = Letras & May 'si Letras Mayusculas esta tildado agregamos eso a la cadena
        If checkEspMin.Checked Then Letras = Letras & SpL 'si Letras Especiales Minusculas esta tildado agregamos eso a la cadena
        If checkEspMay.Checked Then Letras = Letras & SpU 'si Letras Especiales Mayusculas esta tildado agregamos eso a la cadena
        If checkAddMore.Checked Then Letras = Letras & txtAddMore.Text 'si Agregar Siguientes Caracters esta tildado agregamos eso a la cadena

        Dim CantLet As Long = Letras.Length - 1 'cantidad de letras
        Dim BufferPalabras As Long = 10000
        Dim Palabras(BufferPalabras) As String 'aqui se guardaran las combinaciones mientras las vamos generando en este ejemplo iremos guardando de a 10000 combinaciones
        Dim CT As Long = 0 'este contador nos dira cuantas palabras estan pendientes de guardar en el archivo
        Dim UbicacionArchivo As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Diccionario.txt" 'ubicacion del archivo de salida (en mis documentos)
        Dim CantPos As Long = 0 'Cantidad de letras palabra actual
        Dim Desde As Long = CInt(txtD.Text) 'desde que cantidad de caracteres
        Dim Hasta As Long = CInt(txtH.Text) 'hasta que cantidad de caracteres
        Dim Posiciones() As Long


        MsgBox("Se iniciara el proceso, puede tardar mucho, para detener cierre la aplicacion con el Administrador de Tareas.",, "ATENCION")

        Dim fs As FileStream = File.Create(UbicacionArchivo) 'creamos o sobreescribimos el archivo
        fs.Close() 'cerramos el archivo para que se pueda escribir

        For y = 0 To Hasta - Desde
            CantPos = Desde + y - 1 'establecemos el tamañode la combinacion actual
            ReDim Posiciones(CantPos)
            Do

                For x = 0 To CantPos 'una vez por cada posicion que tenga que tener la palabra
                    Palabras(CT) = Palabras(CT) & Letras(Posiciones(x)) 'armamos una combinacion uniendo los caracteres de la cadena letras
                Next x

                CT += 1 'incrementamos CT en 1
                Posiciones(0) += 1 'incrementamos la primera letra de posiciones (para que pase de "a" a "b" por ejemplo)

                For x = 0 To CantPos - 1 'nos fijamos si alguna posicion es mayor a la cantidad de letras si es asi volvemos a 0 esa posicion e incrementamos la siguiente
                    If Posiciones(x) > CantLet Then Posiciones(x) = 0 : Posiciones(x + 1) += 1
                Next

                If CT = BufferPalabras + 1 Then
                    File.AppendAllLines(UbicacionArchivo, Palabras) 'escribimos nuestro buffer de palabras en el archivo linea por linea
                    CT = 0 'volvemos el contador a 0
                    ReDim Palabras(BufferPalabras) 'borramos el buffer de palabras
                End If
            Loop Until Posiciones(CantPos) = CantLet + 1
        Next y
        If CT > 0 Then 'si hay palabras pendientes de escribir
            ReDim Preserve Palabras(CT - 1)
            File.AppendAllLines(UbicacionArchivo, Palabras) 'escribimos nuestro buffer de palabras en el archivo linea por linea
            CT = 0
        End If
        MsgBox("Terminado, mira en " & UbicacionArchivo & " , y encontraras el diccionario.",, "ATENCION")
    End Sub
End Class


Cuando ya colocamos el codigo solo queda iniciar (apretar F5) y empezar a usarlo, tildan los caracteres que quieren usar o ponen sus caracteres a eleccion en  el cuadro de texto y tildan el checkAddMore,luego presionan Button1 y la magia comienza:


Notas: Puede tardar mucho tiempo, pero los diccionarios siempre tardan mucho en generarse, para mejorar la performance pueden incrementar la variable BufferPalabras, pero el programa consumira mas memoria RAM.

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

Hecho y redactado por 79137913

Agradecimientos @ANTRAX

Brute Force Dictionary Creator VBNET

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

Gracias Buen trabajo.
El link esta caído: Descargar Source: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

HOLA!!!

Link Resubido!
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