2012년 8월 24일 금요일

여러개의 패킷파일 하나로 합치기 (using mergecap)

블로그에서 패킷분할과 관련해서는 몇 가지 포스팅 된 글이 있는데, 여러 패킷을 한개로 합치는 것은 지금 찾아보니 소개한 적이 없었다. 이미 와이어샤크에 기능이 포함되어 있었는데 말이다.

여러개의 패킷을 한개로 합치는 방법은 와이어샤크에서 제공해주는 'mergecap' 을 이용하는 것이 편리하다. 기본 사용방법은 다음과 같다:


Usage: mergecap [options] -w <outfile>|- <infile> ...

Output:
  -a                concatenate rather than merge files.
                    default is to merge based on frame timestamps.
  -s <snaplen>      truncate packets to <snaplen> bytes of data.
  -w <outfile>|-    set the output filename to <outfile> or '-' for stdout.
  -F <capture type> set the output file type; default is libpcap.
                    an empty "-F" option will list the file types.
  -T <encap type>   set the output file encapsulation type;
                    default is the same as the first input file.
                    an empty "-T" option will list the encapsulation types.

Miscellaneous:
  -h                display this help and exit.
  -v                verbose output.
mergecap 을 이용해 -w 로 합쳐질 파일 이름을 지정해 주고, 그 뒤로 합칠 패킷파일들을 나열해 주면 된다. -v 옵션은 추가적인 동작 정보를 제공해 준다.

$ mergecap -v -w output.pcap input1.pcap input2.pcap


패킷 파일 이어붙이기


기본적으로 패킷파일들이 하나로 합쳐질 때는 패킷 프레임의 시간에 기준하여 합쳐지게 된다. 이러한 방법이 아니라 끝에다 이어붙이기를 할 수도 있는데, -a 옵션을 사용하면 된다. 첫번째 입력으로 주어진 파일 뒤쪽에 두번째 주어진 패킷파일이 이어진다.

$ mergecap -v -w output.pcap input1.pcap input2.pcap -a 


특정 길이로 한정해서 합치기


패킷 덤프를 할 경우에도 snaplen 길이를 정의하여 패킷의 얼마만큼을 볼 것인지 정의할 수 있었다. 합치는 경우에도 -s 로 snaplen 을 정의하여 지정된 바이트 만큼으로 패킷을 잘라낸다.

$ mergecap -v -w output.pcap input1.pcap input2.pcap -s 1000

캡슐화 타입 정의하기


합쳐질 패킷파일의 캡슐화 타입을 정의할 수 있다. -T 옵션 다음에 정의해 주면 되고, 인자값 없이 -T 만 사용하면 캡슐화로 사용가능한 목록을 살펴볼 수 있다. 기본적으로는 처음 입력으로 들어오는 패킷파일의 타입을 사용하게 된다.

$ mergecap -v -w output.pcap -T ether input1.pcap input2.pcap 

캡슐화에 대해 궁금한 분들은 다음 포스팅을 참고해 보기 바란다.

"패킷을 보다 자주 접하는 캡슐화(Encapsulation)는 무엇이지?"
http://www.packetinside.com/2011/03/encapsulation.html


와이어샤크에서 제공해주는 mergecap 파일외 파이썬으로 제작된 FLAG(Forensic and Log Analysis GUI)에서 제공해주는 mergecap.py 파일을 이용해 볼 수도 있다.

http://code.google.com/p/pyflag/source/browse/utilities/mergecap.py

댓글 없음:

댓글 쓰기