Подтвердить что ты не робот

Как добавить пользовательский анализатор протоколов в wirehark?

У меня есть собственный протокол, который я просматриваю в wirehark. Я подумал, что было бы полезно, если wirehark может отредактировать это для меня, так что мне не нужно расшифровывать гекс. Хотя я делаю это в своих журналах программ, wirehark фиксирует весь разговор с информацией о времени, поэтому было бы более полезно там.

Легко ли это сделать?

4b9b3361

Ответ 1

Это зависит от вашего определения "легко". Это определенно выполнимо - Wireshark имеет большую поддержку подключаемых диссексуалов.

README.developer, по-видимому, является "лучшим руководством" для разработки диссектора. Взгляните и решите для себя.

Ответ 2

Вы можете писать диссекторы с использованием Wireshark LUA API. Таким образом, вы можете написать быстрый и грязный диссектор без загрузки кода Wireshark или даже компилятора. Очень простой, но мощный пример показан в документации. Такой рассеиватель LUA отлично подходит для отладки и даже распространения с вашим проектом.

Если вы намерены передать своего диссектора официальному репозиторию Wireshark, вам следует, конечно, реализовать его в C по соображениям производительности и интеграции.

Чтобы использовать ваш диссектор, создайте файл my_dissector.lua и вызовите Wireshark следующим образом: wireshark -X lua_script:my_dissector.lua

Ответ 3

В качестве альтернативы вместо написания собственного диссектора есть несколько проектов, которые генерируют анализатор протокола из определения или предоставляют DSL поверх API:

  • wssdl - библиотека Lua, которая определяет язык, специфичный для домена, построенный поверх Lua с целью определения протоколов.
  • wsgd - общий диссектор, который анализирует определение протокола и использует его для анализа сообщений.
  • asn2wrs - инструмент, который компилирует спецификацию ASN.1 и некоторый C-клей для диссектора Wireshark.
  • csjark - инструмент для генерации диссеекторов Lua из определений структуры C для использования с Wireshark.