Wireshark - Filter

Gast #4109488
Lesenswert?

Hallo,

ein Slave sendet über eine RS485 Verbindung Daten an einen Master. Ein 
uC liest die Datenübertragung mit und sendet die Daten über ein USB 
Kabel bzw. über einen USB COM Port an meinen PC.

Für die Auswertung der Daten habe ich das Programm USBPcap am laufen, 
welches die Daten live an Wireshark weiterleitet.

Wisst ihr, ob es möglich ist eigene Filter oder ähnliches für Wireshark 
zu schreiben, um meine Daten zu filtern ?

Wireshark kann ja erstmal nichts mit dem Übertragungsprotokoll der RS485 
Verbindung anfangen. Wie könnte man das am einfachsten lösen ?
Moderator Persönliche Seite #4109527
Lesenswert?

Du hast zwei Filterebenen:

Die erste ist das capture filter, welches Unterstützung seitens des
Kerneltreibers benötigt, damit die nicht interessierenden Daten gar
nicht erst aus dem Kernel ins Userland befördert werden.  Der
Klassiker dafür ist das Programm tcpdump, welches das BPF (Berkeley
Packet Filter) im Kernel bedient.  Entsprechend äquivalente Dinge
werden auch in nicht-Berkeley-Systemen implementiert.

Meines Wissens hat die USB-Capture-Schnittstelle im Linux keine
derartige Funktionalität.  Wäre manchmal recht praktisch, wenn man
auf diese Weise bspw. die nicht interessierenden Mouse-Events schon
vor dem Capture rauswerfen könnte …

Alle mitgeschnittenen Daten landen dann im Wireshark.  Dort kann man
per display filter nochmal eine Auswahl treffen, was man sich von
den Daten wirklich anzeigen lassen will.  Beim display filter kannst
du alles als Filterkriterium benutzen, was der entsprechende Dissektor
im Wireshark klassifiziert hat.

Durch die Lua-Schnittstelle kannst du eigene Postprozessoren oder
Dissektoren auch zur Laufzeit einfügen.  Das ist zwar nicht so
performant wie eincompilierte, bietet aber viel Flexibilität, um
„mal schnell“ eigene Protokolle analysieren zu lassen.  Ein solcher
Postprozessor oder Dissektor kann sich dabei auch in die normale
Wireshark-Hierarchie einklinken, sodass man dessen Klassifizierung für
ein display filter nutzen kann.  Auch kannst du die Datenelemente für
die Darstellung hierarchisch einsortieren und dann auf- und zuklappen.
Habe sowas mal für ein paar spezielle Protokolle oberhalb von IEEE
802.15.4 geschrieben.  Artet allerdings ziemlich schnell in eine
Fleißübung beim Schreiben des Lua-Scripts aus, auch muss man erstmal
in die Denkweise dieser Wireshark-Interna reinkommen.

Beim µracoli-Projekt findest du entsprechende Beispiele.
Moderator Persönliche Seite #4144467
Lesenswert?

A. W. schrieb:
> wireshark -Xlua_script:p2p.lua

Alternativ im ~/.wireshark/ eine Datei namens init.lua anlegen, die
sowas enthält:
1
dofile("/home/joerg/src/uracoli/Tools/p2p.lua")

Dann wird der Script automatisch mit reingezogen.  (Keine Ahnung,
was das Äquivalent unter nicht-unixoiden Systemen wäre.)

Danke fürs Raussuchen, Axel, ich war damals zu faul dazu. ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren