X-Git-Url: https://www.hackdaworld.org/gitweb/?p=my-code%2Fhdw-sniff.git;a=blobdiff_plain;f=parse.h;h=9278dc35a96409935663291f7d2d986381e28ecb;hp=96eca6da486f8897deeaa7d459e3e47b7108dd19;hb=HEAD;hpb=c191ef245532c978ebdfbcb25056500fab9eb638 diff --git a/parse.h b/parse.h index 96eca6d..9278dc3 100644 --- a/parse.h +++ b/parse.h @@ -47,17 +47,40 @@ typedef struct s_frame1_hdr { u16 seq_ctrl; } __attribute__ ((packed)) t_frame1_hdr; -#define FCTL_VER(X) ((X&0x0003)) -#define FCTL_TYPE(X) ((X&0x000c)>>2) -#define FCTL_STYPE(X) ((X&0x00f0)>>4) -#define FCTL_TODS(X) ((X&0x0100)>>8) -#define FCTL_FROMDS(X) ((X&0x0200)>>9) -#define FCTL_MOREFRAG(X) ((X&0x0400)>>10) -#define FCTL_RETRY(X) ((X&0x0800)>>11) -#define FCTL_PWRMGT(X) ((X&1000)>>12) -#define FCTL_MOREDATA(X) ((X&0x2000)>>13) -#define FCTL_WEP(X) ((X&0x4000)>>14) -#define FCTL_ORDER(X) ((X&0x800)>>15) +typedef struct s_prism_val { + u32 did; + u16 status; + u16 len; + u32 data; +} __attribute__ ((packed)) t_prism_val; + +typedef struct s_prism_hdr { + u32 msg_code; + u32 msg_len; + char device[16]; + t_prism_val hosttime; + t_prism_val mactime; + t_prism_val channel; + t_prism_val rssi; + t_prism_val sq; + t_prism_val signal; + t_prism_val noise; + t_prism_val rate; + t_prism_val istx; + t_prism_val frame_len; +} __attribute__ ((packed)) t_prism_hdr; + +#define FCTL_VER(X) (((*(u16 *)&X)&0x0003)) +#define FCTL_TYPE(X) (((*(u16 *)&X)&0x000c)>>2) +#define FCTL_STYPE(X) (((*(u16 *)&X)&0x00f0)>>4) +#define FCTL_TODS(X) (((*(u16 *)&X)&0x0100)>>8) +#define FCTL_FROMDS(X) (((*(u16 *)&X)&0x0200)>>9) +#define FCTL_MOREFRAG(X) (((*(u16 *)&X)&0x0400)>>10) +#define FCTL_RETRY(X) (((*(u16 *)&X)&0x0800)>>11) +#define FCTL_PWRMGT(X) (((*(u16 *)&X)&1000)>>12) +#define FCTL_MOREDATA(X) (((*(u16 *)&X)&0x2000)>>13) +#define FCTL_WEP(X) (((*(u16 *)&X)&0x4000)>>14) +#define FCTL_ORDER(X) (((*(u16 *)&X)&0x800)>>15) #define FCTL_TYPE_MGMT 0 #define FCTL_TYPE_CTRL 1 @@ -97,12 +120,15 @@ typedef struct s_beacon_fb { u16 cap_info; u8 ssid_element_id; u8 ssid_length; - u32 ssid; + u8 ssid[32]; u8 srates_element_id; u8 srates_element_length; u8 rest; /* go on here ... */ } __attribute__ ((packed)) t_beacon_fb; +#define CAP_INFO_ESS(X) ((X&0x0001)) +#define CAP_INFO_IBSS(X) ((X&0x0002)>>1) +#define CAP_INFO_PRIVACY(X) ((X&0x0010)>>4) /* hdw-sniff stuff */ @@ -116,10 +142,15 @@ typedef struct s_sta { char ssid[MAX_SSID_LEN]; u8 ap; u8 wep; + u8 wds; int count_mgmt; int count_ctrl; int count_data; + char active; char key[WEP_MAX_DIGITS]; + int sq; + u8 snap[10]; + u8 bssid[ADDR_LEN]; } t_sta; /* function prototypes */