|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#21
|
||||
|
||||
|
Yo tengo mi hero rooteada y estoy seguro que si que es necesario ser root para tener privilegios con el comando mount, ya que donde hay privilegios de escritura no los hay de ejecución (/sdcard) y al reves, donde hay de ejecución no hay de escritura... (para copiar los ejecutables)
Pero si te haces un instalador, no se si es necesario ser root... lo desconozco. Yo es que llevo con la hero rooteada desde el primer dia y no se las limitaciones de no ser root. Siempre viene bien tener el algoritmo del wlandecrypter portado a java, también existe otro programa que creo que se llama jaztell decrypter o algo así y aquí por si te sirve de algo, tienes un script en python, aunque llama al wlandecrypter, pero lo he probado y va muy bien, aunque es un poco coñazo porque te pile mil parámetros... http://foro.elhacker.net/wireless_en...t269374.0.html Siento no poder ayudarte con el java, ya que no tengo ni idea... Saludos |
|
|
|
#22
|
||||
|
||||
|
Si, lo suyo seria hacer todo el arsenal con Wlandecrypter, Jazzteldecrypter, Dlinkdecrypter, el de SpeedTouch y el de las ADSLXXXX, pero lo primero sería intentar acrotar el tiempo al generar el diccionario... A ver si alguien que entienda nos ayuda con el blucle.
Edito, el fallo esta en que hacia: diccionario = diccionario + [...] El for correcto es: Código:
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
for(int k=0;k<16;k++){
for(int l=0;l<16;l++){
out.write(inicio + Integer.toHexString(i) + Integer.toHexString(j) + Integer.toHexString(k) + Integer.toHexString(l) + final + "\n");
}
En cuanto lo acabe, cuelgo todo el source y el APK. Última edición por evildarkangel Día 18/01/10 a las 13:32:53. |
|
#23
|
||||
|
||||
|
Cuelgo el source más el .apk de lo que tengo hasta ahora.
![]() WlanDroid 0.1b (Basado 100% en el source del wlandecrypter de Nilp0inteR). Pequeña apliacción para generar diccionarios con los posibles passwords para las redes de telefonica WLAN_XX. No es funcional del todo, segun lo que hagas peta, pero algo es algo :P Saludos! Última edición por evildarkangel Día 18/01/10 a las 16:02:24. Razón: Añadida versión para 1.5 |
| Los siguientes 2 usuarios han agradecido a evildarkangel su comentario: | ||
|
#24
|
||||
|
||||
|
Añado el Dlinkdecrypter y el Jazzteldecrypter.
En el Dlinkdecrypter he añadido otra TextField, para que sea más fácil copiar el posible password generado. Para los que no sepan para que sirven: Dlinkdecrypter genera un diccionario con 256 passwords y indica cual de ellos es más probable que sea. Jazzteldecrypter genera un diccionario con 65536 passwords. Saludos! Última edición por evildarkangel Día 19/01/10 a las 15:40:51. Razón: Añadido el JazztelDroid |
| Los siguientes 2 usuarios han agradecido a evildarkangel su comentario: | ||
|
#25
|
||||
|
||||
|
Añado el Dlinkdecrypter y el Jazzteldecrypter.
En el Dlinkdecrypter he añadido otra TextField, para que sea más fácil copiar el posible password generado. Para los que no sepan para que sirven: Dlinkdecrypter genera un diccionario con 256 passwords y indica cual de ellos es más probable que sea. Jazzteldecrypter genera un diccionario con 65536 passwords. Saludos! ![]() Hola. Que tal funciona el programa? Hay algo a tener en cuenta a la hora de instalar(root, ...)? Que posibles problemas pueden surgir? Muchas gracias a todos! |
|
#26
|
||||
|
||||
|
Te recomendaria que usaras un array:
String hexValues = "0123456789ABCDEF"; y accedieras con complejidad constante a los valores del array concatenandolos directamente con "+". De esta forma puedes hacerlo con un unico bucle for y es posible que ganes bastante en velocidad. Pasas de complejidad O(n^4) a O(n). Ademas, creo que la funcion toHexString es bastante pesada. |
|
#27
|
||||
|
||||
|
Me equivoque, he de mirar algoritmos de permutacion que tengan complejidad menor pero de todas formas, prueba a ver si este codigo te vas mas rapido.
He aprovechado un array y una variable limite para que todo ello quede cacheado. De esta forma no hay que llamar a la fncion to HexString, que es muy lenta y los datos ya los tenemos generdos por lo que adems, aprovechando los primeros accesos a memoria, la informacion queda cacheada y acceder al array se hace ademas con complejidad constante y va que tira millas. Lo unico que podria mejorarse, he de mirarlo, es reducir los 4 bucles a algo mas rapido aun, supongo que existen algoritmos de combinaciones de n elementos tomados de m en m con menor complejidad que O(N^m) que es el orden de complejidad mas lento. En mi pc,el cual es bastante lento,este codigo ha ido realmente rapido, supongo que en el movil no ira del todo mal, si puedes sustituyelo por el tuyo y me comentas que tal va porque a priori intuyo que ira un poquito mejor. Ademas, te recomiendo que uses el out.write mirando si hay algun metodo write que haga el salto de linea implicito con lo que te ahorras una nueva concatenacion del '\n' retorno de carro y quieras que no, 65536 veces esa operacion supondra un ahorro de unos poquiños ms. Código:
String s[] = {"0","1","2","3","4","5","6","7","8",
"9", "A", "B", "C", "D", "E", "F"};
int limit = 16;
for (int i=0; i<limit; i++)
for (int j=0; j<limit; j++)
for (int k=0; k<limit; k++)
for (int l=0; l<limit; l++)
System.out.println(s[i]+s[j]+s[k]+s[l]);
Última edición por migue85 Día 26/01/10 a las 12:37:17. |
|
#28
|
||||
|
||||
|
Me equivoque, he de mirar algoritmos de permutacion que tengan complejidad menor pero de todas formas, prueba a ver si este codigo te vas mas rapido.
He aprovechado un array y una variable limite para que todo ello quede cacheado. De esta forma no hay que llamar a la fncion to HexString, que es muy lenta y los datos ya los tenemos generdos por lo que adems, aprovechando los primeros accesos a memoria, la informacion queda cacheada y acceder al array se hace ademas con complejidad constante y va que tira millas. Lo unico que podria mejorarse, he de mirarlo, es reducir los 4 bucles a algo mas rapido aun, supongo que existen algoritmos de combinaciones de n elementos tomados de m en m con menor complejidad que O(N^m) que es el orden de complejidad mas lento. En mi pc,el cual es bastante lento,este codigo ha ido realmente rapido, supongo que en el movil no ira del todo mal, si puedes sustituyelo por el tuyo y me comentas que tal va porque a priori intuyo que ira un poquito mejor. Ademas, te recomiendo que uses el out.write mirando si hay algun metodo write que haga el salto de linea implicito con lo que te ahorras una nueva concatenacion del '\n' retorno de carro y quieras que no, 65536 veces esa operacion supondra un ahorro de unos poquiños ms. Código:
String s[] = {"0","1","2","3","4","5","6","7","8",
"9", "A", "B", "C", "D", "E", "F"};
int limit = 16;
for (int i=0; i<limit; i++)
for (int j=0; j<limit; j++)
for (int k=0; k<limit; k++)
for (int l=0; l<limit; l++)
System.out.println(s[i]+s[j]+s[k]+s[l]);
![]() Y lo del out.write no me ha quedado del todo claro... El system.out.println no es para escribir en en consola? O se puede usar para escribir en un txt? Subo todos los .apk + sources actualizados. Gracias por tus consejos ;) EDITO: Corregido un pequeño error :P Última edición por evildarkangel Día 31/01/10 a las 23:56:56. |
| Gracias de parte de: | ||
|
#29
|
||||
|
||||
|
Si conseguis el de los speedtouch os coronais...
Que lastima no saber programar che,,.. |
|
#30
|
||||
|
||||
|
Me gustaria aportar algo a esto, aunque sea probando las betas que vayais sacando. Tengo la hero roteada y ni siquiera he podido instalarlo... no se que pasara. Estare atento! Un saludo y enhorabuena por el trabajo.
|
|
#31
|
||||
|
||||
|
Me da error de escritura en la sd, al darle a generar diccionario.
Es necesario ser root? |
|
#32
|
||||
|
||||
|
Lo estás probando en el emulador o en un telefono real? En el emulador me salia ese error.
Tienes el telefono conectado por USB mientras lo haces? Si es así, desconectalo, ya que al tenerlo conectado, le PC usa la SD. No necesitas ser root en un principio... Saludos! |
|
#33
|
||||
|
||||
|
Este es un hilo donde se habla de como poner en modo monitor a Android:
http://www.androidfanatic.com/cms/co...d=1578&catid=9 Espero les pueda ayudar un poco con este link. |
|
#34
|
||||
|
||||
|
Hasta que no se desarrollen unos drivers para poner la tarjeta en modo monitor no habrá avance, así que no se porque os liaste con el algoritmo de fuerza bruta xd
Aún así dejaré mis aportes ya que se algo del tema ![]() Tú algoritmo no está optimizado evildarkangel, pruebalo de la siguiente manera y me comentas: [php] String s[] = {"0","1","2","3","4","5","6","7","8","9", "A", "B", "C", "D", "E", "F"}; int limit = 16, i, j, k, l; for (i=0; i<limit; ++i) for (j=0; j<limit; ++j) for (k=0; k<limit; ++k) for (l=0; l<limit; ++l) System.out.println(s[i]+s[j]+s[k]+s[l]);[/php]Hace un año o así conseguir desarrollar un algoritmo de fuerza bruta (con un solo bucle claro), y me costo lo suyo desarrollarlo. Lo tengo en Perl, luego al medio dia cuando llegue a casa lo pasa a Java y lo subo para que le hecheis un vistazo y hechamos unas carreras jaja, saludos! Última edición por yeikos Día 16/02/10 a las 12:44:51. |
|
#35
|
||||
|
||||
|
Tú algoritmo no está optimizado evildarkangel, pruebalo de la siguiente manera y me comentas:
[php] String s[] = {"0","1","2","3","4","5","6","7","8","9", "A", "B", "C", "D", "E", "F"}; int limit = 16, i, j, k, l; for (i=0; i<limit; ++i) for (j=0; j<limit; ++j) for (k=0; k<limit; ++k) for (l=0; l<limit; ++l) System.out.println(s[i]+s[j]+s[k]+s[l]);[/php] ![]() [php] String hexa[] = {"0","1","2","3","4","5","6","7","8", "9", "A", "B", "C", "D", "E", "F"}; for (int i=0; i<16; i++) for (int j=0; j<16; j++) for (int k=0; k<16; k++) for (int l=0; l<16; l++) out.write(password + hexa[i]+hexa[j]+hexa[k]+hexa[l] + fin + "\n");[/php]Saludos y gracias! |
|
#36
|
||||
|
||||
|
No me entendiste del todo.
Compara los dos códigos y verás unas pequeñas diferencias pero abrumadoras... |
|
#37
|
||||
|
||||
|
Este es un hilo donde se habla de como poner en modo monitor a Android:
http://www.androidfanatic.com/cms/co...d=1578&catid=9 Espero les pueda ayudar un poco con este link. ![]() Y ahora que lo he vuelto a leer... me he dado cuenta que no vale para nada. El tipo pone la tarjeta en modo "promiscuo", que no tiene nada que ver con modo "monitor". Una de las condiciones que pone para que funcione el sniffer.c y el injector.c es que estés conectado a internet (nos ha jodio!!!). Esto, para lo que vale es para demostrar que puedes snifar una red a la que estas conectado, ej. tcpdump. Pero para nada que sirva para poner la tarjeta en modo monitor para snifar el "aire" sin estar asociado a un ap. Saludos |
|
#38
|
||||
|
||||
|
Hola chicos, no se como va este tema, :P
El caso esque me gustaria saber si el programa este avanza o no, para poder conectarme a las WLAN_XX por la patilla ![]() Tengo el WlanDroid pero claro, el BSSID lo tengo que introducir manualmente y luego te genera miles y miles de claves WEP!!!! A ver si me iluminais!!!! |
|
#39
|
||||
|
||||
Cita: Originalmente Escrito por yeikos
Código:
String s[] = {"0","1","2","3","4","5","6","7","8","9",
"A", "B", "C", "D", "E", "F"};
int limit = 16, i, j, k, l;
for (i=0; i<limit; ++i)
for (j=0; j<limit; ++j)
for (k=0; k<limit; ++k)
for (l=0; l<limit; ++l)
System.out.println(s[i]+s[j]+s[k]+s[l]);
![]() Lo tengo tal cual me dijistes:
[php] String hexa[] = {"0","1","2","3","4","5","6","7","8", "9", "A", "B", "C", "D", "E", "F"}; for (int i=0; i<16; i++) for (int j=0; j<16; j++) for (int k=0; k<16; k++) for (int l=0; l<16; l++) out.write(password + hexa[i]+hexa[j]+hexa[k]+hexa[l] + fin + "\n");[/php]Saludos y gracias! ![]() Además creo que el proceso más pesado en esos bucles es la escritura en el sistema de ficheros. Le he echado un vistazo, no creo que mejore mucho el tiempo pero por probar: En tu codigo hay un par de bucles (ya se que has cambiado el tohexstring por el array) eso si que es una buena optimización: Código:
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
for(int k=0;k<16;k++)
for(int l=0;l<16;l++){
out.write(password +
Integer.toHexString(i) + Integer.toHexString(j) +
Integer.toHexString(k) + Integer.toHexString(l) +
fin + "\n");
contador++;
}
if(password2.length()>0){
for(int w=0;w<16;w++)
for(int x=0;x<16;x++)
for(int y=0;y<16;y++)
for(int z=0;z<16;z++){
out.write(password2 +
Integer.toHexString(w) + Integer.toHexString(x) +
Integer.toHexString(y) + Integer.toHexString(z) +
fin + "\n");
contador++;
}
Código:
boolean pass2=password2.length()>0;
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
for(int k=0;k<16;k++)
for(int l=0;l<16;l++){
String s=hexa[i]+hexa[j]+hexa[k]+hexa[l];
out.write(password +s + fin "\n");
if(pass2) out.write(password2 +s + fin "\n");
}
Otra pequeña ida de pelota, puede ser lo siguiente, todavia no he programado nada en android y no lo puedo probar ahora, y en el ordenador el tiempo sería despreciable: Código:
StringBuffer s="1234";
for(int i=0;i<16;i++){
s.replace(0,1,hexa[i]);
for(int j=0;j<16;j++){
s.replace(1,2,hexa[j]);
for(int k=0;k<16;k++){
s.replace(2,3,hexa[k]);
for(int l=0;l<16;l++){
s.replace(3,4,hexa[l]);
out.write(password +s + fin "\n");
if(pass2) out.write(password2 +s + fin "\n");
}
}
}
}
.Y ojala pronto tengamos modo monitor o inyeccion o como se llame, que siempre me lio con esos modos de Wifi. Y sin eso todo es en vano..... Por cierto por lo que he leido en otra parte del foro, lo que hace el iwep del iphone es poner cada una de las 65000 y pico contraseñas hasta que consigue conexión con una de ellas, eso seria razonable en tiempo para nuestro android. Alguien sabe algo de esto???? Saludos |
|
|
|
#40
|
||||
|
||||
|
realmente interesante y muy avanzado haber si podemos solucionar el telma drivers un saludo a todos
Y una recomendación a los que solo queráis tener internet por la carta sin aportar nada . se abstengan de comentarios al respecto, preferimos el sencillo agradecimiento es una cosa muy frustrante ver como la gente solo quiere abusar de un conocimiento ajeno. y son muy pesados o poco respetuosos todo llegará y para todo el mundo. |
![]() |
Estás aquí
|
||||||
|
||||||