2011-02-05 15 views
32

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í.¿Cómo puedo agregar un analizador de protocolo personalizado a wireshark?

¿Se puede hacer esto fácilmente?

Respuesta

14

Depende de su 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 de disector. Echa un vistazo y decide por ti mismo.

+2

Gracias, esto es lo que estaba buscando. También descubrí este enlace: http://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html – Matt

26

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 in the documentation. 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 utilizar su disector, crear un archivo my_dissector.lua e invocan Wireshark así: wireshark -X lua_script:my_dissector.lua

3

Alternativamente, en lugar de escribir su propia disección, hay algunos proyectos que generan un disector de protocolo de una definición o proporcionan una conexión DSL en la parte superior de la API:

  • wssdl - una biblioteca Lua que define un lenguaje de dominio específico construido encima de Lua con el propósito de definir disectores de protocolo.
  • wsgd - Disector genérico que analiza una definición de protocolo y la utiliza 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 de Lua a partir de definiciones de C struct para usar con Wireshark.
Cuestiones relacionadas