Intentando crear programa romper claves wifi (WEP) S.O Windows en C++

Iniciado por WiseHidden, 18 Marzo 2011, 11:13 AM

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

anonimo12121

Cita de: WiseHidden en 23 Marzo 2011, 20:19 PM
No lo habia visto desde ese punto de vista la verdad! Jaja
Gracias

Bueno pues todos los interesados en crear este programa (Mas que todo para aprender) se pongan en contacto en privado.

Un saludo y bienvenido a todos los que quieran unirse

Xafi contaremos con tu sabiduria no?? :D Que se que le das bien al tema!! :D Agradeceria tenerte en el equipo!!!

WH
Jaja gracias pero no tengo ni pu*a idea solo hago teorías XD yo soy más de juegos XDD. SDL. no más y aún así nunca termino nada. y no dedico mucho tiempo. por culpa de los vicios a los juegos XDD.
Pero te estaré observando XD. Además si no se te une nadie inténtalo solo. Recuerda que es para aprender.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

<<<-Basura->>>

Mandame un mp, yo voy haber que ago.. talvez esete fin de semana que estoy corto de tiempo entre semana
<<<--Basura-->>>

<<<-Basura->>>

Bueno esto fue lo que hice esta mal echo... lo hice a la carrera jejeje tengo examen pronto y tengo que prepararme jeje:

Código (cpp) [Seleccionar]

#include <iostream>
    using namespace std;

void vaciar(int pass[100][3]);

int main(){
    int pass[100][3];
    int temp1=0,temp2=0,temp3=0;
    vaciar(pass);
   
for(int i=0;i<100;i++){   
    if(pass[i][2]<4){
        pass[i][2]=temp1;
        pass[i][1]=temp2;
        pass[i][0]=temp3;
        temp1++;
       
        if(pass[i][2]==4){
            if(pass[i][2]==4){
                temp2++;
            }
            temp1=0;
            pass[i][2]=temp1;
            pass[i][1]=temp2;
            pass[i][0]=temp3;
            temp1=1;
            if(pass[i][1]==4){
                if(pass[i][1]==4){
                    temp3++;
                }
                temp1=0;
                temp2=0;
                pass[i][2]=temp1;
                pass[i][1]=temp2;
                pass[i][0]=temp3;
                temp1=1;
                if(pass[i][0]==3 && pass[i][0]==3 && pass[i][0]==3){
                        break;
                    }               
               
            }
        }   
    }

 
         
    for(int i=0;i<100;i++){
        for(int j=0;j<3;j++){
            switch(pass[i][j]){
                case 0:
                    cout <<"-";
                break;
                case 1:
                    cout <<"a";   
                break;
                case 2:
                    cout <<"b";   
                break;
                case 3:
                    cout <<"c";   
                break;
            }
           
        }
        cout << endl;
    }
   
   


cout << "Presione cualquier tecla para continuar...";
getchar();
return 0;
}

void vaciar(int pass[100][3]){
    for(int i=0;i<100;i++){
        for(int j=0;j<3;j++){
            pass[i][j]=0;
        }   
    }   
}


Se los dejo de guia espero que lo perfeccionen, pasen codigo para ir viendo y yo tambien aportando... yo seguire trabajando ese codigo que tengo, cada vez que tenga tiempo... Suerte
<<<--Basura-->>>

WiseHidden

Rasielunderwar Camarada!!!
Agredezo tu aporte, se que lo has hecho ala carrera, y no has podido explicar el funcionamiento del programa!
Cuando tengas un hueco si eres tan amable, de comentar y explicar su funcionalidad para que todos los interesados en el proyecto puedan unirse....Te estariamos muy agradecidos.

Yo tb estoy terminando mi codigo, aunque la verdad que tengo muy poco tiempo!! pero cada hueco lo dedico a esto, solo me queda decir que buen aporte, y que todos pueden ir, asesorando, aconsejando, exponiendo e incluso modificando los codigos aqui expuestos, pues este proyecto es una labor y colaboracion de todos, y toda ayuda y orientacion sera bien acojida, un saludo a todos

Atentamente

WH
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)

<<<-Basura->>>

lo poco que hace mi codigo es generar contraseñas con las posibles combinaciones de 3 letras (a,b,c) jeje.... nada mas tienen que mejorarlo y meterle que produsca mas letras... cuando lo logren despues tratemos que lo imprima en un block de notas de forma ordenada... saludos y suerte... espero haber sido de apollo
<<<--Basura-->>>

Danyel_Casvill

#25
Emmm, voy a empezar aclarando que creo que voy a meter la pataa hablando aqui, ya que yo apenas estoy empezando a entender el bucle for XD (con eso se imaginaran lo verde que estoy).

No se muy bien lo que quieran hacer pero pues aqui va mi "aporte"; Podrían hacer algo (un ejemplo) que genere n número de combinaciones de números de n número de dígitos al azar (por ahí vi una funcion que puede generar numero al azar, no se si tambien pueda letras..) y que en el documento de texto muestre las combinaciones INCORRECTAS e irlas descartando y que siga generando las combinaciones sin que repita las incorrectas hasta encontrar la correcta y la muestre en el documento.

Bueno, esa es solo mi idea, no se la verdad muy bien como hacerlo ya que como les digo estoy muy verde.... en fin ya dije que creo meto la pata aqui XD

Saludos, Hasta luegoo ^^

"No me equivoque creando mi programa, es sólo que aprendí mil formas de cómo NO hacerlo".

Ya me acorde que funcion es la que echa números al azar, es randomize(); y para hacer que tire el numero, hay que declarar una variable y ponerle por ejemplo:

a=random(100);

entonces, la variable a, dara un numero al azar desde 0 hasta 99.

ejemplo:

Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib>
int main()
{
int x,c;
randomize();
c=random(11);
for(x=1; x<=10; x++)
cout<<c<<" X "<<x<<"="<<x*c<<endl;

cin.get(); cin.get();
}


Lo malo es que creo solo sirve para numeros al azar, asi que si son letras, no sirve :/
adada

WiseHidden

Buenas Camaradas!
Ante todo disculpen mi ausencia, un trabajo me mantubo ocupado mas de lo previsto, Veo que el tema se esta desviando pero llego en buen momento, Como ha dicho Rasierlunderwar deberiamos empezar por un programa que "comparase" una contraseña predeterminada en un .txt (Unas 36.000 posibilidades) y nos compare cual fue la correcta.

PD: La claves WEP suelen ser 13 caracteres en Codigo ASCII

Pero por el momento podemos crear un primer programa como boceto de menos caracteres es decir unos cuatro caracteres.

Partiendo de esta idea lo siguiente seria aumentar de 4 a 13

un saludo e id exponiendo vuestros codigos para asi ir aportando todos nuestro granito

Atentamente
WH
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)

El_Java

Hola, he encontrado algo de tiempo para hacer el codigo para empezar.
El programa coge una contraseña que introduzcas y la compara con un archivo de texto (sirve para 13 caracteres, asi que no hay que pasar de 4 a 13 ya).

(falta colocar las tildes y ñ, pero no recuerdo como era xD)
Codigo:
Código (cpp) [Seleccionar]

//Código by: El_Java
#include <iostream>
#include <fstream>
#include <string.h>

//using namespace std; para programas largos es mejor no ponerlo


int main(){
    std::ifstream txtIn;
    char texto[14], clave[14];

    std::cout << "Escribe la contrasenha a comparar: " << std::endl;
    std::cin.getline(clave, 14);

    txtIn.open("pass.txt");

    if (!txtIn.is_open()){
        std::cout << "Error abriendo archivo, comprueba que existe el archivo" << std::endl;
    }

    if (!txtIn.good()){
        std::cout << "Error, no es posible leer el archivo" << std::endl;
    }

    while((txtIn.eof()) == 0){ //mientras el archivo no haya llegado al final
        txtIn.getline(texto, 14, '\n');
        if ((strcmp(texto, clave)) == 0) break; //Si alguna contrasenha concuerda, parar el bucle while
        if ((strcmp(texto, "NINGUNA")) == 0) break;
    }

    if((strcmp(texto, "NINGUNA")) == 0){
        std::cout << "Ninguna contrasenha valida" << std::endl;
    }

    else{
        std::cout << "Encontrada la contrasenha:\n";
        std::cout << "texto: " << texto << std::endl;
        std::cout << "clave: " << clave << std::endl;
    }

    return 0;
}



Y para que funcione el texto tiene que tener estas caracteristicas:

  • Llamarse pass.txt
  • Por cada linea tener una contraseña
  • Al final del texto terminarlo con la palabra NINGUNA
tal que quedaría asi:

pass.txt                                       pass.txt
1234567899874                         contraseña1
9876543210123                         contraseña2
7412589634157                         contraseña3
asdfghjkkasfg                               contrseña4
NINGUNA                                     final del texto

Danyel_Casvill

Cita de: El_Java en 24 Abril 2011, 14:00 PM
Hola, he encontrado algo de tiempo para hacer el codigo para empezar.
El programa coge una contraseña que introduzcas y la compara con un archivo de texto (sirve para 13 caracteres, asi que no hay que pasar de 4 a 13 ya).

(falta colocar las tildes y ñ, pero no recuerdo como era xD)
Codigo:
Código (cpp) [Seleccionar]

//Código by: El_Java
#include <iostream>
#include <fstream>
#include <string.h>

//using namespace std; para programas largos es mejor no ponerlo


int main(){
    std::ifstream txtIn;
    char texto[14], clave[14];

    std::cout << "Escribe la contrasenha a comparar: " << std::endl;
    std::cin.getline(clave, 14);

    txtIn.open("pass.txt");

    if (!txtIn.is_open()){
        std::cout << "Error abriendo archivo, comprueba que existe el archivo" << std::endl;
    }

    if (!txtIn.good()){
        std::cout << "Error, no es posible leer el archivo" << std::endl;
    }

    while((txtIn.eof()) == 0){ //mientras el archivo no haya llegado al final
        txtIn.getline(texto, 14, '\n');
        if ((strcmp(texto, clave)) == 0) break; //Si alguna contrasenha concuerda, parar el bucle while
        if ((strcmp(texto, "NINGUNA")) == 0) break;
    }

    if((strcmp(texto, "NINGUNA")) == 0){
        std::cout << "Ninguna contrasenha valida" << std::endl;
    }

    else{
        std::cout << "Encontrada la contrasenha:\n";
        std::cout << "texto: " << texto << std::endl;
        std::cout << "clave: " << clave << std::endl;
    }

    return 0;
}



Y para que funcione el texto tiene que tener estas caracteristicas:

  • Llamarse pass.txt
  • Por cada linea tener una contraseña
  • Al final del texto terminarlo con la palabra NINGUNA
tal que quedaría asi:

pass.txt                                       pass.txt
1234567899874                         contraseña1
9876543210123                         contraseña2
7412589634157                         contraseña3
asdfghjkkasfg                               contrseña4
NINGUNA                                     final del texto

:o quedo muy bien tu código, ahora la cosa es usar las api`s de windows para poder inyectar la clave en el box de la password y probar las posibles contraseñas, aaa!! y agregar mas contraseñas claro, voy a ver si me doy un tiempo para hacerlo, saludos.
adada

El_Java

Hola de nuevo, he estado viendo el codigo de rasielunderwar y hay un método más eficiente de hacer todas las combinaciones posibles, lo vi mientras ensallaba en las olimpiadas de españa de programación y es mediante backtracking (recursividad), os dejo el codigo:
Código (cpp) [Seleccionar]

#include <iostream>
#include <string>

using namespace std;

void escribe (const &string s){
     cout << s << endl;
}

void rec (string &s, int i, int n){
    escribe(s);
    if (i<n){
         s[i] = 'A';
         rec (s, i+1, n);
         s[i] = 'B';
         rec (s, i+1, n);
         s[i] = 'C';
         rec (s, i+1, n);
         s[i] = '-';
    }
}

int main(){
       int n;
       cin >> n;
       string s(n, '-');
       rec (s, 0, n);
}


Y la salida sería esta si por ejemplo, n = 3:
---
A--
AA-
AAA
AAB
AAC
AB-
ABA
ABB
ABC
AC-
ACA
ACB
ACC
B--
BA-
BAA
BAB
BAC
BB-
BBA
BBB
BBC
BC-
BCA
BCB
BCC
C--
CA-
CAA
CAB
CAC
CB-
CBA
CBB
CBC
CC-
CCA
CCB
CCC

Un saludo.