Может ли фильтр захвата wireshark сканировать два разных шаблона? - PullRequest
0 голосов
/ 28 августа 2018

Мне нужен фильтр захвата, который ищет 4-байтовый идентификатор машины, который может находиться в нескольких местах в полезной нагрузке UDP. В частности,

udp[18:4]==0x76123AA6 or udp[20:4]==0x76123AA6 or udp[25:4]==0x76123AA6

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

Предотвращают ли правила отсутствия цикла интерпретатора BPF этот вид фильтрации множественных совпадений?

1 Ответ

0 голосов
/ 19 сентября 2018

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

Например, этот фильтр может пропустить некоторые пакеты:

udp[18:4]==0x12345678 or udp[24:4]==0x12345678 or udp[20:4]==0x12345678

потому что область действия последнего шаблона (20: 4) находится в данных позже, чем предыдущий шаблон (24: 4).

Чтобы работать должным образом, фильтр должен быть написан так:

udp[18:4]==0x12345678 or udp[20:4]==0x12345678 or udp[24:4]==0x12345678

Я неизвестно правильно выписал фильтр в оригинальном вопросе; мой код имел фильтр в неверном формате.

...