2011-02-05 17 views
32

Ho un protocollo personalizzato che sto guardando in wireshark. Ho pensato che sarebbe stato utile se wireshark potesse scartarlo per me in modo da non dover decodificare l'esagono. Anche se lo sto facendo nei log del mio programma, wireshark cattura l'intera conversazione con le informazioni di timing, quindi sarebbe più utile lì.Come posso aggiungere un analizzatore di protocollo personalizzato a wireshark?

si può fare facilmente?

risposta

14

Dipende dalla definizione di "facilmente". È sicuramente fattibile - Wireshark ha un grande supporto per i dissettori collegabili.

README.developer è apparentemente il "miglior manuale" per lo sviluppo dissettore. Dai un'occhiata e decidi tu stesso.

+2

Grazie di questo è quello che cercavo. Ho anche scoperto questo link: http://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html – Matt

26

È possibile scrivere dissettori utilizzando API LUA di Wireshark. In questo modo puoi scrivere un dissettore veloce e sporco senza scaricare il codice di Wireshark, o persino un compilatore. Viene mostrato un esempio molto semplice ma potente in the documentation. Un tale dissettore LUA è perfettamente adatto per il debugging e persino per la distribuzione con il tuo progetto.

Se si intende inviare il proprio dissettore al repository ufficiale di Wireshark, è necessario implementarlo in C per motivi di prestazioni e integrazione.

Per utilizzare il dissettore, creare un file my_dissector.lua e invocare Wireshark come questo: wireshark -X lua_script:my_dissector.lua

3

In alternativa, invece di scrivere il proprio dissettore, ci sono alcuni progetti che generano un dissettore protocollo da una definizione o forniscono un DSL superiore della API:

  • wssdl - una libreria Lua che definisce un linguaggio specifico del dominio costruito in cima Lua allo scopo di definire dissettori protocollo.
  • wsgd - Un dissettore generica che analizza una definizione di protocollo e lo utilizza per sezionare i messaggi.
  • asn2wrs - Uno strumento che compila una specifica ASN.1 e un po 'di colla C ad un dissettore Wireshark.
  • csjark - Uno strumento per generare i dissettori Lua dalle definizioni di struct C da utilizzare con Wireshark.
Problemi correlati