Структурирование диссектора Wireshark для облегчения фильтрации - PullRequest
0 голосов
/ 15 марта 2019

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

proto_name.command_name.field_name

Некоторые команды имеют похожие поля, как показано в следующемпример

myproto.cmd_update.updateId
myproto.cmd_update_ack.updateId

, где, согласно протоколу, команда update должна быть подтверждена командой update_ack с той же полезной нагрузкой updateId.В идеале я хотел бы создать фильтр wireshark, чтобы я мог видеть все пакеты, относящиеся к полю updateId.Я попытался создать фильтр, подобный

myproto.*.updateId == 0x1234

, но это неверный синтаксис фильтра wireshark.Я не хочу делать фильтр явным, как

myproto.cmd_update.updateId == 0x1234 or myproto.cmd_update_ack.updateId == 0x1234

, потому что в моем реальном протоколе есть еще много команд с похожими / связанными полями.Можно ли использовать синтаксис фильтра?Или, может быть, я должен структурировать аббревиатуры ProtoField моего диссектора по-другому?

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Вы можете попробовать использовать макрос фильтра отображения Wireshark .

0 голосов
/ 20 марта 2019

Кажется, что нет никакого подстановочного синтаксиса для строки фильтра, поэтому я решил эту проблему в самом диссекторе. В дополнение к полям myproto.*.updateId я также добавил еще одно поле под названием myproto.updateId (обратите внимание на отсутствие символа подстановки в середине). Его значение установлено так же, как полное имя поля, что означает, что у меня теперь есть только одно имя поля для поиска. Я также установил это поле как hidden = true, чтобы скрыть его от просмотра.

Это что-то вроде хака, но дает мне то, что я хочу.

...