Verwendung von libwireshark, um die Wireshark-Funktionalität programmatisch zu erhalten

8

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:

  1. Habe ich recht, wenn ich bedenke, dass libwireshark in der Tat verwendet werden kann, um programmatisch irgendwelche Funktionalität zu bekommen, die ich von wireshark / tshark bekommen kann?
  2. Können Sie mich auf irgendwelche Dokumente / Tutorials / Beispiele zu diesem Thema verweisen? Schon ein paar einfache Beispiele können viel bewirken. Kannst du mich dazu bringen, eine Erklärung zu geben, wie ich mich im Drachenbaum-Quellbaum zurechtfinden kann?
Elektito 25.04.2012, 01:15
quelle

4 Antworten

7

Nein.

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).

    
multipleinterfaces 27.04.2012, 18:07
quelle
3

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.

    
Christopher Maynard 06.09.2013 21:08
quelle
2

Ja! Sie können diese Funktionalität mit libwireshark erhalten. Ich habe den ganzen Code geschrieben, um das Gleiche zu tun. es funktioniert einfach großartig.

    
sanny.d 06.11.2012 20:05
quelle
1

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:

  1. tshark pcap file hinzufügen, Filter anwenden, aber wenn Sie ein Feature finden, das dort fehlt, editieren Sie einfach tshark.c im wireshark Quellcode.
  2. capinfos, um Details wie Anzahl der Pakete oder Dateigröße usw. anzugeben (es gibt ein Skript namens capinfos im wireshark-Quellcode, bearbeiten Sie es, wenn Sie weitere Funktionen wünschen)

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.

    
user1355607 25.04.2012 08:01
quelle

Tags und Links