基于Libpcap/Winpcap网络监听与过滤

本文介绍了Libcap/Winpcap在网络监听中的应用,包括其初始化、过滤规则处理、本机网络设置等逻辑结构。基本使用流程包括获取设备、设置过滤规则、捕获数据包等步骤。同时,文章详细阐述了如何获得本地网卡列表、接受数据包、数据包过滤以及脱机方式监听的相关操作。Libpcap/Winpcap库简化了网络监听和包过滤的工作,为网络协议分析和攻击检测提供了便利。
摘要由CSDN通过智能技术生成

基于Libpcap/Winpcap网络监听与过滤
3.1 Libpcap/Winpcap简介
Libcap(Winpcap是其windows版本)可以提供与平台无关的接口,而且操作简单,它是基于改进的BPF(Berkeley Packet Filter),该软件来自Berkeley的Lawrence National Laboratory研究院.Winpcap是Libpcap 的windows版本,linux用户使用Libpcap,Windows用户使用Winpcap. 使用Winpcap包过程比较规范.在密码学协议分析中,我们常用它来实现协议攻击.
3.2 Libpcap源代码逻辑结构
(1)初始化:这部分的功能包括打开设备、读取设备,设置过滤器部分.主要的函数如下:pcap_read(),pcap_open_live(),pcap_setfilter().在源代码中是以pcap-*.c方式出现;
(2)过滤规则表达式的处理:这部分的功能包括对过滤规则表达式进行编译、优化、调试(该部分过滤机制采用的是伪主机技术),如果各熟悉BPF程序的编码规则,甚至可以修改其中代码,创建自己的过滤规则.这部分代码在:gencode.c,grammar.c,scanner.c,optimize.c,这一部分代码的工作方式是通过将我们输入的过滤规则表达式编译成BPF代码,然后存在一个名为bpf_program的结构中,最后利用pcap_setfilter()来加载;
(3)本机网络设置部分:这部分是通过获取socket的状态,来检测TCP/IP层网络设置.主要函数有:pcap_lookupdev()、pcap_lookupnet()等,这部分代码在inet.c中;
(4)其他部分:在pcap.c中定义了读数据的对外统一接口pcap_next()来获取下一个数据包,获取当前错误信息的pcap_geter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值