ver trafico realizar que paquetes interpretar funciona filtros con como capturar captura c++ python api wireshark packet-sniffers

c++ - trafico - wireshark en windows



¿Existe una API para Wireshark para desarrollar programas/complementos que interactúen con ella o la mejoren? (7)

Dado que hay al menos one que fabrica productos comerciales que se integran un poco con Wirehark, 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 varias options

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

Googlear no me dio grandes resultados. ¿Existe algún tipo de API para Wireshark que se aleje del código fuente principal para que podamos desarrollar programas que interactúen con él y manejemos los datos que proporciona?

Edición: agradezco las sugerencias sobre diferentes formas de recibir paquetes, pero quiero implementar la inyección de paquetes en Wireshark. La inhalación será una parte importante de mi proyecto, sin embargo, no estoy seguro de que la solución sugerida permita la inyección de paquetes.


No pude encontrar ninguna información que indique que sea posible en la guía del desarrollador . Así que eso parece indicar "no".


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

http://wiki.wireshark.org/Lua



wireshark usa libpcap, esta biblioteca extrae las diferencias de plataforma en la detección de paquetes y proporciona un formato para archivos de datos . Así es como inyectaría paquetes en Wirehark.


tshark proporciona un CLI a gran parte de la funcionalidad de Wireshark, si está buscando aprovechar los analizadores de protocolo de Wireshark y las capacidades de manipulación de datos.

Si desea investigar un poco el código fuente de Wireshark, tiene varias bibliotecas de C que pueden ser de utilidad, en particular las escuchas telefónicas y epan. Se pueden encontrar ejemplos de su uso en la fuente tshark . Sin embargo, tienes que erigir un poco de andamios para usar las bibliotecas.

Si está buscando desarrollar complementos, esta página puede contener algunas respuestas para usted.


Uso pypcap para leer paquetes y dpkt para analizar.

Por ejemplo, para usar dpkt para leer paquetes de un pcap guardado:

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 del cable 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 pueden usarse juntos: (arrancado de la página de inicio de pypcap)

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

¡Buena suerte!