Окно настройки параметров захвата представлен на рис. 2
Рисунок 2. Окно настройки параметров захвата
− Interface — сетевой адаптер/
− Buffer size — размер буфера захвата (по умолчанию 1 Мб)/
− Capture packets in promiscuous mode — использование режима беспорядочного захвата.
− Limit each packet to — запись только нескольких первых байт (определяется установленным значением параметра) каждого кадра.
− Capture Filter — фильтр захвата.
− Capture File(s) — файл захвата.
− Stop Capture — условия автоматического завершения захвата.
− Display Options — отображение пакетов в реальном времени и автоматический скроллинг окна информации.
− Name Resolution — разрешение имен на физическом, сетевом и транспортном уровнях.
Общий вид окна приложения представлен на рисунке 3.
Рисунок 3. Общий вид приложения Wireshark
Пользовательский интерфейс программы содержит следующие компоненты:
− меню команд и панель инструментов;
− фильтр отображения пакетов;
− список пакетов в буфере;
− панель отображения декодера протоколов;
− панель отображения пакета в шестнадцатеричном коде и символах ASCII.
Панель со списком пакетов построчно отображает характеристики того или иного пакета (номер по порядку в буфере, время захвата, адреса источника и получателя, тип протокола и общая информация о нем). Перемещение по списку осуществляется с помощью мыши или клавиатуры, причем информация на двух других панелях обновляется автоматически. На панели декодера протоколов, нажимая указателем мыши на символы «+» или «–», можно отображать информацию о полях заголовков протоколов с требуемым уровнем детализации. При выборе того или иного служебного поля в заголовке оно автоматически выделяется на нижней панели, где отображается текущий пакет в шестнадцатеричном виде.
С помощью фильтра отображения можно быстро убрать «мусор». Выражение фильтрации может представлять собой просто название протокола, который присутствует в пакете на том или ином уровне вложенности. Например: arp — для отображения пакетов протокола ARP, tcp — для отображения пакетов, в которых присутствует заголовок протокола TCP.
Более сложные выражения фильтрации строятся с помощью зарезервированных слов, обычно представляющих собой названия полей заголовков того или иного протокола, знака операции сравнения и конкретного значения в шестнадцатеричном или десятичном виде.
Например, выражение с операцией сравнения «Равно» записывается с помощью двойного знака равенства «==» (допустимо использование «eq»). Другие операции сравнения записываются с помощью следующих операторов:
a. != (ne)— не равно, пример: eth.type != 0x0800;
b. > (gt)— больше, пример: tcp.srcport > 1023;
c. < (lt)— меньше, пример: frame.pkt_len lt 60;
d. >= (ge)— больше или равно, пример: frame.pkt_len ge 60;
e. <= (le)— меньше или равно, пример: tcp.dstport <=1023.
Значение любого выражения фильтрации возвращает переменную булевского типа. Таким образом, выражение udp означает присутствие в кадре заголовка протокола UDP, по аналогии с этим выражение tcp.flags.syn означает присутствие в заголовке протокола TCP бита синхронизации сессии в установленном состоянии (значение 1). К любому из выражений можно применить операцию логического отрицания, заключив его в скобки и поставив перед ним знак отрицания «NOT» или «!». Например, выражение !(ip.addr == 10.0.0.1) означает, что из буфера отображения необходимо убрать все пакеты, в которых встречается IP-адрес 10.0.0.1.
При необходимости создания сложного выражения фильтрации в меню «Apply as Filter» (рис.4) выбирайте команды, начинающиеся с многоточия, при этом новое выражение будет добавлено к результирующему выражению фильтрации.
Рисунок 4. Контекстное меню создания фильтра
Поиск кадров в буфере, удовлетворяющих тем или иным критериям, осуществляется с помощью команды меню Edit → Find Packet. Диалоговое окно определения критериев поиска пакетов изображено на рис.5.
Рисунок 5. Диалоговое окно определения критериев поиска кадров
Критерии поиска можно определять в виде выражения фильтрации (Display filter), шаблона в шестнадцатеричном виде (Hex value) и текстовой строки (String) в кодировке ASCII и (или) Unicode. В первом случае можно использовать все допустимые выражения фильтрации и их логические комбинации. Во втором случае указывается шаблон для поиска в шестнадцатеричном коде. Поиск в строке может осуществляться в области общей информации о пакете (Packet list), в панели декодера протоколов (Packet details) и непосредственно в самом пакете (Packet bytes). Поиск может производиться вверх или вниз по списку пакетов (Direction).