X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fhdw-sniff.git;a=blobdiff_plain;f=parse.h;h=9278dc35a96409935663291f7d2d986381e28ecb;hp=a65783323a23596ca349df339bbddb9d770cdcbd;hb=HEAD;hpb=04773ef6afbd043429d526ca375e5caba1294c99 diff --git a/parse.h b/parse.h index a657833..9278dc3 100644 --- a/parse.h +++ b/parse.h @@ -6,6 +6,7 @@ /* ieee802.11 stuff */ +typedef unsigned long long int u64; typedef unsigned int u32; typedef unsigned short int u16; typedef unsigned char u8; @@ -46,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 @@ -90,6 +114,21 @@ typedef struct s_frame1_hdr { #define FCTL_STYPE_CFPOLL 0x6 #define FCTL_STYPE_CFACKPOLL 0x7 +typedef struct s_beacon_fb { + u64 timestamp; + u16 beacon_int; + u16 cap_info; + u8 ssid_element_id; + u8 ssid_length; + 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 */ @@ -103,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 */