WINPCAP EL MANUAL DEL USUARIO WINPCAP
Documentacin WinPcap
4.1.2
autores:
El equipo de WinPcap
pgina principal:
http://www.winpcap.org
mdulos
WinPcap el manual del usuario WinPcap
o definiciones
funciones exportadas
Sintaxis de las expresiones de filtrado
El uso de WinPcap en sus programas
WinPcap tutorial: una gua paso a paso para el uso de WinPcap
La obtencin de la lista de dispositivos
La obtencin de informacin avanzada acerca de los dispositivos
instalados
La apertura de un adaptador y la captura de los paquetes
La captura de los paquetes sin la devolucin de llamada
Filtrar el trfico
Interpretacin de los paquetes
Manejo de archivos de volcado fuera de lnea
el envo de paquetes
La recopilacin de estadsticas sobre el trfico de red
internos WinPcap
NPF manual de funcionamiento interno del controlador
NPF estructuras y definiciones
funciones NPF
Packet.dll - Paquete de API del controlador
Cmo compilar WinPcap
Captura remota
Estructuras y definiciones exportadas
Funciones exportadas. Para una referencia de las funciones que soportan la
captura remota, consulte la seccin "Extensiones especficas de Windows" en la
WinPcap funciones exportadas seccin.
Estructuras internas y definiciones
Introduccin
Este manual describe la interfaz de programacin y el cdigo fuente de WinPcap. Se proporciona
una descripcin detallada de las funciones y estructuras exportados a los programadores, junto
con la documentacin completa de las partes internas WinPcap. Varios tutoriales y ejemplos se
proporcionan tambin.
Puede seguir los enlaces en la parte superior de esta pgina o utilice el control de rbol a la
izquierda para llegar a las secciones de inters.
Esta documentacin se ha creado usando el sistema de documentacin Doxygen, que se pueden
encontrar en http://www.doxygen.org.
Qu es WinPcap
WinPcap es una biblioteca de cdigo abierto para la captura de paquetes y anlisis de redes para
las plataformas Win32.
La mayora de las aplicaciones de redes acceden a la red a travs de primitivas del sistema
operativo ampliamente usados, tales como tomas. Es fcil acceder a datos en la red con este
enfoque ya que el sistema operativo hace frente a los detalles de nivel bajo (de manipulacin de
protocolo, reensamblaje de paquetes, etc.) y proporciona una interfaz familiar que es similar a la
utilizada para leer y escribir archivos.
A veces, sin embargo, el "camino fcil" no es hasta la tarea, ya que algunas aplicaciones
requieren acceso directo a los paquetes en la red. Es decir, que necesitan el acceso a los datos
"en bruto" en la red sin la interposicin de procesamiento de protocolo por el sistema operativo.
El propsito de WinPcap es dar a este tipo de acceso a las aplicaciones Win32; que proporciona
facilidades para:
capturar paquetes primas, tanto las destinadas a la mquina donde se est ejecutando y
los intercambiados por otros anfitriones (en medios compartidos)
filtrar los paquetes de acuerdo con las reglas especificadas por el usuario antes de
enviarlos a la aplicacin
transmitir paquetes de primas a la red
recopilar informacin estadstica sobre el trfico de red
Este conjunto de capacidades se obtiene por medio de un controlador de dispositivo, que se
instala dentro de la porcin de red de ncleos de Win32, adems de un par de DLL.
Todas estas caractersticas se exportan a travs de una interfaz de programacin de gran
alcance, fcilmente explotable por las aplicaciones y disponible en diferentes sistemas
operativos. El objetivo principal de este manual es documentar esta interfaz, con la ayuda de
varios ejemplos. Si usted est interesado en comenzar su exploracin de inmediato se puede ir
directamente al manual del usuario WinPcap .
Qu clase de programas de utilizar WinPcap
La interfaz de programacin de WinPcap puede ser utilizado por muchos tipos de herramientas
de red para el anlisis, resolucin de problemas, la seguridad y la vigilancia. En particular, las
herramientas clsicas que dependen de WinPcap son:
analizadores de red y protocolo
monitores de red
registradores de trfico
generadores de trfico
puentes a nivel de usuario y routers
Los sistemas de deteccin de intrusiones de red (NIDS)
escneres de red
herramientas de seguridad
WinPcap lo que no puede hacer
WinPcap recibe y enva los paquetes de forma independiente de los protocolos de acogida, como
TCP-IP. Esto significa que no es capaz de bloquear, filtrar o manipular el trfico generado por
otros programas en la misma mquina: simplemente "huele" los paquetes que transitan en el
cable. Por lo tanto, no proporciona el soporte adecuado para aplicaciones como conformadores
de trfico QoS, programadores y los cortafuegos personales.
Propsito de este manual
El propsito de este manual es proporcionar una manera completa y fcil de navegar por la
documentacin de la arquitectura WinPcap.Se encuentran dos secciones principales: el manual
del usuario WinPcap y WinPcap Internos .
El primero de ellos puede ser utilizado por un programador que necesita explotar WinPcap desde
una aplicacin: contiene toda la informacin acerca de las funciones y estructuras de datos
exportados por la API de WinPcap, un manual que explica cmo escribir filtros de paquetes y una
pgina que explica cmo incluirlo en una aplicacin. Un tutorial con varios ejemplos de cdigo es
siempre as; que puede ser utilizado para aprender los conceptos bsicos de la API de WinPcap
utilizando un enfoque paso a paso, sino que tambin ofrece fragmentos de cdigo que
demuestran caractersticas avanzadas.
La segunda seccin est dirigida a los desarrolladores y mantenedores WinPcap, o para las
personas que tienen curiosidad acerca de cmo funciona este sistema: se ofrece una descripcin
general de la arquitectura WinPcap y explica cmo funciona. Adems, se documenta la
estructura de controlador de dispositivo completo, el cdigo fuente, la interfaz packet.dll y la API
de bajo nivel WinPcap.Si usted quiere entender lo que sucede dentro WinPcap o si necesita
extenderlo, esta es la seccin que se desea leer.
Documentacin adicional
Para adicional y actualizada la documentacin, le sugerimos que nos fijamos
en http://www.winpcap.org/docs/
En particular, si usted est interesado en la estructura y el funcionamiento interno de WinPcap,
se recomienda leer los siguientes documentos:
Fulvio Risso, Loris Degioanni, Una Arquitectura de Alto Rendimiento Anlisis de
Redes , Actas de la 6 IEEE Simposio de Informtica y Comunicaciones (ISCC 2001) ,
Hammamet, Tnez, julio de 2001
Loris Degioanni, Mario Baldi, Fulvio Risso y Gianluca Varenni, perfiles y optimizacin de
aplicaciones de red-anlisis basado en software , Actas de la 15 IEEE Simposio de
Arquitectura de Computadores y computacin de alto rendimiento (SBAC-PAD 2003),
Sao Paulo, Brasil, de noviembre de de 2003
Loris Degioanni, desarrollo de una arquitectura para la captura de paquetes y anlisis de
trfico de red , tesis de graduacin, Universidad Politcnica de Turn (Turn, Italia, marzo
de 2000)
Terminologa
Para mantener la coherencia con la literatura, vamos a utilizar el trmino de paquetes a
pesar de que el marco es ms preciso, ya que el proceso de captura se realiza en la capa
de enlace de datos y la cabecera de enlace de datos se incluye en los datos capturados.
El trmino Win9x se utilizar en este documento para indicar la familia de sistemas
operativos Microsoft compone de Windows 95 y sus derivados, es decir, Windows 98 y
Windows ME. El trmino WinNTx indicar los sistemas operativos edificados sobre el
ncleo NT, a partir de Windows NT 4 y que incluye Windows 2000, Windows XP, Windows
Server 2003 y as sucesivamente.
Nota
Nuestros esfuerzos de desarrollo y documentacin se centran principalmente en el Windows NT /
versin 2000 / XP / 2003 / Vista / 2008 / Win7 / 2008R2 de WinPcap. Esta eleccin se basa en el
hecho de que la mayora de los usuarios WinPcap funciona en sistemas de NTx, sino tambin
porque la tecnologa 9x ha sido abandonado por Microsoft. Por otra parte, se supone que una
persona que necesita utilizar un PC para una tarea avanzada como el anlisis de redes se
instalar un sistema operativo avanzado en la mquina.Por esta razn, la documentacin se
referir a los conductores y las API WinNTx. versiones de Win9x son muy similares en el
concepto pero a veces difieren en la aplicacin y, en ocasiones, la versin de Windows 9x de la
API carece de algunas de las funciones ms avanzadas. Este manual describe la API completa y
le indicar cuando una funcin slo est presente en Windows NTx.
documentacin. Derechos de autor (c) 2002-2005 Universidad Politcnica de
Turn. Derechos de autor (c) 2005-2009 CACE Technologies. Todos los derechos reservados.
mdulos
Aqu est una lista de todos los mdulos:
WinPcap tutorial: una gua paso a paso para el uso de WinPcap
La obtencin de la lista de dispositivos
La obtencin de informacin avanzada acerca de los dispositivos instalados
La apertura de un adaptador y la captura de los paquetes
La captura de los paquetes sin la devolucin de llamada
Filtrar el trfico
Interpretacin de los paquetes
Manejo de archivos de volcado fuera de lnea
el envo de paquetes
La recopilacin de estadsticas sobre el trfico de red
internos WinPcap
NPF manual de funcionamiento interno del controlador
NPF de E / S cdigos de control
NPF estructuras y definiciones
funciones NPF
NPF justo a tiempo las definiciones del compilador
Cmo compilar WinPcap
Packet.dll - Paquete de API del controlador
el manual del usuario WinPcap
definiciones
funciones exportadas
Sintaxis de las expresiones de filtrado
El uso de WinPcap en sus programas
Captura remota
Estructuras y definiciones exportadas
Las cadenas relacionadas con la nueva sintaxis fuente
Identificadores relacionados con la nueva sintaxis fuente
Banderas definidos en la funcin pcap_open ()
Mtodos de muestreo definidos en el pcap_setsampling funcin
()
mtodos de autenticacin soportados por el protocolo RPCAP
Funciones exportadas
Funciones internas
Estructuras internas y definicione
Estructuras de datos
Aqu estn las estructuras de datos con una breve descripcin:
__CPU_Private_Data
tampn Kernel de cada CPU
_DEVICE_EXTENSION
extensin dispositivo de puerto
_INTERNAL_REQUEST
Almacena una solicitud de OID
_OPEN_INSTANCE
Contiene el estado de una instancia de ejecucin del controlador NPF
_PACKET_OID_DATA
Estructura que contiene una peticin de OID
_PACKET_RESERVED
Contiene un paquete NDIS
active_pars
activehosts
Mantiene una lista de todas las conexiones abiertas en el modo activo
binary_stream
Una corriente de X86 cdigo binario
daemon_slpars
Estructura que mantiene los parmetros que necesita el daemon_serviceloop () la funcin
JIT_BPF_Filter
Estructura de la descripcin de un programa de filtrado x86 creado por la fluctuacin de fase
packet_file_header
Encabezado de un archivo de volcado de libpcap
PacketHeader
Estructura antepone a cada paquete en el grupo de bfer del ncleo
pcap_addr
Representacin de una direccin de interfaz, utilizado por pcap_findalldevs ()
pcap_file_header
Encabezado de un archivo de volcado de libpcap
pcap_if
Elemento de una lista de interfaces, utilizadas por pcap_findalldevs ()
pcap_pkthdr
Cabecera de un paquete en el archivo de volcado
pcap_rmtauth
Esta estructura mantiene la informacin necesaria para autheticate el usuario en una mquina
remota
pcap_samp
Esta estructura define la informacin relacionada con el muestreo
pcap_send_queue
Una cola de paquetes en bruto, que ser enviado a la red con pcap_sendqueue_transmit ()
pcap_stat
Estructura que mantiene los valores estadsticos en una interfaz
rpcap_auth
Estructura que mantiene los datos necesarios para la autenticacin en el servidor remoto
rpcap_filter
Encabezado general que se utiliza para la pcap_setfilter () de comandos; mantiene slo el
nmero de instrucciones BPF
rpcap_filterbpf_insn
Estructura que mantiene una nica instuction BPF; se repite 'ninsn' momentos de acuerdo con el
encabezado '' rpcap_filterbpf
rpcap_findalldevs_if
Formato del mensaje para el comando (findalldevs) Descripcin de la interfaz
rpcap_findalldevs_ifaddr
Formato del mensaje para la direccin de lista (findalldevs de comandos)
rpcap_header
cabecera comn para todos los mensajes RPCAP
rpcap_openreply
Formato del mensaje de respuesta de la abertura de conexin (orden de apertura)
rpcap_pkthdr
Formato de la cabecera que encapsula los paquetes capturados cuando se transmite en la red
rpcap_sampling
Estructura que se necesita para establecer los parmetros de muestreo
rpcap_startcapreply
Formato del mensaje de respuesta que se dedica a iniciar una captura remota (startcap
respuesta de comandos)
rpcap_startcapreq
Formato del mensaje que inicia una captura remota (comando startcap)
rpcap_stats
Estructura que mantiene las estadsticas sobre el nmero de paquetes capturados, cado, etc.
sf_pkthdr
Encabezado asociado a un paquete en el bfer del conductor, cuando ste se encuentra en modo
de descarga. Similar a la estructura bpf_hdr, pero ms simple
- un
Aceptado: __CPU_Private_Data
activeclose: daemon_slpars
AdapterBindingStatus: _OPEN_INSTANCE
AdapterHandle: _OPEN_INSTANCE
AdapterHandleLock: _OPEN_INSTANCE
AdapterHandleUsageCounter: _OPEN_INSTANCE
AdapterName: _DEVICE_EXTENSION
addr: rpcap_findalldevs_ifaddr , pcap_addr
Direccin: active_pars
direcciones: pcap_if
ai_family: active_pars
-B
bpf_pc: binary_stream
bpfprogram: _OPEN_INSTANCE
BROADADDR: rpcap_findalldevs_ifaddr , pcap_addr
bs_capt: pcap_stat
Buffer: __CPU_Private_Data
tampn: pcap_send_queue
BufferLock: __CPU_Private_Data
BufferMdl: _OPEN_INSTANCE
BUFSIZE: rpcap_startcapreply
-C
C: __CPU_Private_Data
Caplen: sf_pkthdr , rpcap_pkthdr , pcap_pkthdr
ClosePending: _OPEN_INSTANCE
Cdigo: rpcap_filterbpf_insn
CountersLock: _OPEN_INSTANCE
Cpu: _PACKET_RESERVED
CpuData: _OPEN_INSTANCE
cur_ip: binary_stream
-D
Datos: _PACKET_OID_DATA
desclen: rpcap_findalldevs_if
Descripcin: pcap_if
DeviceExtension: _OPEN_INSTANCE
Eliminado: __CPU_Private_Data
dstaddr: pcap_addr , rpcap_findalldevs_ifaddr
dummy: rpcap_findalldevs_if , rpcap_startcapreply , rpcap_filter , rpcap_auth
dummy1: rpcap_sampling
dummy2: rpcap_sampling
DumpEvent: _OPEN_INSTANCE
DumpFileHandle: _OPEN_INSTANCE
DumpFileName: _OPEN_INSTANCE
DumpFileObject: _OPEN_INSTANCE
DumpLimitReached: _OPEN_INSTANCE
DumpOffset: _OPEN_INSTANCE
DumpThreadHandle: _OPEN_INSTANCE
DumpThreadObject: _OPEN_INSTANCE
-E
ExportString: _DEVICE_EXTENSION
-F
FilterType: rpcap_filter
banderas: pcap_if , rpcap_startcapreq , rpcap_findalldevs_if
Libre: __CPU_Private_Data
FreeBufAfterWrite: _PACKET_RESERVED
Funcin: JIT_BPF_Filter
-H
cabecera: PacketHeader
anfitrionas: activehosts
- yo
ibuf: binary_stream
ifdrop: rpcap_stats
ifrecv: rpcap_stats
InternalRequestCompletedEvent: _INTERNAL_REQUEST
IoStatus: _OPEN_INSTANCE
IRP: _PACKET_RESERVED
isActive: daemon_slpars
-J
-K-
JF: rpcap_filterbpf_insn
JT: rpcap_filterbpf_insn
k: rpcap_filterbpf_insn
krnldrop: rpcap_stats
-L
len: sf_pkthdr , pcap_pkthdr , rpcap_pkthdr , pcap_send_queue
Longitud: _PACKET_OID_DATA
tipoenlace: pcap_file_header , rpcap_openreply , packet_file_header
ListElement: _PACKET_RESERVED , _INTERNAL_REQUEST
-M
MachineLock: _OPEN_INSTANCE
magia: packet_file_header , pcap_file_header
MaxDumpBytes: _OPEN_INSTANCE
MaxDumpPacks: _OPEN_INSTANCE
MaxFrameSize: _OPEN_INSTANCE
maxlen: pcap_send_queue
Medio: _OPEN_INSTANCE
mem: JIT_BPF_Filter
Mtodo: rpcap_sampling , pcap_samp
MinToCopy: _OPEN_INSTANCE
Modo: _OPEN_INSTANCE
Multiple_Write_Counter: _OPEN_INSTANCE
-N
naddr: rpcap_findalldevs_if
Nombre: pcap_if
nameLen: rpcap_findalldevs_if
Nbytes: _OPEN_INSTANCE
NdisOpenCloseCompleteEvent: _OPEN_INSTANCE
NdisRequestEvent: _OPEN_INSTANCE
NdisWriteCompleteEvent: _OPEN_INSTANCE
mscara de red: pcap_addr , rpcap_findalldevs_ifaddr
NEWP: __CPU_Private_Data
siguientes: pcap_if , pcap_addr , activehosts
nitems: rpcap_filter
Npackets: _OPEN_INSTANCE
npkt: rpcap_pkthdr
nullAuthAllowed: daemon_slpars
NumPendingIrps: _OPEN_INSTANCE
Nwrites: _OPEN_INSTANCE
-O
Oid: _PACKET_OID_DATA
OpenCloseStatus: _OPEN_INSTANCE
OpenInUseLock: _OPEN_INSTANCE
- pag
P: __CPU_Private_Data
PacketPool: _OPEN_INSTANCE
contrasea: pcap_rmtauth
plen: rpcap_header
pMdl: _PACKET_RESERVED
portuarias: active_pars
portdata: rpcap_startcapreply , rpcap_startcapreq
ps_drop: pcap_stat
ps_ifdrop: pcap_stat
ps_recv: pcap_stat
-R
read_timeout: rpcap_startcapreq
ReaderSN: _OPEN_INSTANCE
ReadEvent: _OPEN_INSTANCE
Recibido: __CPU_Private_Data
refs: binary_stream
Solicitud: _INTERNAL_REQUEST
RequestList: _OPEN_INSTANCE
Solicitudes: _OPEN_INSTANCE
RequestSpinLock: _OPEN_INSTANCE
RequestStatus: _INTERNAL_REQUEST
ResetIrpList: _OPEN_INSTANCE
-S
sigfigs: packet_file_header , pcap_file_header
Tamao: _OPEN_INSTANCE
SkipSentPackets: _OPEN_INSTANCE
slen1: rpcap_auth
slen2: rpcap_auth
SN: PacketHeader
snaplen: packet_file_header , pcap_file_header , rpcap_startcapreq
sockctrl: activehosts , daemon_slpars
svrcapt: rpcap_stats
-T
thiszone: packet_file_header , pcap_file_header
Tiempo de espera: _OPEN_INSTANCE
timestamp_sec: rpcap_pkthdr
timestamp_usec: rpcap_pkthdr
TransferMdl1: __CPU_Private_Data
TransferMdl2: __CPU_Private_Data
TransmitPendingPackets: _OPEN_INSTANCE
TS: sf_pkthdr , pcap_pkthdr
Tipo: rpcap_auth , pcap_rmtauth , rpcap_header
tzoff: rpcap_openreply
-U
nombre de usuario: pcap_rmtauth
-V
Valor: rpcap_header , rpcap_sampling , pcap_samp
Ver: rpcap_header
version_major: packet_file_header , pcap_file_header
version_minor: pcap_file_header , packet_file_header
-W
WriteEvent: _OPEN_INSTANCE
WriteInProgress: _OPEN_INSTANCE
WriteLock: _OPEN_INSTANCE
WriterSN: _OPEN_INSTANCE
Lista de archivos
Aqu est una lista de todos los archivos con una breve descripcin:
daemon.h [code]
fileconf.h [code]
ioctls.h [code]
jitter.h [code]
Packet.h [code]
pcap remote.h [code]
aum / pcap.h [code]
funcs / pcap.h [code]
remota-ext.h [code]
rpcapd.h [code]
utils.h [code]
Win32-Extensions.h [code]
win32-svc.h [code]
wpcap_remote.htm [code]
Aqu est una lista de todas las funciones, variables, define, enumeraciones, y typedefs con
enlaces a los archivos que pertenecen a:
- un
ADAPTER_BINDING_STATUS: Packet.h
ADAPTER_BOUND: Packet.h
ADAPTER_UNBINDING: Packet.h
ADAPTER_UNBOUND: Packet.h
ADD_EAXi: jitter.h
ADDib: jitter.h
Addid: jitter.h
ADDrd: jitter.h
AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_: Win32Extensions.h
AL: jitter.h
ANDib: jitter.h
ANDid: jitter.h
ANDrd: jitter.h
AX: jitter.h