2012-11-06 9 views
1

pcap (pcap_can_set_rfmon은 -6을 반환)을 통해 모니터 모드로 설정하도록 지원하지 않는 장치에서 libpcap을 사용하여 C로 캡처합니다. 하지만 명령 줄에서 iw 및 iwconfig를 사용하여 모니터 모드로 설정할 수 있으므로 수동으로 실행 한 다음 프로그램을 실행하십시오. 또한 pcap 함수 pcap_set_rfmon으로 모니터 할 네트워크 장치를 설정할 수있는 Mac에서 캡처 중입니다.pcap C 모니터 모드가 맞는지 확인

실제로 장치가 이미 오류 처리 및 편의상 모니터 모드에 있는지 확인하기 위해 pcap을 사용하는 방법이 있는지 궁금합니다. 나는 대답을 찾지 못했다. 어쩌면 여기 누군가가 대답 할 수 있을까요?

답변

0

I가 단말기의 libpcap와 C에서 촬영하고, 그 PCAP 통해 모니터 모드로 설정되는 (pcap_can_set_rfmon 반환 -6)을 지원하지 않는다.

pcap_can_set_rfmon()은 -6을 반환합니다. 그게 PCAP_ERROR_RFMON_NOTSUP이고, pcap_can_set_rfmon()은 반환하지 않아야합니다. 문제가 발생하면 오류 값을 반환하기 만하고, 모니터 모드를 설정할 수 없다고 생각하면 0을 반환하고 가능한 경우에는 1을 반환해야합니다. pcap_set_rfmon()이 -6을 반환한다는 의미입니까? pcap_can_set_rfmon()은 "pcap_set_rfmon()이 작동해야 함"을 의미합니까?

하지만 iw 및 iwconfig를 명령 줄에서 모니터 모드로 설정할 수 있으므로 수동으로 실행 한 다음 프로그램을 실행하십시오.

이러한 명령 중 하나를 루트로 실행 하시겠습니까? 예 : sudo? 장치가 이미 모니터 모드에있는 경우 실제로 확인하는 PCAP있는 방법이 있는지 궁금 해서요

,

제 생각은 pcap_can_set_rfmon()의 결과가 제대로 표시해야한다는 것입니다 pcap_set_rfmon() 여부 성공하고 프로그램은 무차별 모드와 마찬가지로 이미 켜져 있는지 여부에 관계없이 모니터 모드를 요청해야합니다.

불행히도 리눅스와 관련하여 현재 몇 가지 문제가 있습니다. 대부분 mac80211 메커니즘 (네트워크 권한과 더 많은 권한이 필요, mac80211 메커니즘 등)과 mac80211 메커니즘으로 libpcap과 잘 작동하지 않는 non-mac80211 메커니즘이 있습니다 libpcap은 현재 netlink 소켓을 사용하여 직접 수정해야하는 libnl을 사용하기 때문에 현재 libpcap에 사용할 수 없습니다. 이로 인해 pcap_set_rfmon()이 작동 할 수없는 경우 작동하지 않습니다.

+0

아, 죄송 합니다만, 나는 약간 혼란 스럽습니다 ...'pcap_can_set_rfmon()'은 1을 반환하므로 모니터 모드를 사용할 수 있습니다. 'pcap_set_rfmon()'도 성공합니다. 즉, 0을 반환합니다. 그러나'pcap_activate()'는 이미 모니터 모드 일 때뿐만 아니라, -6 일 때 (PCAP_ERROR_RFMON_NOTSUP)를 반환합니다. 그리고 iw가 처음부터 모니터 모드에서 장치를 설정하기 시작한 이유입니다. Linux (Ubuntu 10.10 Server 사용)의 라이브러리 문제일까요? 장치가 이미 모니터 모드에 있는지 확인하는 옵션은 장치를 모니터 모드로 설정하는 것을 잊어 버렸을 때 자신에게 알리는 것이 좋았을 것입니다. – Cravid