Bonjour à tous,
Je voudrais récuperer la structure "wifi_header" dans une trame wifi IEEE 802.11 crypté en Wep. Je n'ai aucun problème pour récuperer les différentes couches de TCP/IP avec winpcap lors que les paquets ne sont pas cryptés.
Voila ma structure wifi_header (lorsque c'est du WIFI_DATA) stocké dans un .h :
Et voilà ma fonction pour récuperer la structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 typedef struct wifi_header { u_int8_t type; #define WIFI_DATA 0x08 #define WIFI_BACON 0x80 #define WIFI_ACK 0xd4 u_int8_t control; #define WIFI_STA_TO_STA 0x00 #define WIFI_STA_TO_AP 0x01 #define WIFI_AP_TO_STA 0x02 #define WIFI_AP_TO_AP 0x03 #define WIFI_WEP 0x40 u_int16_t duration; u_int32_t ha1[ETHER_ADDR_LEN]; u_int32_t ha2[ETHER_ADDR_LEN]; u_int32_t ha3[ETHER_ADDR_LEN]; u_int16_t seq; }wifi_header;
et j'ai récuperé mes paquets dans un fichier .pcap (Wireshark) avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 char* decryptPacket(const u_char *pkt_data){ //Variables// struct wifi_header *wifi; int decodeLength; //on est interressé si c'est un paquet Wifi decodeLength=sizeof(struct wifi_header); wifi=(struct wifi_header *)pkt_data; if (wifi->type!=WIFI_DATA) { printf("Ce n'est pas du WIFI_DATA\n"); return NULL; } printf("C''est du WIFI_DATA\n"); return NULL; }
Je n'arrive pas a savoir si c'est du WIFI_DATA ou pas alors que les paquets y sont bien. Est ce que quelqu'un sait d'ou vient mon problème? Peut être de la structure elle même...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pcap_next_ex(fp, &header, &pkt_data) decryptPacket(pkt_data);
Je vous remercie par avance.
Bonne soirée à tous.
Partager