X-Git-Url: https://www.hackdaworld.org/gitweb/?p=my-code%2Fhdw-sniff.git;a=blobdiff_plain;f=parse.h;fp=parse.h;h=ef167adf1b9b3f6d64d276fd3d68f77f47081671;hp=1bf727e920d344b19f567b66350cd69d2c301840;hb=e0585c09c6eca4aa0af0a5a658e6e711fb76d3a5;hpb=b20137f3f0a0b27e441c8ed148482b28c590873f diff --git a/parse.h b/parse.h index 1bf727e..ef167ad 100644 --- a/parse.h +++ b/parse.h @@ -3,12 +3,107 @@ #ifndef PARSE_H #define PARSE_H -typedef struct s_data { - unsigned char **package; - int p_count; +/* ieee802.11 stuff */ -} t_data; +#define ADDR_LEN 6 +typedef struct s_frame4_hdr { + u16 frame_ctl; + u16 duration_id; + u8 addr1[ADDR_LEN]; /* receiver */ + u8 addr2[ADDR_LEN]; /* transmitter */ + u8 addr3[ADDR_LEN]; /* destination */ + u16 seq_ctrl; + u8 addr4[ADDR_LEN]; /* source */ +} __attribute__ ((packed)) t_frame4_hdr; + +typedef struct s_frame3_hdr { + u16 frame_ctl; + u16 duration_id; + u8 addr1[ADDR_LEN]; /* destination / bssid */ + u8 addr2[ADDR_LEN]; /* source /bssid */ + u8 addr3[ADDR_LEN]; /* bssid / source / destination */ + u16 seq_ctrl; +} __attribute__ ((packed)) t_frame3_hdr; + +typedef struct s_frame2_hdr { + u16 frame_ctl; + u16 duration_id; + u8 addr1[ADDR_LEN]; /* receiver / bssid / receiver */ + u8 addr2[ADDR_LEN]; /* transmitter / transmitter / bssid */ + u16 seq_ctrl; +} __attribute__ ((packed)) t_frame2_hdr; + +typedef struct s_frame1_hdr { + u16 frame_ctl; + u16 duration_id; + u8 addr1[ADDR_LEN]; /* receiver */ + 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) + +#define FCTL_TYPE_MGMT 0 +#define FCTL_TYPE_CTRL 1 +#define FCTL_TYPE_DATA 2 + +#define FCTL_STYPE_ASSOC_REQ 0x0 +#define FCTL_STYPE_ASSOC_RESP 0x1 +#define FCTL_STYPE_REASSOC_REQ 0x2 +#define FCTL_STYPE_REASSOC_RESP 0x3 +#define FCTL_STYPE_PROBE_REQ 0x4 +#define FCTL_STYPE_PROBE_RESP 0x5 +#define FCTL_STYPE_BEACON 0x8 +#define FCTL_STYPE_ATIM 0x9 +#define FCTL_STYPE_DISASSOC 0xa +#define FCTL_STYPE_AUTH 0xb +#define FCTL_STYPE_DEAUTH 0xc + +#define FCTL_STYPE_PSPOLL 0xa +#define FCTL_STYPE_RTS 0xb +#define FCTL_STYPE_CTS 0xc +#define FCTL_STYPE_ACK 0xd +#define FCTL_STYPE_CFEND 0xe +#define FCTL_STYPE_CFENDACK 0xf + +#define FCTL_STYPE_DATA 0x0 +#define FCTL_STYPE_DATA_CFACK 0x1 +#define FCTL_STYPE_DATA_CFPOLL 0x2 +#define FCTL_STYPE_DATA_CFACKPOLL 0x3 +#define FCTL_STYPE_NULLFUNC 0x4 +#define FCTL_STYPE_CFACK 0x5 +#define FCTL_STYPE_CFPOLL 0x6 +#define FCTL_STYPE_CFACKPOLL 0x7 + + +/* hdw-sniff stuff */ + +#define MAX_SSID_LEN 32 +#define AP 1 +#define WEP 1 +#define WEP_MAX_DIGITS 13 + +typedef struct s_sta { + u8 addr[ADDR_LEN]; + char ssid[MAX_SSID_LEN]; + u8 ap; + u8 wep; + int count_mgmt; + int count_ctrl; + int count_data; + char key[WEP_MAX_DIGITS]; +} t_sta; + /* function prototypes */ #endif