|
122
|
Programación / Programación C/C++ / Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
|
en: 26 Abril 2011, 15:05 pm
|
Despues de leer la Biblia... xD (aunque ha sido interesante) Creo que tienes razón, en varios puntos: 1. Aquí todos pintamos lo mismo. 2. Debemos organizarnos entre todos lo mejor posible. 3. Hay varias formas de hacer lo mismo, como los dos códigos para crear contraseñas (backtracking y el codigo de lluk), y aunque me cuesta ceder, creo que deberiamos ponernos todos de acuerdo mediante votaciones o siguiendo algunos parametros para elegir el mejor. Y por mi parte he de decir que debemos de salirnos de aqui xD Más que nada, porque esto es un foro para dudas y cosas así y creo que nos estamos excedediendo. Yo hace unos días que me he registrado en google code para subir proyectos, y si quereis creo yo el proyecto (decidme nombre) y os agrego a todos a él. Además, deberiamos agregarnos mediante un canal de mensajeria instantanea (msn, IRC, googletalk...) y así comunicarnos mejor. ¿Qué me decis? En cuanto al proyecto, creo que podemos rebajar la busqueda de la contraseña si sabemos sacarle provecho al numero MAC de cada dispositivo, también decir que lo ideal sería que las primeras contraseñas que buscase fueran las predeterminadas (admin, 1234, admin1234, y por el estilo). Decidme si estais de acuerdo y me pongo manos a la obra en lo de crear el proyecto
|
|
|
124
|
Programación / Programación C/C++ / Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
|
en: 25 Abril 2011, 19:40 pm
|
lluk tu padre tiene razón, son una burrada de combinaciones y lo mejor sería mientras que las hacemos,comprobarlas, por lo que podriamos perfectamente prescindir del texto con las contraseñas preestablecidas. Y respecto a tu código, es algo lioso, creo que sería mucho más facil crear las combinaciones con el codigo de backtracking que he puesto antes. Y siempre que puedas, prescinde de system() porque lo unico que hace es quitarle portabilidad a tu código. Se me ha ocurrido otra forma de comprobar las contraseñas que creo que sería más eficiente que las dadas hasta ahora. Os explico: * Pongamos que la contraseña es "Perico198", no? * Pues consistiría en algo parecido a lo de las peliculas americanas de robo de bancos. * Hariamos una función para ver si un caracter coincide con el de la lista ASCII (sencillo) * Al encontrarlo, guardar el caracter y buscar el siguiente caracter (tambien sencillo) * El funcionamiento sería: Contraseña: Perico198 //comienza el programa... Perico198 //encuentra el primer caracter "P" y lo fija Perico //encuentra el segundo caracter "e" y lo fija Perico198 // etc etc etc etc Perico198 //Voilá! Contraseña encontrada y lista para guardar ¿Qué me decis? Parece mejor que buscar una por una, opinad y hacemos asi. En cuanto pueda hago el código, en dos días o así, ahora mismo estoy con un programa que me tiene bastante absorbido...
|
|
|
125
|
Programación / Programación C/C++ / Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
|
en: 25 Abril 2011, 13:46 pm
|
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: #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.
|
|
|
126
|
Programación / Programación C/C++ / Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
|
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 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
|
|
|
128
|
Programación / Programación C/C++ / Problema con uinput (driver "virtual")
|
en: 22 Abril 2011, 18:21 pm
|
Hola, edito mi anterior mensaje en el foro ya que no obtuve respuesta y asi ahorro espacio a elhacker Estoy creando una aplicación y para que interactue con Ubuntu estoy haciendo uso de "linux/input.h" y "linux/uinput.h", el problema está en que me compila sin ningún tipo de error pero no hace nada, el fallo está hay casi seguro porque los he hecho un seguimiento a la aplicacion y registra los botones que pulso y todo, pero no ocurre nada. Os dejo mi codigo para inicializar el driver. int wmDevice::init_device(){ //open uinput and creating descriptor if ((fd = open("/dev/uinput", O_WRONLY | O_NONBLOCK | O_NDELAY)) == 0){ std::cout << "Unable to open /dev/uinput" << std::endl; return 1; } //configure uinput device parameters ret = ioctl(fd, UI_SET_EVBIT, EV_KEY); ret = ioctl(fd, UI_SET_EVBIT, EV_ABS); // ret = ioctl(fd, UI_SET_EVBIT, EV_SYN); ret = ioctl(fd, UI_SET_KEYBIT, KEY_SELECT); //left button mouse = A wiimote button wiimote ret = ioctl(fd, UI_SET_KEYBIT, KEY_CONTEXT_MENU); // right button mouse = B button wiimote ret = ioctl(fd, UI_SET_KEYBIT, KEY_SCROLLDOWN); // wiimote = 2 ret = ioctl(fd, UI_SET_KEYBIT, KEY_SCROLLUP); //wiimote = 1 ret = ioctl(fd, UI_SET_KEYBIT, KEY_POWER); //power (hold) ret = ioctl(fd, UI_SET_KEYBIT, KEY_ZOOM); //Zoom = + ret = ioctl(fd, UI_SET_KEYBIT, KEY_DELETEFILE); // (hold) - ret = ioctl(fd, UI_SET_KEYBIT, KEY_CLOSE); // - ret = ioctl(fd, UI_SET_ABSBIT, ABS_X); ret = ioctl(fd, UI_SET_ABSBIT, ABS_Y); //****************************************// memset(&userDev, 0, sizeof(userDev)); strcpy(userDev.name, "wiimote"); userDev.id.bustype = BUS_BLUETOOTH; userDev.id.vendor = 0x1234; userDev.id.product = 0x01; userDev.id.version = 1; userDev.absmax[ABS_X] = 1920; userDev.absmin[ABS_X] = 0; userDev.absmax[ABS_Y] = 1080; userDev.absmin[ABS_Y] = 0; //*****************************************// ret = write(fd, &userDev, sizeof(userDev)); ret = ioctl(fd, UI_DEV_CREATE); return 0; }
Ojala podais ayudarme!
|
|
|
129
|
Programación / Scripting / Re: [Bash] Mis scripts
|
en: 18 Abril 2011, 11:25 am
|
Muy buen aporte, si señor! Te pongo aqui los que yo uso, solo son 2, pero espero que ayuden a alguien Script cambiar de fondo pantalla cada 15 minutos#!/bin/sh #Script para cambiar de fondo de escritorio cada 10 minutos cd ~/Imagenes/Fondos\ pantalla/ while [ 1 ]; do for aux in $(ls) ; do #echo "gconftool-2 --type string --set /desktop/gnome/background/picture_filename ~/Imagenes/Fondos\ pantalla/$aux" sleep 15m gconftool-2 --type string --set /desktop/gnome/background/picture_filename ~/Imagenes/Fondos\ pantalla/$aux done done wait
Script para abrir JDownloader (Yo lo uso como aplicacion al inicio) #!/bin/sh #Cambiar por el directorio donde tengais el JDownloader.jar echo "Ejecuntando JDownloader..." nohup java -jar /home/java/Escritorio/JDownloader/JDownloader.jar & exit
Además, uso otro script que me ejecuta un terminal en mitad de la pantalla transparente al iniciar sesión que queda bastante bien, si os interesa decidmelo xD Os pongo una imagen: Un saludo!
|
|
|
130
|
Programación / Scripting / Re: Cambiar automaticamente fondo escritorio [bash]
|
en: 18 Abril 2011, 11:06 am
|
Gracias por la ayuda amigo! Al final he podido hacer el script y me cambia el fondo de pantalla cada 15minutos ^^ Y además he podido casi al 100% compaginarlo con otros dos scripts que habia hecho. Voy a colocar el script funcional arriba, por si le sirviese a alguien
|
|
|
|
|
|
|