2014-09-09 13 views
0

나는 프로토콜을 구현하는 C 코드를 작성했으며, 이제이 프로토콜의 패킷으로부터 일부 데이터 필드를 제거하려고합니다. 나는 .pcap 파일을 생성했지만 패킷의 데이터 섹션에는 정의 된 필드가 없다. .. 그러나 어떤 위치 비트를 내가 알고 있는지 알 수있다. tshark를 사용하여 구문 분석하고 선택한 바이트 범위를 가져 와서 만들고 싶다. csv 및 나중에 해당 CSV 파일을 분석합니다.pcap 파일에서 바이트 범위 추출하기

예 : AAA 데이터에는 정의 된 fileds가 있으며 -e를 사용하여 해당 fileds의 바이트를 추출 할 수 있습니다.

데이터 섹션에 758 바이트가 있고 적용되지 않은 현재 패킷 구조. 특정 바이트 범위를 추출 할 수있는 방법이 있습니까 ??

답변

0

내가 정말로하고 싶은 것이 명확하지 않지만, 정확하게 추측 할 경우 데이터 섹션에서 범위 오프셋 [100,149]을 추출하는 예가 있습니다 (즉, 데이터 섹션의 101 번째 바이트부터 시작하여 50 바이트). 데이터 섹션, 패킷 시작 아님)

$ tshark -r input.pcap -R "frame.number == 1" -T fields -e data | tr -d '\n' | \ 
perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' | dd bs=1 skip=100 count=50 of=output.raw