Wenn ich ein Skript schreiben möchte, das die Funktionalität von Wireshark verwendet, benutze ich tshark. Ich habe gehört, dass es auch einen libwireshark gibt, der benutzt werden kann, wenn man ein Programm in C schreibt, aber für das Leben von mir kann ich keine irgendwelche Dokumentation dafür finden! Ich habe versucht, den Bibliothekscode im Wireshark-Quellbaum zu isolieren, aber es scheint, dass der Code nicht sehr gut organisiert ist und eine solche Isolation nicht existiert (entweder, oder ich habe es nicht gefunden).
Ich habe zwei Fragen:
libwireshark ist nicht dazu gedacht, außerhalb von Wireshark selbst verwendet zu werden, und der Versuch, dies zu tun, wird Sie allein lassen um herauszufinden, was falsch läuft. libwireshark ist eigentlich ein Teil des Paketanalysierteils von Wireshark (genannt epan für E thereal pa cket ein alyzer), Sie können im Entwicklerhandbuch sehen nicht alle von Wireshark. Was libwireshark tatsächlich bietet, ist die Hauptschnittstelle für alle integrierten Protokoll-Dissektoren, Hooks für die Plugin-Dissektoren und die vollständige Paket-Dissektions-API. Es beruht auf den Mechanismen, die vom Rest von Wireshark für Dinge eingerichtet wurden, die nicht direkt Paketseparationswerkzeuge sind, sondern es den Dissektoren ermöglichen, ihre Arbeit zu verrichten (z. B. Zuteilen von Speicherabschnitten, Handhabung komprimierter oder verschlüsselter Daten usw.) >
Schreiben Sie stattdessen einen Dissektor.
Wenn Ihr Projekt den Netzwerkverkehr in irgendeiner Weise strikt analysieren soll, sollten Sie vielleicht einen Dissektor für Wireshark schreiben, anstatt die vielen Räder neu zu erfinden, die Wireshark für Sie bereitstellen könnte. Wenn Sie etwas Komplexeres tun müssen, wie Netzwerkverkehr überwachen und dann andere Aufgaben starten oder Daten selbst senden, sind Sie wahrscheinlich besser dran, tshark
und Shell-Skripte zu verwenden, wie Sie es bereits sind (beachten Sie, dass Sie nicht zulassen sollten tshark
läuft in jedem Fall extrem lange).
Wenn Sie wirklich direkt mit libwireshark arbeiten möchten, müssen Sie alle seine Abhängigkeiten irgendwie auflösen (vorzugsweise indem Sie sie zu einer eigenständigen Bibliothek machen) und für die getroffenen Annahmen sorgen über Wireshark (oder tshark) läuft gerade. Der Code für libwireshark ist gut organisiert, er besteht nur aus dem gesamten epan-Verzeichnis unter dem Wireshark-Quellbaum und ist nach den Konventionen aufgebaut, die zu Zeiten von Wireshark als Ethereal festgelegt wurden. Die Dokumentation für jede Funktion wird in den Header-Dateien bereitgestellt, wenn sie öffentlich sichtbar ist, und in jedem Fall tiefer in den Quelldateien. Bedenken Sie auch, dass README.developer Mit der Version des Quellcodes, die Sie haben, ist es ein guter Ort, um ein paar Hinweise zu erhalten (und Sie können auch alle README. * - Dateien lesen, wenn Sie diese Aufgabe übernehmen wollen).
Es ist sicherlich möglich, libwireshark außerhalb von Wireshark selbst zu verwenden, da netexpect genau das tut. Sie könnten versuchen, auf der Website des Projekts nach Informationen zu suchen, oder Sie könnten versuchen, Eloy Paris, den Autor von netexpect, für weitere Hilfe / Hinweise zu kontaktieren.
Auch ich habe Skripte für die Wirelshark-Funktionalität als Teil meines Projekts zur Automatisierung einiger Dinge geschrieben.
Das Beste, was Sie tun können, ist die Verwendung von wireshark Addons wie folgt:
Bitte beachten Sie, dass Add-ons nur unter Linux funktionieren und capinfos in Shell-Skripten geschrieben ist. Sie können also dieselben Shell-Skripte verwenden und neue Skripte für bessere Funktionalität erstellen.
Selbst ich hatte anfangs viele Probleme, da es keine richtige Dokumentation gibt. Aber sobald du anfängst, geht es glatt.
Tags und Links wireshark