Мне нужно прочитать захваченный файл 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