实验二 WINPCWP编程[ 实验目的 ] 了解 WINPCAP的架构学习 WINPCAP编程[ 实验原理 ] WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库. 大多数网络应用程序通过被广泛使用的操作系统元件来访问网络,比如 sockets。这是一种简单的实现方式,因为操作系统已经妥善处理了底层具体实现细节(比如协议处理,封装数据包等等),并且提供了一个与读写文件类似的,令人熟悉的接口。然而,有些时候,这种“简单的方式 ”并不能满足任务的需求,因为有些应用程序需要直接访问网络中的数据包。也就是说, 那些应用程序需要访问原始数据包,即没有被操作系统利用网络协议处理过的数据包。WinPcap产生的目的,就是为Win32应用程序提供这种访问方式;WinPcap提供了以下功能1.捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的2.在数据包发送给某应用程序前,根据用户指定的规则过滤数据包3.将原始数据包通过网络发送出去4.收集并统计网络流量信息以上这些功能需要借助安装在Win32内核中的网络设备驱动程序才能实现,再加上几个动态链接库 DLL 。所有这些功能都能通过一个强大的编程接口来表现出来,易于开发,并能在不同的操作系统上使用。这本手册的主要目标是在一些程序范例的帮助下,叙述这些编程接口的使用。WinPcap可以被用来制作网络分析、监控工具。一些基于WinPcap的典型应用有:1.网络与协议分析器(network and protocol analyzers) 2.网络监视器(network monitors) 3.网络流量记录器(traffic loggers) 4.网络流量发生器(traffic generators) 5.用户级网桥及路由(user-level bridges and routers) 6.网络入侵检测系统(network intrusion detection systems (NIDS)) 7.网络扫描器(network scanners) 8.安全工具(security tools) [ 实验内容 ] 通过学习WINPCAP架构,编写一个网络抓包程序。Winpcap 是针对 Win32 平台上的 抓包 和网络分析 的一个架构。 它包括一个 核心态 的包 过滤器 ,一个底层的 动态链接库 (packet.dll)和一个高层的不依赖于系统的库(wpcap.dll)首先, 抓包 系统必须绕过 操作系统 的协议栈来访问在网络上传输的原始数据包(raw packet ),这就要求一部分运行在操作系统核心内部,直接与网络接口驱动交互。这个部分是系统依赖 (system dependent)的,在 Winpcap 的解决方案里它被认为是一个设备驱动 ,...