Existe uma API para o Wireshark, para desenvolver programas/plugins que interagem com ele / aprimorar? [fechado]

Pesquisar no Google não me deu grandes resultados. Existe algum tipo de API para o Wireshark que abstrai do código fonte principal para que possamos desenvolver programas que interajam com ele e lidam com os dados que ele fornece?

Edit: agradeço as sugestões para diferentes formas de receber pacotes, mas quero implementar a injecção de pacotes na Wireshark. Sniffing será uma parte importante do meu projeto, no entanto, eu não tenho certeza de que a solução sugerida permite para pacote injeccao.

Author: jim, 2010-02-04

7 answers

Eu uso pypcap para ler pacotes e dpkt para analisar.

Por exemplo, para usar o dpkt para ler pacotes de um pcap gravado:

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)

Para tirar molduras do fio com 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)

Claro que os dois podem ser usados em conjunto: (extraído da página inicial do pypcap)

>>> import dpkt, pcap
>>> pc = pcap.pcap()
>>> pc.setfilter('icmp')
>>> for ts, pkt in pc:
...     print `dpkt.ethernet.Ethernet(pkt)`
Boa sorte!
 6
Author: J.J., 2010-02-04 12:42:39

O Tshark fornece um CLI a grande parte da funcionalidade do Wireshark, se estiver a tentar aproveitar os analisadores de protocolo e as capacidades de manipulação de dados do Wireshark.

Se você quisesse investigar o código fonte do Wireshark, ele tem várias bibliotecas C que podem ser úteis, particularmente a escuta e o epan. Exemplos de sua utilização podem ser encontrados na fonte tshark . No entanto, é preciso montar um pouco de andaime para usar as bibliotecas.

Se você está procurando desenvolver plugins, esta página pode conter algumas respostas para você.

 2
Author: chradcliffe, 2010-02-04 12:16:53
Tenta o guião da lua que eles têm nas versões mais recentes da wireshark.. você pode escrever dissetores personalizados (para seus próprios protocolos e assim por diante).

Http://wiki.wireshark.org/Lua

 2
Author: Jon, 2010-07-23 22:05:54

O poço C++ não conseguiu encontrar nenhum.. mas aqui está a documentação wireshark do suporte Python..! http://wiki.wireshark.org/Python

 2
Author: brucewayne, 2011-10-16 12:39:03

Não consegui encontrar nenhuma informação que indicasse que seria possível no Guia de desenvolvimento . Isso parece indicar "não".

 0
Author: unwind, 2010-02-04 10:48:54
Uma vez que há pelo menos um que faz com que os produtos comerciais se integrem um pouco com a wireshark , tem de ser possível. Parece que o ponto de integração imediata é com os dados que produz de acordo com a wikipedia, Wireshark usa libpcap. Uma pesquisa rápida no google revela que existem várias opções

Scapy Na verdade parece interessante, embora ele realmente não faz nada para interagir com wireshark, mas você pode capturar pacotes com ele.

 0
Author: Tom Willis, 2010-02-04 12:03:57

O Wireshark usa a libpcap, esta biblioteca abstrai as diferenças de plataforma no sniffing de pacotes e fornece um formato para os ficheiros de dados . era assim que injectava pacotes em wireshark.

 0
Author: just somebody, 2010-02-05 17:33:41