2017-12-02 32 views
0

bpf 구문을 사용하여 pcap 파일을 필터링하려고합니다. GET 요청에 특정 단어가 들어있는 HTTP의 GET 요청 만 반환해야합니다. 그렇게 할 수 있습니까? HTTP에서 GET 요청을 얻을 수 있었지만 패킷의 데이터로 필터링하는 방법을 찾을 수 없습니다.BPF를 사용하여 데이터로 필터링하는 방법

+0

"btf"는 BPF를 의미합니까? 그것은 BPF를 사용하여 어떤 종류의 재미도 없을 것입니다. 디스플레이 필터를 사용할 수없는 이유가 있습니까? –

+0

@DavidHoelzer 그렇습니다. BPF만을 의미하는 이유는 BPF 만 사용하여 과제를 수행했기 때문입니다. – Netanel

+0

문자열이 항상 같은 위치에 있다는 것을 알지 못하면 엄청나게 고통 스러울 것입니다. 예를 들어 보겠습니다. –

답변

0

Wireshark 또는 TCPDump에 사용중인 이상한 프로토콜에 대한 프로토콜 파서가없는 경우 까다 롭고 어렵고 실용적이지 않습니다.

다음과 같이 BPF는 것이다 사용하여 GET 요청을 잡아하는 방법 :

dst port 80 and tcp[(tcp[12]>>2):4]=0x47455420 

는이 방법으로 수행해야하는 이유는 당신이로, TCP 옵션을 변경의 가능성을 설명해야한다는 것입니다 결과, 데이터 오프셋이 시작되는 위치를 변경합니다. 데이터가 시작되는 위치를 알아 내고 "GET"문자열의 처음 네 바이트를 검사합니다.

(tcp[12]>>4)*4 

나이 :

(tcp[12]&0xf0 >> 2) 

또한 나는 TCP 데이터에 대한 바로 가기를 복용하고 있습니다 있습니다이 작업을 수행하는 더 좋은 연습이 될 것 바이트 (12)의 오프셋 값을 이는 예약 된 하위 니블이 인 에이블되는 임의의 비트를 설명 할 것이다.