Pregunta ¿Cómo puedo agregar un analizador de protocolo personalizado a wireshark?


Tengo un protocolo personalizado que estoy mirando en wireshark. Pensé que sería útil si wireshark pudiera diseccionarlo para que yo no tenga que decodificar el hex. Aunque estoy haciendo esto en mis registros de programa, wireshark captura toda la conversación con información de tiempo para que sea más útil allí.

¿Se puede hacer esto fácilmente?


32
2018-02-05 03:41


origen


Respuestas:


Depende de tu definición de "fácil". Es definitivamente factible: Wireshark tiene un gran soporte para disectores conectables.

README.developer es aparentemente el "mejor manual" para el desarrollo del disector. Echa un vistazo y decide por ti mismo.


14
2018-02-05 03:45



Puede escribir dissectors utilizando la API LUA de Wireshark. De esa forma puedes escribir un disector rápido y sucio sin descargar el código de Wireshark, o incluso un compilador. Se muestra un ejemplo muy simple pero potente en la documentación. Tal disector LUA está perfectamente bien para el uso de depuración, e incluso distribución con su proyecto.

Si tiene la intención de enviar su dissector al repositorio oficial de Wireshark, debe implementarlo en C por razones de rendimiento e integración.

Para usar tu disector, crea un archivo my_dissector.lua e invocar a Wireshark así: wireshark -X lua_script:my_dissector.lua


27
2017-09-22 00:18



Alternativamente, en lugar de escribir su propio disector, hay algunos proyectos que generan un disector de protocolo a partir de una definición o proporcionan una DSL sobre la API:

  • wssdl - Una biblioteca de Lua que define un lenguaje específico de dominio construido sobre Lua con el propósito de definir disectores de protocolo.
  • wsgd - Un disector genérico que analiza una definición de protocolo y la usa para diseccionar mensajes.
  • asn2wrs - Una herramienta que compila una especificación ASN.1 y algo de pegamento C a un disector Wireshark.
  • csjark - Una herramienta para generar disectores Lua a partir de definiciones de estructuras C para usar con Wireshark.

3