Sistemas operativos > Zona GNU/Linux

Parche Fix Channel -1 usando aircrack-ng con driver compat-wireless

(1/7) > >>

supremo12345:
Hola,
Existe un pequeño bug en los drivers compat-wireless con algunos drivers (con el driver b43 por ejemplo, que es mi caso, ocurre) que hace que cada vez que lanzas airodump en un canal concreto te pone error explicando que el canal activo es -1 (error).

La forma de solucionar esto es editando el archivo que se encuentra en:

compat-wireless/net/wireless/chan.c

Y COMPILANDO DESPUES.

Despues de mucho buscar por internet, no encontre ningun parche generico para todas las versiones compat-wireless. Asique, edite la funcion de chan.c a mano, para aplicar a saco los cambios. La funcion de chan.c es cfg80211_set_freq, y debe quedar asi (podeis copiar y pegar sustituyendo la funcion antigua por esta, y ya funcionara):

--- Código: ---int cfg80211_set_freq(struct cfg80211_registered_device *rdev,
      struct wireless_dev *wdev, int freq,
      enum nl80211_channel_type channel_type)
{
struct ieee80211_channel *chan;
struct wireless_dev *mon_dev = NULL;
int result;

if (wdev && wdev->iftype == NL80211_IFTYPE_MONITOR) {
mon_dev = wdev;
  wdev = NULL;
}

if (wdev) {
ASSERT_WDEV_LOCK(wdev);

if (!netif_running(wdev->netdev))
return -ENETDOWN;
}



if (!rdev->ops->set_channel)
return -EOPNOTSUPP;

chan = rdev_freq_to_chan(rdev, freq, channel_type);
if (!chan)
return -EINVAL;

/* Both channels should be able to initiate communication */
if (wdev && (wdev->iftype == NL80211_IFTYPE_ADHOC ||
     wdev->iftype == NL80211_IFTYPE_AP ||
     wdev->iftype == NL80211_IFTYPE_AP_VLAN ||
     wdev->iftype == NL80211_IFTYPE_MESH_POINT ||
     wdev->iftype == NL80211_IFTYPE_P2P_GO)) {
switch (channel_type) {
case NL80211_CHAN_HT40PLUS:
case NL80211_CHAN_HT40MINUS:
if (!can_beacon_sec_chan(&rdev->wiphy, chan,
channel_type)) {
printk(KERN_DEBUG
       "cfg80211: Secondary channel not "
       "allowed to initiate communication\n");
return -EINVAL;
}
break;
default:
break;
}
}

result = rdev->ops->set_channel(&rdev->wiphy,
wdev ? wdev->netdev : NULL,
chan, channel_type);
if (result)
return result;

if (wdev)
wdev->channel = chan;

if (mon_dev)
mon_dev->channel = chan;

return 0;
}
--- Fin del código ---


Espero sirva de ayuda,
saludos

USUARIONUEVO:
creo que lo que pasa es que no le habeis aplicado antes el parche de aircrack.

fixed-negative.channel

hay dos parches de aircrack ,que son imprescindibles.

uno ese que pongo del neagtive 1 , y el otro el de fragmentacion ,esos dos son obligatorios.

solo pretendo añadir informacion
aqui sitio oficial de los parches de aircarck-ng

http://patches.aircrack-ng.org/

este es el que fija el negative one  usease el -1
http://patches.aircrack-ng.org/channel-negative-one-maxim.patch

este otro el de fragmentacion (no recuerdo si es este exactamente)

http://patches.aircrack-ng.org/mac80211_2.6.27_frag+ack_v2.patch

si os fijais en el listado vereis que los hay de todos los colores.
los drivers se parchan lo primero

patch -Np0 -i parche.patch

el 0 puede variar a 1 u 2 Np1 Np2 dependiendo de la profuncidad en directorias a la que este el archivo que pretende parchear.

para auditorias y modo monitor los drivers compat-wireless siempre siempre se parchean antes.

despues

make
make install.

puede que yo haya entendido mal..peo si es por lo del dichoso negative 1 .. .entonces no me equivoco,.

supremo12345:


--- Cita de: USUARIONUEVO en 08-05-2011, 04:43 (Domingo) ---creo que lo que pasa es que no le habeis aplicado antes el parche de aircrack.

fixed-negative.channel

hay dos parches de aircrack ,que son imprescindibles.

uno ese que pongo del neagtive 1 , y el otro el de fragmentacion ,esos dos son obligatorios.

solo pretendo añadir informacion
aqui sitio oficial de los parches de aircarck-ng

http://patches.aircrack-ng.org/

este es el que fija el negative one  usease el -1
http://patches.aircrack-ng.org/channel-negative-one-maxim.patch

este otro el de fragmentacion (no recuerdo si es este exactamente)

http://patches.aircrack-ng.org/mac80211_2.6.27_frag+ack_v2.patch

si os fijais en el listado vereis que los hay de todos los colores.
los drivers se parchan lo primero

patch -Np0 -i parche.patch

el 0 puede variar a 1 u 2 Np1 Np2 dependiendo de la profuncidad en directorias a la que este el archivo que pretende parchear.

para auditorias y modo monitor los drivers compat-wireless siempre siempre se parchean antes.

despues

make
make install.

puede que yo haya entendido mal..peo si es por lo del dichoso negative 1 .. .entonces no me equivoco,.

--- Fin de la cita ---

Como he dixo ya, esos parches no son genericos. Hay infinitas versiones de drivers compat wireless (los mas usados) y en cuanto el archivo chan.c cambie un minimo el parche ya no sirve. Por eso la forma 'universal' de parchear el chan.c para evitar el error seria reemplazar la funcion por la que he puesto yo y compilar.

Saludos.

beger:
Supremo.. y como lo compilo?

supremo12345:

--- Cita de: beger en 08-05-2011, 22:23 (Domingo) ---Supremo.. y como lo compilo?

--- Fin de la cita ---

El paquete de drivers compat wireless ya lleva preparado un makefile.

Simplemente te pones en el directorio de compat y ejecutas : make [DESPUES DE HABER EDITADO CHAN.C]

Tambien puedes compilar solamente un driver especifico, tecleando ./scripts/driver-select DRIVER
Y luego hacer make.
Saludos

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa