Sei sulla pagina 1di 14

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

Potrebbero piacerti anche