基于C++技术局域网数据包截取与分析系统设计与实现.docVIP

基于C++技术局域网数据包截取与分析系统设计与实现.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C技术局域网数据包截取与分析系统设计与实现

基于C++技术局域网数据包截取与分析系统设计与实现   摘要:当前计算机网络的规模不断扩大,复杂性不断增加,网络的负荷也逐渐增加。用户对网络性能要求的提高,以及网络本身的缺陷等都影响到网络的性能。因此网络的管理和安全问题日益成为网络技术研究的一个重要方面。为了提高信息安全性,特开发局域网数据包截取与分析系统,系统基于C++技术和Access数据库的配合,在研究网络数据包捕获、TCP/IP原理的基础上,综合采用了Raw-Socket、多线程的创建和挂起等编程技术,实现数据包捕获、拆解和分析,有效数据的存储与查询等功能,为网络管理员了解网络运行状态提供了参考。   关键词:局域网监控;数据包截获;数据包分析;原始套接字   中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)28-6317-05   随着网络的飞速发展,信息安全逐渐成为一个潜在的巨大问题。信息安全性是一个涉及面很广泛的问题。伴随着各种信息被盗的问题,对安全性的需求也在急切的提高。数据包的监听与分析,可以为防火墙和杀毒软件提供网络信息的基本数据。因此,研究数据捕获技术对于保障网络安全有着重要的意义。   通过对数据包的分析,我们可以判断通信双方的操作系统、网络信息流量、经过的路由、 数据包的大小,以及数据包的内容等等。多数信息被盗一般都是通过分析数据包被盗的,通过掌握分析数据包的技术我们可以了解数据被盗的原理与技术,以及时的防盗。通过监听与分析数据包,获得的信息帮助客户设置访问设置,防止中毒,信息被盗等安全性问题。数据包的监听与分析技术是防火墙与杀毒软件的基本技术,可以有效的解决信息的安全问题,并且对拦截下来的数据包进行分析,所得到的分析结果作为入侵检测系统的源数据,是入侵检测的重要组成部分。它将成为以后信息安全领域的一项新的技术,有待发展。[1][2]   1 局域网数据包截取与分析系统的设计与实现   1.1 系统分析   在科技飞速发展的今天,为了更好地保证信息的安全,让用户可以随时了解并掌握本机数据通信的情况,增加网络安全性,并及时改善系统。设计开发了局域网的数据包的截获与分析系统。   系统将经过本地网卡的数据包截取后,按照数据包的格式进行拆包。对系统初始化的函数都放在一个类中,同时对数据包的截取和分析也是放在这个类中,这样在程序运行的时候,当需要时就调用这个类中相应的函数即可。在程序运行的时候,主线程会调用类中相应的功能,先是初始化,然后抓包,再进行分析,再显示到屏幕上,这些功能的都是在主线程下新建的子线程下完成的,这样做的原因是抓包是用一个无限循环进行的,如果不新建线程,一旦开始抓包,则程序就会进入“假死”,就不能进行其它的任何操作了,比如停止。然后就是在每次停止运行程序以后,程序就会自动获取当前日期和时间,将得到的数据存入文件中。   系统主要实现数据包的抓取、分析及数据保存、数据包信息查询、IP地址、主机名查询等。   1.2 系统设计   系统由数据包的抓取、分析及数据保存、数据包信息查询、IP地址、主机名查询等几部分组成。系统总体功能如图1所示。[3]   系统选用Windows 7 作为操作系统,选择Microsoft Visual C++ 6.0作开发平台,采用Microsoft Office Access 2003数据库,并使用C++语言及原始套接字编程技术开发。 “packagesdata”数据库中包含一张package表,package表包括16个字段,用于存储数据包数据信息。   1.3 系统实现   1.3.1 数据包截获功能   首先设置网卡模式为混乱模式,以便截获本局域网内的所有数据包。然后设置截获规则:端口、IP地址和协议类型。端口组有两个选项:指定和全部;IP地址组有两个选项:指定和全部;协议类型组有四个选项:全部、TCP、UDP和ICMP。每组只能并且只有一个选项是有效,它们共同组成了截获的规则。最后创建工作者线程,根据截获规则无限循环截获数据包。[4]   1) 数据包的截获:如图2所示。[5]   2) 消息发送机制:在Windows界面编程时坚持一个原则,Windows界面的API都是单线程的。所以不能在另一个线程中直接调用界面API。如果要在线程中调用窗口,用::SendMessage(m_hwnd,mymessage,0,0),将消息发到队列里去。   ①头文件中定义消息:   #define WM_MYUPDATEDATA (WM_USER+200)   ②头文件类中定义消息处理函数原型:   afx_msg LRESULT OnUpdateMessage(WPARAM wParam, LPARAM lParam);   ③在源文件中

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档