현재 pcap만을 사용하여 같은 인터페이스에서 스니핑하고 pcap_inject를 사용하여 패킷을 주입 할 수 있습니다.libapcap이 pcap_inject()로 삽입 된 패킷을 캡쳐하지 못하도록 막으려 고합니다.
것은 사용 쉽게 해결 될 수 있습니다 :
- 지속적인 검사 추적/대형 느린 맵/
- 체크섬 추적 - 모든 데이터가 주입 될 때까지, 말, 첫 번째 HTTP 요청;
- 각각의 실제 PHY 패킷
그러나 대한 추가 매개 변수를 전달하는 BPF/libipq/넷 필터를 해킹 :
PCAP는 eth0를/realworld 상황이 /가 "PCAP이 수신 및 소스의 마법을 통해 떨어진다"가까운 청취, pcap은 eth0의 핸들을 통해 패킷을 보내어 라우트 될 수 있습니다. 동일한 라이브러리를 사용하여 동일한 인터페이스에 주입 된 패킷을 캡쳐하지 않는 libpcap의 이론적 기반은 무엇입니까? 예 : 주입 된 패킷이 모든 버클리의 패킷 필터 코드를 통과하지 못합니다.
실제 테스트 미정.
이것은 훌륭하게 간단합니다 :) 당신의 현상금을 가지고 있습니다. 다른 사람이 skbuff 서브 시스템에 대해 다시 언급했는데 지금까지는 안됩니다 .. –
인터페이스에서받은 패킷 * 만 보려는 경우'pcap_setdirection (p, PCAP_D_IN)'을 사용할 수도 있습니다. 그러나 이것은 사용자가 삽입 한 패킷을 볼 수 없다는 것을 의미 할뿐만 아니라, 사용자의 머신이 일반 네트워킹 스택을 통해 전송하는 패킷을 볼 수 없다는 것을 의미합니다. 그러나 필터를 사용하면 마찬가지입니다 이더넷 소스 주소. –