论文部分内容阅读
随着信息时代的高速发展,Internet所提供的业务范围越来越广,从简单的资料查阅到线上交易,互联网所承载的用户信息十分庞大。而在现在主流的TCP/IP协议下,网络显露出很多安全问题。因此,在网络给人们带来愈来愈多便捷服务的同时,人们也开始更加关注其安全程度。这使得Internet的安全已经成为亟待解决的问题。网络嗅探器由此而生,它作为网络流量监控和故障检测中必不可少的工具之一,已经成为计算机专业一个重要的领域。网络嗅探器具有很强的收集数据的能力,无论在维护网络安全方面还是辅助黑客进行攻击方面都有着十分重要的作用。它可以有效的探测到网络上传输的数据包信息,通过分析和利用可以有效的维护网络安全。当我们深陷网络问题的时候,嗅探器可以帮我们确定问题的根源所在。本次研究基于对TCP/IP协议中各类数据包结构和嗅探器实现原理的深入理解。在设计过程中我们将整个程序划分为三个子模块:网络嗅探的设置、网络数据包捕获以及数据包解析和显示,我们对每一个模块进行详细的算法分析和设计。在这个过程中,我们采用面向对象的C++进行实现,利用MFC、多线程技术。我们依据嗅探器的实现原理,依次实现对网络适配器信息的获取,打开网络设备,设置并编译过滤器,捕获数据包,读取离线数据包,我们通过每一步的具体实现,最终在在Windows平台上实现了基于WinPcap的网络嗅探器的实现。在研究过程中,我们解决了捕获与解析数据包同时进行、跨线程调用主窗口控件以及packet_next_ex函数捕获的header和pkt_data指针在postmessage后出现地址错误等重要问题。此次开发的网络嗅探器工具能够根据协议类型、端口、地址信息对数据包进行过滤,采用了多线程的实现,并实现了易于使用的操作界面。完成了此次课题研究的目的。我们所设计的网络嗅探器能够详细的显示出所捕获的数据包,从而在此基础上做出相应的分析和统计。