2016-06-19 2 views
0

У меня есть вопрос. Я хочу изменить значение времени пакета в pcap. когда мы открываем pcap в wirehark, мы видим значение временной метки во втором столбце после серийных номеров пакета. Я хочу изменить временные значения пакетов. Хотя я могу сделать то же самое, но сталкиваюсь с проблемой, как показано ниже.Изменение значения времени пакета в файле pcap вручную

Предположим, что текущее значение времени, указанное для пакета в проводах, составляет 0,960727 Я хочу добавить 100000 к этому штампу времени. Теперь новый штамп для пакета становится 0.1060727, который идеально должен быть 1.060727. Если вы откроете любой файл pcap в wirehark, вы никогда не найдете значение времени более 6 цифр после десятичной точки. Но когда я добавляю это значение, я получаю 7 чисел после десятичной точки.

Может ли anhyone, пожалуйста, дайте мне знать, как я могу сделать значение времени 1.060727 вместо 0.1060727?

Благодарим вас за предложения.

С уважением, Som

+1

Если я добавляю 100000 до 0,960727, он дает 100000.960727 –

+1

Позже в вашем вопросе кажется более того, что вы хотите умножить на 10. –

ответ

0

Это не совсем ясно для меня, что вы пытаетесь сделать, но я собираюсь сделать предположение, что вы пытаетесь вручную изменить метку одного пакета путем редактирования бинарный файл захвата. Предполагая, что формат файла - это файл .pcap, то, полагаю, вы пытаетесь добавить 100000 микросекунд к отметке времени одного конкретного пакета?

Предполагая, что это так, то вам нужно найти ts_sec и ts_usec ценности заголовка пакета и добавить 0x000186a0 микросекунд к текущему значению величины ts_usec, но если это значение превышает 0x000f423f (то есть, это больше или равно 1 секунду), то вы должны добавить 0x00000001 в значение ts_sec и вычесть 0x000f4240 из недавно вычисленного значения ts_usec.

Важно помнить, что файл .pcap написан в формате big-endian или litte-endian. Это определяется так называемым magic number (0xa1b2c3d4, подразумевающим big-endian и 0xd4c3d2a1, подразумевающим мало-endian). Убедитесь, что вы выполняете сложение/вычитание с использованием правильного порядка байтов значения ts_usec и значения ts_sec, если необходимо, и убедитесь, что вы записываете байты обратно в поля ts_usec и ts_sec в ожидаемом порядке байта файла; в противном случае результирующая временная метка будет неправильной.

Если это не то, что вы пытаетесь сделать, пожалуйста, уточните, что именно вы пытаетесь сделать.

Смежные вопросы