Есть ли в Wireshark функция, которую я могу использовать для декодирования пакетов в буфере памяти, а не в файле захвата? - PullRequest
2 голосов
/ 20 июня 2011

Я читал документы, которые поставляются с Wireshark, вместе с анализом источника, чтобы выяснить, есть ли функция или набор функций в Wireshark, которые позволили бы мне передавать буфер, содержащий данные захвата (вместо использования внешнего файла).

Я также задавал этот вопрос в списке Wireshark-dev, но ответов не было.

Насколько я понимаю, вы говорите Wireshark, где искатьдля пакетов (с точки зрения файла, канала или сокета), и он сообщает вам, когда получает пакет из этого потока, так что я чувствую, что нет способа передать указатель на буфер, содержащий данные захвата, иWireshark разбирает все, что может там найти.

Однако я ни в коем случае не эксперт по внутренним деталям Wireshark, поэтому я обращаюсь к SO, чтобы помочь мне найти окончательный ответ.Спасибо.

1 Ответ

1 голос
/ 06 июля 2011

Вы пытались создать новый tvbuff_t как TVBUFF_REAL_DATA и указать область памяти в качестве параметра data?

tvbuff_t *tvb = tvb_new_real_data(mem_buffer_ptr, mem_buf_length, mem_buf_length);
//mem_buffer_ptr is your memory buffer
//mem_buf_length is the number of bytes in your buffer

Wireshark исторически плохо работает с другими приложениями, поэтому вопрос о том, сработает ли это или нет, вызывает сомнения, особенно если вы считаете, что ваши данные могут изменяться во время их анализа. Разве невозможно выписать временный файл?

...