2012년 10월 4일 목요일

패킷파일 시간 간단히 조정하는 방법은?

패킷파일의 시간 조정이 필요한 경우가 있다. 의도적으로 패킷 파일을 수동으로 만들었는데,해당 시간이 잘못 되었거나 다른 컴퓨터에서 덤프한 패킷파일이 분석하려는 곳과의 시간이 다른 경우 이를 조절하기 위해서도 필요할 수 있다.

또는 만들어진 패킷파일을 하나의 파일로 합치는 과정에서 시간을 연속적으로 맞춰주어야 하는 경우가 필요해지는 경우도 있다. 그렇다면 패킷파일의 시간은 어떻게 바꿔줄 수 있을까 ? 패킷파일에 시간이 기록되어 있으므로 수동으로 이를 바꿔주는 방법이 있다.

패킷파일 구조에 대해서 설명한 포스팅을 보면 구조는 다음과 같다:

PCAP 파일을 파헤쳐 보자 - 그 첫번째 이야기


typedef struct pcaprec_hdr_s {
        guint32 ts_sec;         /* timestamp seconds */
        guint32 ts_usec;        /* timestamp microseconds */
        guint32 incl_len;       /* number of octets of packet saved in file */
        guint32 orig_len;       /* actual length of packet */
} pcaprec_hdr_t;


패킷헤더의 ts_sec 구조체에 타임스탬프 시간이 기록된다. 하지만 일일이 변경할 수 없는 노릇이다. 와이어샤크를 설치하면 생기는 editcap 을 통해서 쉽게 변경이 가능해진다.

EditCap 의 -t 옵션을 사용하면 된다.

예를 들어 test.pcap 시간보다 180초 뒤로 시간을 조정하고 싶다면 -와 함께 시간(초) 을 기록해 준다.

# editcap -t -180 test.pcap test2.pcap

반대로 test.pcap 파일의 시간보다 1시간 앞으로 조정하고 싶다면 +를 이용해 3600 초를 더해주면 된다.

# editcap -t +3600 test.pcap test2.pcap

간단하게 시간 조절이 가능하다. 막상 어떻게 조절해야 할까 ? 고민이 되었다면 이렇게 쉽게 풀리는 문제에 허탈해지기 까지도 할 것이다. :-)

댓글 없음:

댓글 쓰기