X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fhdw-sniff.git;a=blobdiff_plain;f=parse.h;h=a65783323a23596ca349df339bbddb9d770cdcbd;hp=228a67ed82a57c2cc58f7a9f6a6368e373aaf8cf;hb=04773ef6afbd043429d526ca375e5caba1294c99;hpb=4496e49cea69d40228b53c6a66a8a4b22bbcb1b7 diff --git a/parse.h b/parse.h index 228a67e..a657833 100644 --- a/parse.h +++ b/parse.h @@ -1,8 +1,114 @@ -/* function prototypes */ +/* parse.h */ #ifndef PARSE_H #define PARSE_H -// void parse_package(unsigned char *ptr,const struct pcap_pkthdr *pcap_header,const unsigned char *package); +/* ieee802.11 stuff */ + + +typedef unsigned int u32; +typedef unsigned short int u16; +typedef unsigned char u8; + +#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