Подтвердить что ты не робот

Есть ли API для Wireshark, разрабатывать программы/плагины, которые взаимодействуют с ним/улучшают его?

Гуглинг не принес мне больших результатов. Существует ли какой-либо API для Wireshark, который абстрагируется от основного исходного кода, чтобы мы могли разрабатывать программы, которые взаимодействуют с ним и обрабатывают данные, которые он предоставляет?

edit: Я ценю предложения по различным способам получения пакетов, но я хочу внедрить пакетную инъекцию в Wireshark. Sniffing станет важной частью моего проекта, однако я не уверен, что предлагаемое решение позволяет вставлять пакеты.

4b9b3361

Ответ 1

Я использую pypcap для чтения пакетов и dpkt для разбора.

Например, чтобы использовать dpkt для чтения пакетов из сохраненного pcap:

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)

Чтобы захватить кадры с провода с помощью pypcap:

    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)

Конечно, эти два могут использоваться вместе: (разорвано с домашней страницы pypcap)

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

Удачи!

Ответ 2

tshark предоставляет CLI для большей части функциональности Wireshark, если вы хотите использовать анализаторы протоколов Wireshark и возможности обработки данных.

Если вы хотите сделать кое-что в Wireshark исходный код, у него есть несколько библиотек C, которые могут быть полезны, особенно wiretap и epan, Примеры его использования можно найти в tshark source. Тем не менее, вы должны установить довольно много лесов для использования библиотек.

Если вы хотите разработать плагины, эта страница может содержать некоторые ответы для вас.

Ответ 3

Попробуйте использовать lua-скрипты, которые у них есть в более новых версиях wirehark.. вы можете писать пользовательские диссекторы (для собственных протоколов и т.д.).

http://wiki.wireshark.org/Lua

Ответ 4

С++ хорошо не удалось найти его, но вот документация по поддержке Python. http://wiki.wireshark.org/Python

Ответ 6

Поскольку существует one, который делает коммерческие продукты, которые несколько интегрируются с wirehark, это должно быть возможно. Кажется, немедленная точка интеграции с данными, которые она производит в соответствии с wikipedia, Wireshark использует libpcap. Быстрый поиск в Google показывает, что существует несколько options

Scapy действительно выглядит интересным, хотя на самом деле он ничего не делает для взаимодействия с wirehark, но вы можете захватывать пакеты с этим.

Ответ 7

wireshark использует libpcap, эта библиотека абстрагирует различия между платформами в обнюхании пакетов и предоставляет формат для файлов данных. что как я буду вводить пакеты в wirehark.