Программно извлечь определенные байты из пакетов iscsi

У меня есть тонна трассировок wireshark, содержащих различное количество пакетов ISCSI. Мне нужно разобрать команду, отправляемую инициатором (в байтах), и записать ее в файл для каждого пакета. Изначально я собирался сделать это вручную, так как его легко просмотреть в приложении wireshark (см. SS ниже), но некоторые из этих трассировок огромны (1-2 Гб), и на их выполнение вручную уйдет вечность.

Я просматривал документацию по tshark и rawshark, но я не уверен, что они могут дать мне то, что мне нужно. Друг предложил использовать libpcap для самостоятельного анализа трассировки, но, насколько я могу судить, мне нужно найти какой-то способ идентифицировать байты, которые мне нужно извлечь из каждого пакета. В идеале я хотел бы использовать что-то, что распознает его для меня (например, диссектор ISCSI wireshark).

Может кто-то указать мне верное направление? Мне нужен какой-то способ проанализировать эти команды из каждого пакета ISCSI, не просматривая необработанные данные пакета и не пытаясь определить, какие байты мне нужны. В качестве примечания: это не всегда последние 16 байтов в пакете, как показано выше, поэтому я не могу просто пройти и взять последние 16 байтов.


person user933919    schedule 08.09.2011    source источник


Ответы (1)


Если вы экспортируете пакеты в PDML/XML (Файл->Экспорт...->Файл->Сохранить как тип PDML), вы получите хороший файл XML со всеми полями протокола. Вы можете использовать это для своих требований или использовать его в качестве индекса для поиска необработанных байтов в каждом пакете.

скриншот пакета iscsi PDML

person rupello    schedule 08.09.2011