Fuerza bruta en C#

Iniciado por Hendrix, 3 Junio 2007, 23:20 PM

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

Hendrix

Bueno, pues este es mi "motor" de fuerza bruta, lo e terminado de hacer ahora mismo, es bastante sencillo...recorre desde 0 letra hasta 10, es decir, va desde:

(ninguna letra) hasta 999999999

hay va el codigo:

Código (C#) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Text;


namespace ConsoleApplication2
{
    class Program
    {
        public static string carac = ",a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9";



        static void Main(string[] args)
        {
            string palabra = "";
            char o = ',';
            string[] c = carac.Split(o);

            for (int a = 0; a < 37; a++)
            {
                for (int b = 0; b < 37; b++)
                {
                    for (int d = 0; d < 37; d++)
                    {
                        for (int e = 0; e < 37; e++)
                        {
                            for (int f = 0; f < 37; f++)
                            {
                                for (int g = 0; g < 37; g++)
                                {
                                    for (int h = 0; h < 37; h++)
                                    {
                                        for (int i = 0; i < 37; i++)
                                        {
                                            for (int j = 0; j < 37; j++)
                                            {
                                                for (int k = 0; k < 37; k++)
                                                {
                                                    palabra = c[a] + c[b] + c[d] + c[e] + c[f] + c[g] + c[h] + c[i] + c[j] + c[k];
                                                    Console.WriteLine(palabra);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}


la coma de delante de la a es importante, ya que como en el split, en la posicion 0 no se guarda nada por culpa de esta coma, y así podemos recorrer desde 0 hasta 10 letras....

Un Saludo.  ;)

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Meta

Por una parte curioso, por otra ¿Qué utilidad tendría este programa?
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Hendrix

Crackear contraseñas....o lo que se precise.... ;) ;)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

»~^~«CkNU!»~^~«

No parece demasiado performante todos esos for anidados.
Por otro lado deberías considerar todos los caracteres imprimibles ya que una contraseña "hola.mundo" nunca la resolvería. ;)
»~^~«ChiCkENURiNE»~^~«

Hendrix

Ya, ya lo se....eso es solo un ejemplo.... ;) ;)

Por lo de los for's...que yo sepa todos los algoritmos de Fuerza bruta se hacen asi... :-\ :-\

Un Saludo.  ;)

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Meta

Supongamos que el ejemplo que usó está más desarrollado con con más carácteres y símbolos.

En un archivo zip o rar, también un documento Word. Lo que sea.

¿Cómo haces que busque la contraña?

En realidad lo que ahce es encontrar priemro el código sifrado en hexadecimales y con tu programa lo compara con el del zip. Si son iguales, ya aparece en formato texto.

He leído esto ahce mucho y no es muy fácil.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Hendrix

Haber, para carckear un .rar se podria usar el comando unrar y si el archivo esta protegido bajo password, al insertar un password incorrecto supongo que nos dire que nanai de la china, probamos con otro y el resutlado es el mimso....le metemos la fuerza bruta para que vaya comprobando hasta que password == correcto... ;) ;)

Un Saludo.  ;)

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Meta

DEberías ahcer uno de prueba, ya que amnejas bien el C#.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

SeniorX

Bueno pero la base esta bien. Si la password a crackear tiene un punto, este algoritmo no sirve, pero con nada de esfuerzo lo puedes arreglar. Es cosa de agregar los caracteres que quieras a carac, y en los fors cambias el 37 por c.Length.
Facil no?

Hacer un programa que crakee passwords de archivos zip, o rar seria muy fome ya que ya existen programas que lo hacen.
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}

Precaución: La programacion puede producir adiccion

Frost

CitarHacer un programa que crakee passwords de archivos zip, o rar seria muy fome ya que ya existen programas que lo hacen
si piensas q hacer un programa asi no tiene sentido, entonces mejor te sientas a esperar a q aparescan los programas q necesitas