web-dev-qa-db-fra.com

Comment puis-je ajouter un analyseur de protocole personnalisé à Wireshark?

J'ai un protocole personnalisé que je regarde dans Wireshark. Je pensais que ce serait utile si wirehark pouvait le détecter pour moi afin que je n'aie pas à décoder l'hex. Bien que je le fasse dans mes journaux de programme, Wireshark capture toute la conversation avec des informations de synchronisation, ce serait donc plus utile.

Cela peut-il être fait facilement?

36
Matt

Cela dépend de votre définition de "facilement". C'est certainement faisable - Wireshark a un excellent support pour les dissecteurs enfichables.

README.developer est apparemment le "meilleur manuel" pour le développement de dissecteurs. Regarde et décide par toi-même.

19
Matti Virkkunen

Vous pouvez écrire des dissecteurs à l'aide de l'API LUA de Wireshark. De cette façon, vous pouvez écrire un dissecteur rapide et sale sans télécharger le code de Wireshark, ni même un compilateur. Un exemple très simple, mais puissant est montré dans la documentation . Un tel dissecteur LUA convient parfaitement au débogage et même à la distribution avec votre projet.

Si vous avez l'intention de valider votre dissecteur dans le référentiel officiel de Wireshark, vous devez bien sûr l'implémenter en C pour des raisons de performances et d'intégration.

Pour utiliser votre dissecteur, créez un fichier my_dissector.lua et invoquez Wireshark comme ceci: wireshark -X lua_script:my_dissector.lua

28
mic_e

Alternativement, au lieu d'écrire votre propre dissecteur, certains projets génèrent un dissecteur de protocole à partir d'une définition ou fournissent une DSL au-dessus de l'API:

  • wssdl - Une bibliothèque Lua qui définit un langage spécifique au domaine construit sur Lua dans le but de définir des dissecteurs de protocole.
  • wsgd - Un dissecteur générique qui analyse une définition de protocole et l'utilise pour disséquer les messages.
  • asn2wrs - Un outil qui compile une spécification ASN.1 et de la colle C pour un dissecteur Wireshark.
  • csjark - Un outil pour générer des dissecteurs Lua à partir de définitions de structures C à utiliser avec Wireshark.
5
Snaipe