Existe uma API para o Wireshark, para desenvolver programas/plugins que interagem com ele / aprimorar? [fechado]
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.
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!
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ê.
O poço C++ não conseguiu encontrar nenhum.. mas aqui está a documentação wireshark do suporte Python..! http://wiki.wireshark.org/Python
Não consegui encontrar nenhuma informação que indicasse que seria possível no Guia de desenvolvimento . Isso parece indicar "não".
Scapy Na verdade parece interessante, embora ele realmente não faz nada para interagir com wireshark, mas você pode capturar pacotes com ele.
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.