2016-06-19 7 views
0

질문이 있습니다. 나는 pcap에서 패킷의 시간 값을 변경하고 싶다. wireshark에서 pcap을 열면 패킷 일련 번호 다음에 두 번째 열에 타임 스탬프 값이 표시됩니다. 패킷의 시간 값을 변경하고 싶습니다. 비록 내가 같은 일을 할 수 있지만 아래의 문제에 직면 해있다.수동으로 pcap 파일에서 패킷의 시간 값을 변경하십시오.

wireshark에서 패킷의 현재 시간 값이 0.960727이라고 가정 해 봅시다. 100000을이 시간 스탬프에 추가하고 싶습니다. 이제 패킷의 새 스탬프는 0.1060727이되고 이상적으로는 1.060727이어야합니다. wireshark에서 pcap 파일을 열면 절대로 소수점 이하 6 자리 이상의 시간 값을 찾을 수 없습니다. 하지만이 값을 더하면 소수점 이하 7 자리를 얻습니다.

시간 가치를 0.1060727 대신 1.060727으로 어떻게 만들 수 있습니까?

제안 해 주셔서 감사합니다.

감사합니다, 솜

+1

내가 100000에서 0.960727까지 추가하면 100000.960727이됩니다. –

+1

나중에 질문을하면 10을 곱하고 싶습니다. –

답변

0

그것은 당신이 뭘 하려는지 나에게 완전히 분명하지 않다,하지만 난 당신이 수동으로 편집하여 하나의 패킷의 타임 스탬프를 수정하려고하는 추측을거야 이진 캡처 파일. 파일 형식이 .pcap이라면, 특정 패킷의 타임 스탬프에 100000 마이크로 초를 추가하려고합니다.

이런 경우 가정하면, 당신은 패킷 헤더의 ts_sects_usec 값을 찾아 ts_usec 값의 현재 값에 0x000186a0 마이크로 초를 추가해야하지만,이 값이 0x000f423f을 초과하는 경우 (즉, 그것은보다 크거나 같은입니다 1 초), ts_sec 값에 0x00000001을 추가하고 새로 계산 된 ts_usec 값에서 0x000f4240을 뺍니다.

중요한 점은 .pcap 파일이 빅 엔디안 또는 리트 - 엔디안 형식으로 작성되었는지 여부입니다. 이는 소위 magic number (빅 엔디안을 의미하는 및 리틀 엔디안을 의미하는 0xd4c3d2a1)에 의해 결정됩니다. 적절할 경우 ts_usec 값과 ts_sec 값의 올바른 바이트 순서를 사용하여 덧셈/뺄셈을 수행하고 파일의 예상 바이트 순서로 ts_usects_sec 필드에 바이트를 다시 써야합니다. 그렇지 않으면 결과 타임 스탬프가 올바르지 않습니다.

시도하려는 것이 아니라면 무엇을 시도하는지 정확히 설명하십시오.