Kismet Wireless

Kismet Forums

 

Posted by:dom123
Subject:mac80211
Date:14:16:58 02/06/2011

> > >
> > > You need to configure kismet to use libnl. Then compile with libnl. Only then kismet will use libnl. Use OpenWrt trunk and cross compiler. See chapter OpenWrt Build.
> >
> > Thanks - i've been looking into this and as far as I can tell, libnl is installed and referenced from the kismet Makefile. Once the openwrt is booted, apt-get list_installed shows that both libnl and libnl-tiny are installed too.
> >
> > Not sure where else to go from here, the primary issue is "broken" SSID's, which seems to be FCS validation failures all showing through:
> >
> > <ssid>NETG\305\011R</ssid>
> > <ssid>NETGEAR</ssid>
> > <ssid>wirelEas</ssid>
> > <ssid>wireless</ssid>
> > <ssid>belkin54g</ssid>
> > <ssid>\367!reless</ssid>
> > <ssid>&amp;\347$kin54g</ssid>
> > <ssid>BTOpenzone</ssid>
> > <ssid>belk\351&amp;54g</ssid>
> > <ssid>rOOpenzone</ssid>
> > <ssid>BTOpenzo\366h</ssid>
>
> Option 1. Use checks FCS implemented in kismet
>
> kismet.conf
> ...
> ncsource=wlan0:name=source0,type=mac80211,validatefcs=true
>
> and for openwrt necessarily need to make changes in packetsource_pcap.cc:
>
> int PacketSource_Pcap::Eight2KisPack(kis_packet *packet, kis_datachunk *linkchunk) {
> kis_datachunk *eight11chunk = NULL;
>
> eight11chunk = new kis_datachunk;
>
> eight11chunk->length = kismin((linkchunk->length - fcsbytes),
> (uint32_t) MAX_PACKET_LEN);
>
> eight11chunk->data = new uint8_t[eight11chunk->length];
> memcpy(eight11chunk->data, linkchunk->data, eight11chunk->length);
>
> kis_fcs_bytes *fcschunk = NULL;
> if (fcsbytes && linkchunk->length > 4) {
> fcschunk = new kis_fcs_bytes;
> memcpy(fcschunk->fcs, &(linkchunk->data[linkchunk->length - 4]), 4);
> // Valid until proven otherwise
> fcschunk->fcsvalid = 1;
>
> packet->insert(_PCM(PACK_COMP_FCSBYTES), fcschunk);
> }
>
> // If we're validating the FCS
> if (validate_fcs && fcschunk != NULL) {
> // Compare it and flag the packet
> uint32_t calc_crc =
> __le32_to_cpu(crc32_le_80211(globalreg->crc32_table, eight11chunk->data,
> eight11chunk->length));
>
> ... and validate FCS in kismet&openwrt is work.
>
> Option 2. Need to fix driver ath9k. Look in the code of the driver "ATH9K_RXERR_CRC" and you will understand why you get corrupted packets.
>
> Good luck!


Hi there, thanks for your reply.

I tried option 1 and I get no networks detected when validatefcs=true. This is a AR9220 wireless chip on a AR71xx openwrt, built today.


Reply to this message