Wlaninject 0.6 - Ahora con cafeina, mucho más rapido!!

Iniciado por nilp0inter, 11 Diciembre 2006, 08:06 AM

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

nilp0inter

Cita de: odbk en 22 Diciembre 2006, 14:55 PM
Ami me da un error al ejecutarlo en libnet1_init ()  incluso al ejecutarlo si parametros para ver el help, no creo que sea debido a lo que contaban arriba

Bueno saludos y gracias a los que dedicais un poco de tiempo a estas cosas tanto a resolver dudas como a crear soft

Prueba ahora, que he subido la 0.2 que creo que ya estará arreglada

odbk

ummm
me he bajao la version nueva la 0.2 de WWW.rusoblanco.com he seguido las modificaciones del post y me ha salido esto

root@troppix:~ wlaninject -b xx:xx:xx:xx:xx:xx -e WLAN_BF -i ath0 -f
wlaninject: libnet_get_ipaddr4(libnet):libnet_get_ipaddr4(): ioctl(): Cannot as sign request address


Saludos

nilp0inter

Cita de: odbk en 22 Diciembre 2006, 21:34 PM
ummm
me he bajao la version nueva la 0.2 de WWW.rusoblanco.com he seguido las modificaciones del post y me ha salido esto

root@troppix:~ wlaninject -b xx:xx:xx:xx:xx:xx -e WLAN_BF -i ath0 -f
wlaninject: libnet_get_ipaddr4(libnet):libnet_get_ipaddr4(): ioctl(): Cannot as sign request address


Saludos

te has puesto la ip??

ifconfig ath0 192.168.1.250 up

odbk

ponia iwconfig ath0 ip up  ;D me vas a zumbar por dar tanto por culo jejeje joder es que era todo con iwconfig y me extraño lo de ifconfig

nilp0inter

Cita de: odbk en 22 Diciembre 2006, 23:00 PM
ponia iwconfig ath0 ip up  ;D me vas a zumbar por dar tanto por culo jejeje joder es que era todo con iwconfig y me extraño lo de ifconfig

xD

axi

Hola nilp0inter,

He hecho unas pruebas con tu progama sin ningún router de imagenio, asi que no puedo probar su eficacia. Sin embargo, he analizado un poco su comportamiento.
En el modo que tú denominas fast mode, no haces ninguna pausa entre el envio de cada paquete, en el modo normal, en concreto realizas una pausa teórica de 1us ( digo teórica, porque normalmente no se cumple,siendo bastante mayor ).

Pese a que comentabas métodos para realizar más rápido el envío, el cuello de botella está en la tarjeta y en el medio inalámbrico, esto es, la tarjeta en modo fast ya está más que sobrecargada y la tarjeta no envia todas las tramas que el programa especifica porque le llenas los buffers al ir demasiado deprisa y las descarta. Además, puede haber varios AP en el mismo canal o estaciones emitiendo que harían que las tramas colisionaran, o cuando menos ocurriera algun retardo en la emisión.
Por otro lado, con pausas mediante la función usleep en cada paquete probablemente estemos desaprovechando mucho tiempo.

Para ver el tiempo desaprovechado, realice la prueba de capturar la cantidad de tramas que se llegaban a emitir en fast mode, y me salian unas 10000, muy alejadas de las 65536 que deberían aparecer. Fijándome en los tiempos entre trama, eran de aproximadamente 0.4us. Lo cual quería decir que se podia enviar una trama esperando como mínimo 0.4us, sin embargo lograr esta precisión programando ( pese a que existe la función nanosleep ) es harto difícil, así que probé un pequeño hack, cutre, que se basa en llenar el buffer de envio y esperar 1 us, haciendo asi un envío a ráfagas.

Por ejemplo, si especificamos el factor 10, cada 10 paquetes se espera 1us, con lo que nos tarda aprox 30s en total, y nos envia 50 y pico mil tramas, no todas, pero casi todas, aumentando la probabilidad de exito muchisimo más que con 10 mil y aumentando tambien mucho la velocidad porque esperamos cada 10 tramas, con este valor podeis jugar lo que querais.
Resumiendo, cuanto mayor es el factor, menos tramas se envian pero más rápido lo realiza. No es un avance tampoco muy grande, porque esperando con cada trama se tardan los 4 minutos que no es mucho tiempo.
Ejemplo :
wlaninject -e WLAN_35 -b 00:60:B3:XX:XX:XX -i ath0 -f 10
wlaninject -e WLAN_35 -b 00:60:B3:XX:XX:XX -i ath0 -f 25
wlaninject -e WLAN_35 -b 00:60:B3:XX:XX:XX -i ath0

sin -f  es que pare en cada paquete, es equivalente a
wlaninject -e WLAN_35 -b 00:60:B3:XX:XX:XX -i ath0 -f 1

Tengo el parche en diff unificado, simplemente copiarlo en el directorio del programa y aplicarlo con patch -i parche_factor.diff
Lo postearia aquí, pero no tengo ni idea de si tengo privilegios o cómo hacerlo, estos foros con tantos dibujitos me descolocan. Así que te lo envío al correo y tú verás si te interesa agregarlo o no.

nilp0inter sobre el código,
te he quitado algunos warning molestos de algunas guarrerias un poco graves, pero deberias compilarlo con la opción -Wall y quitarlos todos, al menos para dejarlo un poco más decente, sin variables que no tienen uso etc... Simplemente he agregado un contador de tramas, diviéndolo por el factor y comrpobando que el resto sea cero y si es cero entonces esperar. La ayuda y demas,  la he modificado levemente para lo del factor, un apaño que deberias poner bien.

if ( (packet_counter % factor) == 0)
  usleep(1);



Un Saludo y espero que te sirva de ayuda

nilp0inter

Joder, muchas gracias  ;D . A ver si le aplico el parche y lo subo dentro de un ratillo xq voy a estar unos cuantos dias offline.

Lo de las 10000 tramas del fastmode me di cuenta despues de publicarlo y me imagine que seria que estaba el buffer petao xD, pero es la primera vez que juego con libnet y libpcap y es lo que pasa; yo tengo que aprender a palos  :rolleyes:

Muchas gracias de nuevo ;)

nilp0inter

Ok, ya he aplicado el parche y he arreglao una movida del porcentaje. Ya lo teneis subido.
A ver si tengo un rato y arreglo los millones de cagadas/burradas que tiene.

Muchas gracias axi ;)

longits

Por favor, usa topics descriptivos.
Por favor, cuida un poco la ortografía.

Por favor, un mínimo de inteligencia emocional.

odbk

#49
Axi , nilp0inter, ... I love you xDD
joder haceis buena pareja podiais estar en contacto fijo que sacais cosas wapas

Por cierto he probao la 0.3 y rula de p**a madre