From metatech: at least on Windows XP, if a Centrino 802.11 interface is

in promiscuous mode, packets captured promiscuously show up as 802.11
packets encapsulated in Ethernet, with an Ethernet type of 0x2452.

svn path=/trunk/; revision=11451
This commit is contained in:
Guy Harris 2004-07-21 05:44:03 +00:00
parent 1f4829897a
commit c1b410806e
3 changed files with 12 additions and 2 deletions

View File

@ -47,6 +47,7 @@ static dissector_handle_t data_handle;
const value_string etype_vals[] = {
{ETHERTYPE_IP, "IP" },
{ETHERTYPE_IPv6, "IPv6" },
{ETHERTYPE_CENTRINO_PROMISC, "IEEE 802.11 (Centrino promiscuous)" },
{ETHERTYPE_X25L3, "X.25 Layer 3" },
{ETHERTYPE_ARP, "ARP" },
{ETHERTYPE_REVARP, "RARP" },

View File

@ -2317,8 +2317,12 @@ dissect_ieee80211_common (tvbuff_t * tvb, packet_info * pinfo,
"WEP ICV: 0x%08x (not verified)",
tvb_get_ntohl(tvb, hdr_len + ivlen + len));
call_dissector(data_handle, next_tvb, pinfo, tree);
return;
if (pinfo->ethertype != ETHERTYPE_CENTRINO_PROMISC)
{
/* Some wireless drivers (such as Centrino) WEP payload already decrypted */
call_dissector(data_handle, next_tvb, pinfo, tree);
return;
}
} else {
if (tree)
@ -3231,6 +3235,7 @@ proto_reg_handoff_ieee80211(void)
proto_wlan);
dissector_add("wtap_encap", WTAP_ENCAP_IEEE_802_11_WITH_RADIO,
ieee80211_radio_handle);
dissector_add("ethertype", ETHERTYPE_CENTRINO_PROMISC, ieee80211_handle);
}
static tvbuff_t *try_decrypt_wep(tvbuff_t *tvb, guint32 offset, guint32 len) {

View File

@ -64,6 +64,10 @@
#define ETHERTYPE_CGMP 0x2001
#endif
#ifndef ETHERTYPE_CENTRINO_PROMISC
#define ETHERTYPE_CENTRINO_PROMISC 0x2452 /* Intel Centrino promiscuous packets */
#endif
#ifndef ETHERTYPE_3C_NBP_DGRAM
#define ETHERTYPE_3C_NBP_DGRAM 0x3c07
#endif