基于 Winpcap 编程实现抓包实验
一. 本设计要到达的目标
基于 winpcap 编程实现对网络数据的捕获,并分析数据类型,对于 IP,ICMP,ARP,UDP
等,能够自动识别其协议类型并分析帧的构成。
二.实现步骤
〔1〕需要通过资料来了解 winpcap 抓包的工作原理,熟悉其运行过程
Winpcap 的部构造
Wincap 有三局部组成:一个数据包监听设备驱动程序,一个低级的动态连接库和一个高级
的静态连接库。底层动态库运行在用户层,它将应用程序和数据包监听设备驱动程序隔离开
来,使得应用程序可以不加修改地在不同的 WINDOWS 系统上运行。高级的静态库和应用
程序编译在一起,它使用低级动态库提供的效劳,向应用程序提供完善的监听接口。抓包是
WinPcap 的根本功能,也是 NPF 最重要的操作。在抓包的时候,驱动〔例如 NIC Driver〕使
用一个网络接口监视着数据包,并将这些数据包完整无缺地投递给用户级应用程序。
〔2〕进一步了解 winpcap 编程所需要的编译环境,下载 WpdPack,了解编译环境所需要的库
文件.在编译时需要把 wpdpack 中的 include 与 lib 添加进 vc 的库文件里。
〔3〕明确整个编程的步骤与具体函数。刚开场要定义,在主函数中获取设备接口信息,获
得网络地址与掩码地址,翻开网络接口,还要设置过滤规那么。使用 loop 函数来回调循环
捕获数据包,以便一层一层解析。
〔4〕还要定义几个以太网,ARP,IP,UDP,TCP,ICMP 协议的格式。需要注意在存储空
间中,在存储空间中才能更好的逐层分析,不然很容易出错
〔5〕定义分析协议的函数,定义方式与回调函数一样. 常用的函数有:用于获取本机设备
列表的 pcap_findalldevs_ex 函数
用于翻开设备的 pcap_open 函数,可以指定为混杂模式翻开
用于编译数据包过滤器的 pcap_pile 函数
用于设置数据包过滤器的 pcap_setfilter 函数
用于从设备读取数据包的 pcap_netx_ex 函数
评论0
最新资源