2010-02-04 3 views
17

Googeln gab mir keine großartigen Ergebnisse. Gibt es irgendeine Art von API für Wireshark, die vom Hauptquellcode weg abstrahiert, so dass wir Programme entwickeln können, die damit interagieren und mit den Daten umgehen, die es bereitstellt?Gibt es eine API für Wireshark, um Programme/Plugins zu entwickeln, die damit interagieren/verbessern?

bearbeiten: Ich schätze die Vorschläge für verschiedene Möglichkeiten, Pakete zu empfangen, aber ich möchte Paket-Injektion in Wireshark implementieren. Sniffing wird ein wichtiger Teil meines Projekts sein, aber ich bin mir nicht sicher, ob die vorgeschlagene Lösung eine Paket-Injektion ermöglicht.

+0

Was meinen Sie mit den Daten, die es zur Verfügung stellt? Ist das der Ausgang der Zukunft? oder die Fähigkeit, Netzwerkdaten zu sammeln? – doron

+0

Die Fähigkeit, Netzwerkdaten zu sammeln, ist nicht nur bei wireshark. Die Schnittstelle von wireshark macht jedoch nützliche Daten und ich habe gehofft, ein Plugin dafür zu entwickeln. Es scheint eine schwere Aufgabe zu sein, den gesamten Quellcode zu sortieren, nur um damit zu beginnen – jim

Antwort

0

Ich konnte keine Informationen finden, die darauf hindeuten, dass dies in der developer's guide möglich ist. Das scheint also "Nein" zu bedeuten.

0

Da es mindestens one gibt, die kommerzielle Produkte macht, die etwas mit wireshark integrieren, muss es möglich sein. Es scheint, dass der unmittelbare Integrationspunkt mit den Daten ist, die er gemäß Wikipedia produziert, Wireshark verwendet libpcap. Eine schnelle Google-Suche zeigt, dass es einige interessante Dinge gibt, obwohl es nicht wirklich etwas mit wireshark zu tun, aber Sie können Pakete mit ihm zu erfassen.

2

tshark bietet eine CLI für einen Großteil der Wireshark-Funktionalität, wenn Sie die Protokollanalysatoren und Datenmanipulationsfunktionen von Wireshark nutzen möchten.

Wenn Sie etwas in Wiresharks source code graben möchten, hat es mehrere C-Bibliotheken, die möglicherweise nützlich sein, insbesondere Abhören und epan. Beispiele für seine Verwendung finden sich in der tshark source. Um die Bibliotheken nutzen zu können, müssen Sie allerdings ein wenig Gerüst errichten.

Wenn Sie Plugins entwickeln möchten, kann this page einige Antworten für Sie enthalten.

6

Ich verwende pypcap, um Pakete zu lesen und dpkt zu analysieren.

Zum Beispiel zu verwenden dpkt Pakete, die von einem gespeicherten pcap zu lesen:

import socket 
import dpkt 
import sys 
pcapReader = dpkt.pcap.Reader(file(sys.argv[1], "rb")) 
for ts, data in pcapReader: 
    ether = dpkt.ethernet.Ethernet(data) 
    if ether.type != dpkt.ethernet.ETH_TYPE_IP: raise 
    ip = ether.data 
    src = socket.inet_ntoa(ip.src) 
    dst = socket.inet_ntoa(ip.dst) 
    print "%s -> %s" % (src, dst) 

Um Frames aus dem Draht mit pypcap zu greifen:

import pcap 
    pc = pcap.pcapObject() 
    dev = sys.argv[1] 
    pc.open_live(dev, 1600, 0, 100) 
    pc.setfilter("udp port 53", 0, 0) 
    while 1: 
     pc.dispatch(1, p.pcap_dispatch) 

Natürlich können die beide zusammen verwendet werden, : (gerippt von pypcaps homepage)

>>> import dpkt, pcap 
>>> pc = pcap.pcap() 
>>> pc.setfilter('icmp') 
>>> for ts, pkt in pc: 
...  print `dpkt.ethernet.Ethernet(pkt)` 

Viel Glück!

0

Wireshark verwendet libpcap, abstrahiert diese Bibliothek weg Plattform Unterschiede in Paket Sniffing und bietet eine format for data files. das ist, wie ich Pakete in wireshark injizieren würde.

2

Probieren Sie die Lua Scripting, die sie in den neueren Versionen von wireshark haben .. Sie können benutzerdefinierte Dissektoren schreiben (für Ihre eigenen Protokolle und so weiter).

http://wiki.wireshark.org/Lua

Verwandte Themen