Фильтр дисплея Wireshark; побитовое сравнение - PullRequest
1 голос
/ 22 июня 2019

Учитывая файл pcap, я хотел бы разделить пакеты на четыре набора на основе побитового сравнения их ip.src, сравнивая только два конкретных бита в IP. Например, я хотел бы применить это сравнение ко 2-му байту IP и к последней паре битов. Поэтому сравнение будет выглядеть следующим образом:

a = xxxxxxxx & 0x03 //It is 8bits. Hence a includes 000000xx
IF (a == 0x00) THEN set0
IF (a == 0x01) THEN set1
IF (a == 0x02) THEN set2
IF (a == 0x03) THEN set3

К сожалению, доступна только опция bitwise_and. И я не могу сделать побитовую операцию по IP здесь. Есть ли какое-то решение для этого?

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

tshark -r <infile> -Y "<display-filter>" -w <outfile>

1 Ответ

1 голос
/ 22 июня 2019

В wireshark откройте файл PCAP и используйте фильтр отображения следующим образом:

!(ip[12] & 0x01) and !(ip[12] & 0x02)
(ip[12] & 0x01) and !(ip[12] & 0x02)
!(ip[12] & 0x01) and (ip[12] & 0x02)
(ip[12] & 0x01) and (ip[12] & 0x02)

Первый соответствует 0b00 для двух последних битов, 2-й 0b01, 3-й 0b10 и последний соответствует 0b11.

Если вам нужны другие биты, они будут 0x04, 0x08, 0x10, 0x20, 0x40 и 0x80 для старшего значащего бита.«&» - то же, что и bitwise_and.

После сопоставления каждого из них используйте Файл -> Экспортировать указанные пакеты и убедитесь, что опция Отображено отмечена.Это способ разделить файл на 4 набора по вашему желанию.

...