изменить захваченный pcap и записать обратно

Мне нужно прочитать захваченный файл pcap, который содержит некоторый проприетарный дескриптор, добавленный FPGA в начале файла сразу после заголовка MAC, добавить дополнительные 2 байта в дескриптор и записать обратно.

Я пытаюсь реализовать это на C, используя библиотеку libpcap в Linux. Я прав, что мне нужно будет вызвать pcap_dump_open () и pcap_dump () для записи буфера? Кроме того, верно, что мне нужно будет увеличить caplen и 'len' из pcap_pkthdr соответственно (добавить 2) перед записью буфера с помощью pcap_dump?

Заранее спасибо !


person Mark    schedule 12.07.2013    source источник


Ответы (1)


Мне нужно прочитать захваченный файл pcap, который содержит некоторый проприетарный дескриптор, добавленный FPGA в начале файла сразу после заголовка MAC.

Итак, формат пакета следующий:

  • Заголовок MAC
  • частный дескриптор
  • полезная нагрузка

?

добавить в дескриптор 2 дополнительных байта и выполнить обратную запись.

Значит, собственный дескриптор станет на 2 байта длиннее, что приведет к уменьшению полезной нагрузки на два байта?

Я пытаюсь реализовать это на C, используя библиотеку libpcap в Linux. Я прав, что мне нужно будет вызвать pcap_dump_open () и pcap_dump () для записи буфера?

Это, наверное, самый простой способ сделать это.

Кроме того, правда, что мне нужно будет увеличить caplen и 'len' из pcap_pkthdr соответственно (добавить 2) перед записью буфера с помощью pcap_dump?

Если вы добавляете к пакету 2 байта, да, вам нужно увеличить оба поля caplen и len структуры pcap_pkthdr на 2 перед записью пакета.

Если вы не знаете наверняка, что caplen достаточно велик для включения заголовка MAC и всех данных в частном дескрипторе до точки, в которой вы добавляете 2 рассматриваемых байта, вам также следует проверить, что это так, и , если это не так, не изменяйте рассматриваемый пакет и изменяйте только len, а не caplen для этого конкретного пакета.

person Community    schedule 13.07.2013