SharpPcap не может читать файлы .pcapng без дополнительных действийC#

Место общения программистов C#
Ответить
Anonymous
 SharpPcap не может читать файлы .pcapng без дополнительных действий

Сообщение Anonymous »

У меня есть простой код C#, который использует библиотеку SharpPcap для чтения файла .pcapng.

Код: Выделить всё

var pcapFilePath = args[0];

using (var device = new CaptureFileReaderDevice((pcapFilePath)))
{
device.Open();
while (device.GetNextPacket(out var packetCapture) == GetPacketStatus.PacketRead)
{
var packet = packetCapture.GetPacket();
}
}
Проблема в том, что метод GetNextPacket возвращает «ошибку» для большинства файлов pcap, которые я пытаюсь прочитать, если я сначала не выполняю следующие фильтры для файла pcap.
Вот шаги, которые мне нужно выполнить, чтобы библиотека могла читать файлы:
  • Создайте экспорт Wireshark с помощью «sip || rtp"
  • Возьмите этот экспорт и экспортируйте его снова с фильтром «frame.number < «lineCount+1»
Когда я смотрю на экспортированный pcap (особенно разница между экспортом 1 и 2) с помощью шестнадцатеричного плагина Notepad++. Я заметил, что между ними есть разница в один байт. Я не уверен, как мне это отобразить, но я приложу два изображения, где разница может быть. видно.
Это до
Этот Wireshark не работает и имеет фильтр «sip ||rtp»
А это после,
Этот файл pcap работает и имеет фильтр « frame.number < lineCount+1"
Когда я вручную изменяю этот один байт, SharpPcap также может его прочитать.
Что я использую:
Wireshark: 4.2.6 (к сожалению, в настоящее время невозможно обновить, так как он находится в системе клиента)
SharpPcap nuget: 6.3.0
Вопрос:
Я не уверен, проблема ли это в SharpPcap или Wireshark. Ребята, у вас есть идеи, как это исправить?
У меня есть обходной путь с двойным экспортом, но я собираюсь использовать его немного шире. масштабировать там, где этот обходной путь невозможен.

Подробнее здесь: https://stackoverflow.com/questions/793 ... onal-steps
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»