2010-02-04 11 views
17

Google no me dio grandes resultados. ¿Hay algún tipo de API para Wireshark que se abstraiga del código fuente principal para que podamos desarrollar programas que interactúen con él y se ocupen de los datos que proporciona?¿Hay una API para Wireshark, para desarrollar programas/complementos que interactúen con ella/la mejoren?

edición: Agradezco las sugerencias de diferentes formas de recibir paquetes, pero quiero implementar la inyección de paquetes en Wireshark. El olfateo será una parte importante de mi proyecto, sin embargo, no estoy seguro de que la solución sugerida permita la inyección de paquetes.

+0

¿Qué quiere decir con los datos que proporciona? ¿Es esta la salida fomatted? o la capacidad de recopilar datos de red? – doron

+0

La capacidad de recopilar datos de red no es exclusiva de wireshark. Sin embargo, la interfaz de wireshark lo convierte en información útil y esperaba desarrollar un plugin para ello. Parece una gran tarea para ordenar todo el código fuente solo para comenzar – jim

Respuesta

0

No he podido encontrar ninguna información que indique que sea posible en el developer's guide. Entonces eso parece indicar "no".

0

Dado que hay al menos one que hace que los productos comerciales se integren un poco con wireshark, tiene que ser posible. Parece que el punto de integración inmediata es con los datos que produce según wikipedia, Wireshark usa libpcap. Una búsqueda rápida en Google revela que hay varios options

Scapy en realidad se ve algo interesante, aunque realmente no hace nada para interactuar con wireshark, pero puede capturar paquetes con él.

2

tshark proporciona una CLI para gran parte de la funcionalidad de Wireshark, si está buscando utilizar los analizadores de protocolos de Wireshark y las capacidades de manipulación de datos.

Si desea investigar en el source code de Wireshark, tiene varias bibliotecas de C que pueden ser de utilidad, en particular las escuchas telefónicas y epan. Ejemplos de su uso se pueden encontrar en el tshark source. Sin embargo, tienes que construir bastantes andamios para usar las bibliotecas.

Si está buscando desarrollar complementos, this page puede contener algunas respuestas para usted.

6

Yo uso pypcap para leer paquetes y dpkt para analizar.

Por ejemplo, para utilizar dpkt para leer los paquetes de una PCAP guardada:

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 agarrar marcos fuera el alambre con 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) 

Por supuesto, los dos se puede utilizar junto : (arrancado de la página principal de pypcap)

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

¡Buena suerte!

0

wireshark usa libpcap, esta biblioteca abstrae las diferencias de la plataforma en el paquete de olfateo y proporciona un format for data files. así es como inyectaría paquetes en wireshark.

2

Pruebe las secuencias de comandos lua que tienen en las versiones más nuevas de wireshark .. puede escribir disectores personalizados (para sus propios protocolos, etc.).

http://wiki.wireshark.org/Lua

Cuestiones relacionadas