Опубликован релиз новой стабильной ветки сетевого анализатора 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.
- В строках и шаблонах регулярных выражений реализована корректная обработка нулевых байтов (‘