martes, diciembre 11, 2012
Ordenar y limpiar archivos grandotes con Ruby y Bash
Curiosidad:
Tengo una colección de diccionarios que me pasó Dinno hace un tiempo. Quería dejar el aircrack cotejándolos, pero son 44 archivos, y quería ver como serializarlos, es decir, procesarlos a todos. Ademas, estoy seguro que hay palabras que se repiten entre los diccionarios.
Se me ocurrió unir todos los archivos en uno solo, ordenar las palabras internamente, y borrar las duplicadas.
Unificar todos los diccionarios en uno solo, se pudo hacer directamente desde el irb:
archivos = Dir.entries(".")
=> ["numeros.txt", "HackPass-1.txt", "pass_habituales2.txt", "passlist.txt", "passlist-3.txt", "user.txt", "otras_palabras.txt", "HackPass-3.txt", "passwordjhon.lst", "passwords.txt", etc etc
archivos.size.times do
system("cat #{archivos[i]} >> TODOS.txt")
i = i + 1
end
Listo, ahora tengo un archivo de 141 MB. Luego, para ordenarlo y limpiarlo, me dio fiaca y use el viejo uniq:
cat TODOS.txt | sort | uniq > TODOS_LIMPIOS.txt
Si comparamos tamaños:
ls -lh TODOS*
-rw-rw-r-- 1 s s 95M dic 12 00:01 TODOS_LIMPIOS.txt
-rw-rw-r-- 1 s s 141M dic 11 23:56 TODOS.txt
¡Que diferencia! y esto implica MUCHO tiempo de proceso menos para aircrack ;)
Es decir, comparemos la cantidad de palabras:
wc -l TODOS*
11.035.510 TODOS_LIMPIOS.txt
15.746.349 TODOS.txt
Esto implica 4.710.839 menos comparaciones que deberá hacer nuestro querido amigo aircrack. Y por cierto, la resta de este numero al total de claves es importante para saber cuanto le falta al programa para terminar, ya que si bien va mostrando la cantidad de claves analizadas, no muestra cuantas les queda por procesar.
Es decir, si lanzo:
aircrack-ng -w TODOS_LIMPIOS.txt -b C8:6C:87:56:5E:0D speedynet.cap
Y veo que mi CPU es capaz de procesar aproximadamente 1300 claves por segundo, puedo saber que
11035510 / 1300 / 60 / 60 = 2.35 hs
Y a esperar. Bastante menos, espero ;)
Suscribirse a:
Comentarios de la entrada (Atom)
1 comentario:
No crees que es hora de compartir el diccionario ???
Un Abrazo
Publicar un comentario