2017-03-16 18 views
7

Tôi đang phát triển chương trình phân tích cú pháp khung IEEE802.11 bằng cách sử dụng libpcap bên trong Linux với số liệu C. Tôi có thể phân tích cú pháp các tiêu đề RadioTapIEEE802.11 dễ dàng nhưng tôi không thể tìm ra tên giao thức được đóng gói bên trong IEEE802.11 MPDU. Đáng tiếc là không có trường nào trong tiêu đề IEEE802.11 cho biết giao thức đóng gói (như trường trong tiêu đề Ethernet).Làm thế nào để tìm ra giao thức đóng gói bên trong Khung IEEE802.11?

Bất kỳ giải pháp nào?

+0

Bạn có ý nghĩa gì với tên? b/g/n ... có thể được truy xuất trên PLCP Sublayer – LPs

+0

@LPs: b/g/n là một phần của tiêu đề 'IEEE802.11'. Tôi có nghĩa là '802.11X' trong trường hợp của các gói' EAPOL' trong xác thực WPA hoặc bất kỳ giao thức nào khác được đóng gói bên trong gói. – SuB

+0

Tôi không có chuyên gia, nhưng nhìn vào wireshark [mẫu chụp] (https://wiki.wireshark.org/SampleCaptures#Wifi_.2F_Wireless_LAN_captures_.2F_802.11) cho thấy, rằng có thể có một tiêu đề Logical-Link-Control với SNAP phần mở rộng (như được chỉ ra bởi 0xAA) có thể chứa [ettertype] (https://en.wikipedia.org/wiki/EtherType) khi OID == 0x000000 (xem [ở đây] (https://en.wikipedia.org/wiki /Subnetwork_Access_Protocol)) ... May mắn! – vlp

Trả lời

0

dữ liệu của IEEE802.11 gói dữ liệu được đóng gói trong một tiêu đề LLC (Xem here):

Một 802.11 khung nên chứa một tiêu đề LLC nếu, và chỉ nếu, đó là một khung Data. Loại khung và loại phụ là một phần của trường Điều khiển khung trong tiêu đề MAC; Dữ liệu là một trong các giá trị loại khung (số các giá trị khác là Kiểm soát và Quản lý). Loại phụ không quan trọng - tất cả Khung dữ liệu phải chứa tiêu đề LLC và không có khung nào khác.

Có hai loại tiêu đề LLC: 3 byte, 8 byte. IEEE 802.11 sử dụng số thứ hai (Xem here). Trong đó, hai byte cuối cùng của tiêu đề LLC tương đương với trường Ether Type trong giao thức Ethernet. Vì vậy, 0x800 cho trường này có nghĩa là IPv4 chẳng hạn.

2

Đối 802.11 khung được đóng gói dữ liệu, tiêu đề loại/kiểu phụ sẽ nằm trong khoảng 0x200x2F (mặc dù khung thường là 0x20 (dữ liệu) hoặc 0x28 (QoS-Data)). Sẽ có tiêu đề SNAP 5 byte sẽ chứa loại tải trọng (như đã đề cập trong this answer). Nếu OID (ba byte đầu tiên của tiêu đề SNAP) là 0x000000, thì hai byte tiếp theo là Loại Ethernet.

Loại Ethernet sẽ là 0x888e cho EAPoL (source). Đó là trường bạn sẽ kiểm tra để biết giao thức đóng gói (0x0800 cho IP, 0x0806 cho ARP, v.v.).

Đây là tài liệu Cisco tốt về loại Ethernet và cách bạn có thể sử dụng chúng để lọc các giao thức nhất định: http://www.cisco.com/c/en/us/td/docs/ios/12_2/ibm/vol1/command/reference/fibm_r1/br1fethc.pdf.

Đây là một tài liệu Cisco tốt về các dấu vết sniffer không dây bao gồm mô tả về các trường loại/trường phụ loại 802.11: https://supportforums.cisco.com/document/52391/80211-frames-starter-guide-learn-wireless-sniffer-traces.

Các vấn đề liên quan