2013-07-23 6 views
0

모니터 모드에서 Wi-Fi 장치의 802.11 패킷을 스니핑하려고합니다. 잘못된 출력이 나옵니다. 링크 계층 유형을 DLT_IEEE_802_11_RADIO (127)로 사용해야한다는 것이 확인되었습니다. 이더넷에 대한 정확한 패킷 형식을 얻지 못하고 있습니다. 나는 그 패킷에서 MAC 주소와 RSSI 값을 가져 가고 싶다. 나는 C++로 코드를 작성하고있다. 이 값에 액세스하는 방법을 알 수 있습니까?802.11 용 Libpcap 스니핑 프로토콜

답변

0

DLT_IEEE_802_11_RADIO

tcpdump.org link-layer header types pageLINKTYPE_IEEE802_11_RADIOTAP은/DLT_IEEE802_11_RADIO의 말한다

LINKTYPE_IEEE802_11_RADIOTAP 127 DLT_IEEE802_11_RADIO Radiotap link-layer information 802.11 헤더 하였다.

링크 된 페이지는 무선 탭 헤더의 모양을 설명합니다. 다소 복잡하기 때문에 코드를 처리하는 코드는 다소 복잡 할 수 있습니다. 원하는 모든 것이 신호 강도 표시기라면 더 쉽게 수행 할 수 있습니다.

신호 강도는 strength in dBm, 즉 decibels from 1 milliwatt 또는 strength in dB from some unspecified arbitrary reference point입니다. 802.11 규격에서 언급 한 "RSSI"는 부정적 일 수 있으므로 802.11 규격에서 언급 한 것처럼 "RSSI"보다 더 유용 할 수 있습니다. 모든 802.11 "RSSI"로 비교할 수 있습니다. 하나의 신호가 다른 신호보다 강하거나 약한 경우에는 을 얼마나 많이 또는 약한 지 또는 신호가 얼마나 많은지 확인할 수 없습니다.

다음 라디오 태그 헤더는 802.11 헤더입니다. MAC 주소를 찾으려면 the 802.11 standard의 8 절을 참조하십시오. 여러 프레임에 3 개 이상의 MAC 주소가 있습니다. 호스트가 반드시 다른 호스트로 직접 패킷을 보내지는 않으므로 패킷을 대상 호스트로 전달하는 액세스 지점으로 보낼 수 있습니다.

+0

감사합니다. Harris. 이것은 나를 많이 도왔다. 나는 코드를 다 끝냈다. 하나의 문제가 발생하는 것처럼 보이고, MAC의 일부 비트가 변경된다. 예를 들면. MAC 80 : AA : FC : 89 : 03 : BA는 80 : A8 : FC : 89 : 03 : BA로 표시됩니다. WiFi 패킷에서 오류 비트가 발생할 가능성이 있습니까? – dfordevy

+0

"WiFi 패킷에서 오류가 발생할 수 있습니까?" 예, 모니터 모드로 캡처하는 경우 모니터 모드에서 어댑터는 손상된 패킷 (예 : 전자 레인지 :-)으로 인해 수신되기 전에 손상된 패킷을 제공 할 수 있습니다. 손상의 결과로 CRC가 손상 되었음이 밝혀 지더라도 . radiotap 헤더는 패킷에 유효하지 않은 CRC가 있었음을 나타낼 수 있으며 Wireshark도 그렇게 할 수 있습니다. –

+0

Wireshark를 사용하고 있지 않습니다. 나는 내 자신의 API를 개발하고있다. CRC는 어떻게 할 수 있습니까? 나에게 오류가없는 패킷 만 제공 할 libpcap API가 있습니까? – dfordevy