Опубликован релиз новой стабильной ветки сетевого анализатора Wireshark 4.0. Напомним, что изначально проект развивался под именем Ethereal, но в 2006 году из-за конфликта с владельцем торговой марки Ethereal, разработчики были вынуждены переименовать проект в Wireshark. Код проекта распространяется под лицензией GPLv2.
Ключевые новшества Wireshark 4.0.0:
- Изменена компоновка элементов в основном окне. Панели
“Дополнительная Информация о пакете” и “Байты пакета” размещены бок о бок под панелью “Список Пакетов”. - Изменено оформление диалоговых окон “Диалог” (Conversation) и “Конечная точка” (Endpoint). В контекстные меню добавлены опции для изменения размера всех столбцов и копирования элементов. Обеспечена возможность открепления и прикрепления вкладок. Добавлена поддержка экспорта в формате JSON. При применении фильтров показаны столбцы, отображающие различия между подпавшими и не подпавшими под фильтры пакетами. Изменена сортировка различных видов данных. К TCP и UDP потокам привязаны идентификаторы и предоставлена возможность фильтрации по ним. Разрешено скрытие диалогов из контекстного меню.
- Улучшен импорт шестнадцатеричных дампов из интерфейса Wireshark и при помощи команды text2pcap. В text2pcap предоставлена возможность записи дампов во всех форматах, поддерживаемых библиотекой wiretap. В text2pcap в качестве формата по умолчанию выставлен pcapng, по аналогии с утилитами editcap, mergecap и tshark. Добавлена поддержка выбора типа инкапсуляции формата вывода. Добавлены новые опции для ведения логов. Предоставлена возможность сохранения в дампах фиктивных заголовков IP, TCP, UDP и SCTP при использовании инкапсуляции Raw IP, Raw IPv4 и Raw IPv6. Добавлена поддержка сканирования входных файлов с использованием регулярных выражений. Обеспечен паритет функциональности утилиты text2pcap и интерфейса “Import from Hex Dump” в Wireshark.
- Значительно повышена производительность определения местоположения с использованием баз MaxMind.
- Внесены изменения в синтаксис правил фильтрации трафика:
- Добавлена возможность выбора определённого слоя стека протоколов, например, при инкапсуляции IP-over-IP для извлечения адресов из внешних и вложенных пакетов можно указывать “ip.addr#1 == 1.1.1.1” и “ip.addr#2 == 1.1.1.2”.
- В условных операторах реализована поддержка кванторов “any” и “all”, например, “all tcp.port > 1024” для проверки всех полей tcp.port.
- Встроен синтаксис для указания ссылок на поля – ${some.field}, реализованный без использования макросов.
- Добавлена возможность использования арифметических операций (“+”, “-“, “*”, “/”, “%”) с числовыми полями, отделяя выражение фигурными скобками.
- Добавлены функции max(), min() и abs().
- Разрешено указание выражений и вызова других функций в качестве аргументов функций.
- Добавлен новый синтаксис для отделения литералов от идентификаторов – начинающееся с точки значение обрабатывается как протокол или поле протокола, а значение в угловых скобках – как литерал.
- Добавлен битовый оператор “&”, например, для изменения отдельный битов можно указывать “frame[0] & 0x0F == 3”.
- Приоритет логического оператора AND теперь выше, чем оператора OR.
- Добавлена поддержка задания констант в двоичном виде, используя префикс “0b”.
- Добавлена возможность использования отрицательных значений индексов для отчёта с конца, например, для проверки последних двух байт в заголовке TCP можно указать “tcp[-2:] == AA:BB”.
- Запрещено разделение элементов множества пробелами, использование пробелов вместо запятой теперь будет приводить не к предупреждению, а к ошибке.
- Добавлены дополнительные escape-последовательности: a, b, f, n, r, t, v.
- Добавлена возможность указания Unicode-символов в формате uNNNN и UNNNNNNNN.
- Добавлен новый оператор сравнения “===” (“all_eq”), срабатывающий только если в выражении “a === b” все значения “a” совпадают c “b”. Также добавлен обратный оператор “!==” (“any_ne”).
- Объявлен устаревшим оператор “~=”, вместо которого следует использовать “!==”.
- Запрещено использовать числа с незакрытой точкой, т.е. значения “.7” и “7.” теперь недопустимы и вместо них следует указывать “0.7” и “7.0”.
- Обработчик регулярных выражений в движке дисплейных фильтров переведён на библиотеку PCRE2 вместо GRegex.
- В строках и шаблонах регулярных выражений реализована корректная обработка нулевых байтов (‘