Как добавить анализатор пользовательских протоколов в wireshark? - PullRequest
36 голосов
/ 05 февраля 2011

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

Можно ли это легко сделать?

Ответы [ 3 ]

28 голосов
/ 22 сентября 2012

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

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

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

19 голосов
/ 05 февраля 2011

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

README.developer , по-видимому, «лучшее руководство» для разработки диссектора.Посмотри и реши сам.

5 голосов
/ 31 октября 2016

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

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