Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Documentacin WinPcap
4.1.2
autores:
El equipo de WinPcap
pgina principal:
http://www.winpcap.org
mdulos
funciones exportadas
Filtrar el trfico
el envo de paquetes
internos WinPcap
funciones NPF
Captura remota
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
registradores de trfico
generadores de trfico
escneres de red
herramientas de seguridad
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:
Terminologa
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.
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
Filtrar el trfico
el envo de paquetes
internos WinPcap
funciones NPF
definiciones
funciones exportadas
Captura remota
Funciones exportadas
Funciones internas
Estructuras de datos
__CPU_Private_Data
_DEVICE_EXTENSION
_INTERNAL_REQUEST
_OPEN_INSTANCE
_PACKET_OID_DATA
_PACKET_RESERVED
active_pars
activehosts
binary_stream
daemon_slpars
JIT_BPF_Filter
packet_file_header
PacketHeader
pcap_addr
pcap_file_header
pcap_if
pcap_pkthdr
pcap_rmtauth
Esta estructura mantiene la informacin necesaria para autheticate el usuario en una mquina
remota
pcap_samp
pcap_send_queue
Una cola de paquetes en bruto, que ser enviado a la red con pcap_sendqueue_transmit ()
pcap_stat
rpcap_auth
Estructura que mantiene los datos necesarios para la autenticacin en el servidor remoto
rpcap_filter
rpcap_filterbpf_insn
Estructura que mantiene una nica instuction BPF; se repite 'ninsn' momentos de acuerdo con el
encabezado '' rpcap_filterbpf
rpcap_findalldevs_if
rpcap_findalldevs_ifaddr
rpcap_header
rpcap_openreply
rpcap_pkthdr
Formato de la cabecera que encapsula los paquetes capturados cuando se transmite en la red
rpcap_sampling
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
Direccin: active_pars
direcciones: pcap_if
ai_family: active_pars
-B
bpf_pc: binary_stream
bpfprogram: _OPEN_INSTANCE
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
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
-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
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
NEWP: __CPU_Private_Data
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
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
SkipSentPackets: _OPEN_INSTANCE
slen1: rpcap_auth
slen2: rpcap_auth
SN: PacketHeader
svrcapt: rpcap_stats
-T
timestamp_sec: rpcap_pkthdr
timestamp_usec: rpcap_pkthdr
TransferMdl1: __CPU_Private_Data
TransferMdl2: __CPU_Private_Data
TransmitPendingPackets: _OPEN_INSTANCE
tzoff: rpcap_openreply
-U
-V
-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