电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

试验二WINPCWP编程VIP免费

试验二WINPCWP编程_第1页
1/7
试验二WINPCWP编程_第2页
2/7
试验二WINPCWP编程_第3页
3/7
实验二WINPCWP编程[实验目的]了解WINPCAP的架构学习WINPCAP编程[实验原理]WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库.大多数网络应用程序通过被广泛使用的操作系统元件来访问网络,比如sockets。这是一种简单的实现方式,因为操作系统已经妥善处理了底层具体实现细节(比如协议处理,封装数据包等等),并且提供了一个与读写文件类似的,令人熟悉的接口。然而,有些时候,这种“简单的方式”并不能满足任务的需求,因为有些应用程序需要直接访问网络中的数据包。也就是说,那些应用程序需要访问原始数据包,即没有被操作系统利用网络协议处理过的数据包。WinPcap产生的目的,就是为Win32应用程序提供这种访问方式;WinPcap提供了以下功能1.捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的2.在数据包发送给某应用程序前,根据用户指定的规则过滤数据包3.将原始数据包通过网络发送出去4.收集并统计网络流量信息以上这些功能需要借助安装在Win32内核中的网络设备驱动程序才能实现,再加上几个动态链接库DLL。所有这些功能都能通过一个强大的编程接口来表现出来,易于开发,并能在不同的操作系统上使用。这本手册的主要目标是在一些程序范例的帮助下,叙述这些编程接口的使用。WinPcap可以被用来制作网络分析、监控工具。一些基于WinPcap的典型应用有:1.网络与协议分析器(networkandprotocolanalyzers)2.网络监视器(networkmonitors)3.网络流量记录器(trafficloggers)4.网络流量发生器(trafficgenerators)5.用户级网桥及路由(user-levelbridgesandrouters)6.网络入侵检测系统(networkintrusiondetectionsystems(NIDS))7.网络扫描器(networkscanners)8.安全工具(securitytools)[实验内容]通过学习WINPCAP架构,编写一个网络抓包程序。Winpcap是针对Win32平台上的抓包和网络分析的一个架构。它包括一个核心态的包过滤器,一个底层的动态链接库(packet.dll)和一个高层的不依赖于系统的库(wpcap.dll)首先,抓包系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包(rawpacket),这就要求一部分运行在操作系统核心内部,直接与网络接口驱动交互。这个部分是系统依赖(systemdependent)的,在Winpcap的解决方案里它被认为是一个设备驱动,称作NPF(NetgroupPacketFilter)。Winpcap开发小组针对Windows95,Windows98,WindowsME,WindowsNT4,Windows2000和WindowsXP提供了不同版本的驱动。这些驱动不仅提供了基本的特性(例如抓包和injection),还有更高级的特性(例如可编程的过滤器系统和监视引擎)。前者可以被用来约束一个抓包会话只针对网络通信中的一个子集(例如,仅仅捕获特殊主机产生的ftp通信的数据包),后者提供了一个强大而简单的统计网络通信量的机制(例如,获得网络负载或两个主机间的数据交换量)。其次,抓包系统必须有用户级的程序接口,通过这些接口,用户程序可以利用内核驱动提供的高级特性。Winpcap提供了两个不同的库:packet.dll和wpcap.dll。前者提供了一个底层API,伴随着一个独立于Microsoft操作系统的编程接口,这些API可以直接用来访问驱动的函数;后者导出了一组更强大的与libpcap一致的高层抓包函数库(captureprimitives)。这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行。核心代码:抓包函数UINT_cdeclCYwkPackDlg::CapThread(LPVOIDIpParameter){CYwkPackDlg*this2;pcap_t*adhandle;charerrbuf[PCAP_ERRBUF_SIZE];pcap_dumper_t*dumpfile;structpcap_pkthdr*header;constu_char*data;DWORDres;boolbExit;staticlongi=0,j=0;ListDataList;structether_header*eth;u_char*mac_string;structiphead*IPHead;structarphead*ARPHead;in_addripaddr;this2=(CYwkPackDlg*)IpParameter;i=0;j=0;charp[256];CStringAts(this2->AdapterName.GetBuffer());memcpy(p,ts.GetBuffer(),256);if((adhandle=pcap_open_live(p,65536,1,1000,errbuf))==NULL)//打开网卡接口(混杂模式){::MessageBox(0,L"不能打开网络适配器,请在网卡设置中经行设置",L"错误",0);EnterCri...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

试验二WINPCWP编程

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部