Фильтр отображения wireshark для определенного байта в необработанном пакете Ethernet

Я пытаюсь отфильтровать пакеты, в которых 15-й байт (т. е. 1-й байт полезной нагрузки после 14-байтового заголовка) представляет собой определенное значение, либо 0x00, либо 0x01.

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

Вот что я пробовал:

llc && (frame[14:1] == 00 || frame[14:1] == 01)

это становится зеленым, поэтому я уверен, что синтаксис правильный. Он отображает только пакеты, где протокол LLC, но также пропускает пакеты, где 15-й байт равен 0x02, чего я хочу избежать

Любые идеи, как я могу успешно нацелиться на значение 15-го байта или, другими словами, на значение 1-го байта полезной нагрузки?

пример пакета (скопирован из wirehark), где 15-й байт равен 0x00:

0000   01 01 01 01 01 01 02 02 02 02 02 02 00 0e 00 05  ................
0010   00 00 00 05 00 00 00 00 00 00 00 01              ............

пример пакета, где 15-й байт равен 0x01:

0000   02 02 02 02 02 02 01 01 01 01 01 01 00 0a 01 05  ................
0010   00 00 00 0d 00 00 00 f1 00 00 00 00 00 00 00 00  ................
0020   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0030   00 00 00 00 00 00 00 00 00 00 00 00              ............

Я бы хотел, чтобы wireshark отображал оба этих пакета

Существует 3-й тип пакета, где 15-й байт равен 0x02:

0000   02 02 02 02 02 02 01 01 01 01 01 01 00 39 02 ec  .............9..
0010   41 61 02 a2 21 44 2b 0c 00 02 00 1c 0c 02 00 00  Aa..!D+.........
0020   00 00 00 00 00 00 00 00 00 00 00 ee 91 20 04 46  ............. .F
0030   22 44 2b cc 01 03 00 00 00 00 00 00 00 00 00 00  "D+.............
0040   00 00 00 00 00 00 00                             .......

Этот тип пакетов я хотел бы исключить с помощью фильтра. Мой фильтр выше по-прежнему отображает эти 0x02 пакетов.


person bph    schedule 09.10.2017    source источник
comment
Можете ли вы выложить файл захвата где-нибудь? (облачная акула, дропбокс, ...)   -  person Christopher Maynard    schedule 18.10.2017
comment
это обновление помогает?   -  person bph    schedule 18.10.2017
comment
Я использовал text2pcap, чтобы преобразовать эти 3 пакета в файл pcap, а затем применил ваш фильтр. Это сработало именно так, как ожидалось, поэтому я не могу воспроизвести вашу проблему. Для справки: я использую Wireshark 2.4.0 в 64-битной Windows.   -  person Christopher Maynard    schedule 18.10.2017
comment
спасибо - это само по себе очень полезный результат, указывает на то, что мне нужно вернуться и перепроверить   -  person bph    schedule 18.10.2017
comment
есть ли термин wirehark, отличный от «кадра», который обходит заголовок и переходит прямо к полезной нагрузке?   -  person bph    schedule 18.10.2017
comment
Может быть, вы ищете (llc.dsap == 0 || llc.dsap == 1) или, проще говоря, llc.dsap.sap == 0?   -  person Christopher Maynard    schedule 18.10.2017


Ответы (1)


Вот запрошенный фильтр отображения wireshark:

llc and (frame[14] == 0 or frame[14] == 1)

Wireshark считает первый байт в каждом кадре байтом 0, поэтому 15-й байт равен frame[14]. Вам не нужно двоеточие для одного байта (как описано в документации ). and и && эквивалентны. or и || также эквивалентны.

person amath    schedule 03.05.2018