成都信息工工程学院院课程设计报报告简单的网络络嗅探器器姓名:纪 红专业:信息安全班级:信安0844班提交日期::2011--12--13简单的网络络嗅探器器摘 要计算机网络络嗅探器器是可以以窃听计计算机程程序在网网络上发发送和接接收到的的数据,程程序实现现了对抓抓取到的的本机在在网络中中的通信信数据的的协议类类型、源源地址、目目的地址址、端口口和数据据包的大大小加以以简单的的分析,改改程序应应用C#语言编编写,实实现了一一个简单单的网络络嗅探功功能其其中一个个窗体显显示主页页面,另另一个窗窗体显示示详细信信息关键词:网网络嗅探探器;发发送和接接受到的的数据;;协议类类型;源源地址;;目地地地址;端端口和数数据包;;分析;;C#言语目 录论文总页数数:9页1 引言1.1 课课题背景景随着社会信信息化的的不断深深入,计计算机啊啊网络已已经渗入入到社会会的每一一个角落落,人们们已无时时无刻离离不开网网络很很多人经经常上网网购物,学学习,玩玩游戏,然然而网络络上的一一些不良良信息很很可能影影响到互互联网用用户尤其其是青少少年的身身心健康康基于于以上的的现实问问题,我我开发了了这款网网络嗅探探器。
可可以用来来实现对对计算机机程序在在网络上上发送和和接收到到的数据据的分析析1.2 研研究现状状 网络络嗅探器器无论是是在网络络安全还还是在黑黑客攻击击方面扮扮演了很很重要的的角色通通过使用用网络嗅嗅探器可可以把网网卡设置置于混杂杂模式,并并可以对对网络上上传输的的数据包包的捕获获和分析析此分分析结果果可供网网络安全全分析之之用,但但如为黑黑客所利利用也可可以为其其发动进进一步的的攻击提提供有价价值的信信息可可见,嗅嗅探器实实际上是是一把双双刃剑虽虽然网络络嗅探器器技术被被黑客所所利用后后会对网网络构成成一定的的威胁,但但嗅探器器本身的的危害并并不是很很大,主主要是用用来为其其他黑客客软件提提供网络络情报,真真正的攻攻击主要要是由其其它黑客客软件来来完成的的而在在网络安安全方面面,网络络嗅探手手段可以以有效地地探测在在网络上上传输的的数据包包信息,通通过对这这些信息息的分析析利用有有助于网网络安全全的维护护1.3 本本课题研研究的意意义 当我我们处理理自身网网络问题题的时候候,一个个信息包包嗅探器器向我们们展示出出正在网网络上进进行的一一切活动动于是是,借助助一定的的知识,我我们就可可以确定定问题的的根源所所在。
但但必须记记住的是是,网络络嗅探器器并不会会告诉你你问题究究竟是什什么,而而只会告告诉你究究竟发生生了什么么对网网络嗅探探器的研研究我加加深了对对通信协协议的理理解,网网络数据据结构的的理解对对网络嗅嗅探器的的深入研研究更重重要的是是可以让让我们的的互联网网世界更更安全、信信息更健健康1.4 本本课题的的研究方方法嗅探侦听主主要有两两种途径径,一种种是将侦侦听工具具软件放放到网络络连接的的设备或或者放到到可以控控制网络络连接设设备的电电脑上,(比如网网关服务务器,路路由器)——当然要要实现这这样的效效果可能能也需要要通过其其他黑客客技术来来实现:比如通通过木马马方式将将嗅探器器发给某某个网络络管理员员,使其其不自觉觉的为攻攻击者进进行了安安装另另外一种种是针对对不安全全的局域域网(采用交交换hub实现),放到到个人电电脑上就就可以实实现对整整个局域域网的侦侦听,这这里的原原理是这这样的:共享hub获得一个个子网内内需要接接收的数数据时,并并不是直直接发送送到指定定主机,而而是通过过广播方方式发送送到每个个电脑,对对于处于于接受者者地位的的电脑就就会处理理该数据据,而其其他非接接受者的的电脑就就会过滤滤这些数数据,这这些操作作与电脑脑操作者者无关,是是系统自自动完成成的,但但是电脑脑操作者者如果有有意的话话,他是是可以将将那些原原本不属属于他的的数据打打开!2系统设计计2.1 程程序实现现的功能能 该程序序实现了了抓取本本机在网网络通信信数据并并加以简简单的分分析的功功能,实实现了一一个简单单的网络络嗅探器器。
其中中有一个个主页面面,另一一个详细细显示包包信息的的页面2.2 主主要软件件需求 本程序使使用Vissuall Sttudiio 220100开发平平台,使使用C#语言编编写,编编译成功功后的可可执行文文件需要要在装有有Vissuall Sttudiio 220100的平台台上才能能运行测试平台::装有Vissuall Sttudiio 220100的Winndowws XXP系统使用软件::Vissuall Sttudiio 220100 2..3功能模模块与系系统结构构(1)获得得计算机机的IP地址(2)开始始监听,获获得数据据包的协协议类型型、源端端口、目目地端口口和大小小(3)停止止监听,程程序将暂暂停运行行(4)清空空列表,显显示列表表被清空空(5)帮助助,弹出出帮助对对话框,显显示作者者信息(6)详细细信息,双双击列表表中的任任意行,显显示数据据包的详详细信息息3 系统功功能程序序设计3.1功能能函数部部分 1、获取取计算机机的IP地址址,并以以列表的的形式显显示出来来 IPAdddresss[]] hoostss = Dnss.Reesollve((Dnss.GeetHoostNNamee())).AdddreessLListt; iff (hhostts.LLenggth == 0) tthroow neww NottSuppporrteddExccepttionn("Thhis commputter doees nnot havve nnon--looopbaack intterffacees iinsttallled!!");; foor ((intt i = 00; ii < hossts..Lenngthh; ii++)) { MMoniitorrMennuIttem..MennuIttemss.Addd(hhostts[ii].TToSttrinng()), nnew EveentHHanddlerr(thiis.OOnHoostssCliick))); HHosttsMeenu..MennuIttemss.Addd(hhostts[ii].TToSttrinng()), nnew EveentHHanddlerr(thiis.OOnHoostssCliick))); } m__PacckettMonnitoors = nnew PacckettMonnitoor[HHosttsMeenu..MennuIttemss.Coountt]; foor ((intt i = 00; ii < m_PPackketMMoniitorrs.LLenggth;; i+++) { mm_PaackeetMoonittorss[i]] = neww PacckettMonnitoor(hhostts[ii]);; mm_PaackeetMoonittorss[i]].NeewPaackeet ++= nnew NewwPacckettEveentHHanddlerr(thiis.OOnNeewPaackeet);; } m__Paccketts == neew ArrrayLListt();; }2、开始监监测,停停止监听听,清楚楚列表 pubblicc voiid OOnTooolBBarCClicck(oobjeect sennderr, TToollBarrButttonnCliickEEvenntArrgs e) { iff (ee.Buuttoon === SStoppButttonn) {{ ffor((intt i = 00; ii < m_PPackketMMoniitorrs.LLenggth;; i+++) { m_PPackketMMoniitorrs[ii].SStopp();; HosstsMMenuu.MeenuIItemms[ii].CChecckedd = fallse; MonnitoorMeenuIItemm.MeenuIItemms[ii].CChecckedd = fallse;; }} SStattusBBar..Texxt == "停ª¡ê止1监¨¤测a"; } elsse if ((e.BButtton == StaartBButtton)) { ffor((intt i = 00; ii < m_PPackketMMoniitorrs.LLenggth;; i+++) { tryy { m_PPackketMMoniitorrs[ii].SStarrt()); } caatchh (Exxcepptioon eex) { MesssaggeBoox.SShoww(thhis,, "界?面?出?现?一°?个?错䨪误¨®"" + m_PPackketMMoniitorrs[ii].IIP.TToSttrinng()) + "\rr\n\\r\nn[" + eex.MMesssagee + "]"", "MMenttaliis.oorg Pacckett Moonittor"", MeessaageBBoxBButttonss.OKK, MMesssageeBoxxIcoon.EErroor);; } HosstsMMenuu.MeenuIItemms[ii].CChecckedd = truee; MonnitoorMeenuIItemm.MeenuIItemms[ii].CChecckedd = truue; }} SStattusBBar..Texxt == "检¨¬测a所¨´有®D端?口¨²""; } eelsee if (e..Butttonn === CllearrButttonn) {{ PPackketLListt.Ittemss.Cllearr();; mm_Paackeets..Cleear((); SStattusBBar..Texxt == "清?空?列¢D表À¨ªª"; } elsse if ((e.BButtton == AbooutBButtton)) { AAbouutFoorm af = nnew AbooutFFormm();; aaf.SShowwDiaalogg(thhis)); }3、把获取取到的字字节流转转换成字字符 publlic strringg ToSStriing((boool rraw)) { SttrinngBuuildder sb = nnew StrringgBuiildeer(RRaw..Lenngthh); iff (rraw)) { ffor((intt i = 00; ii < Raww.Leengtth; i+++) {{ if ((Raww[i]] > 31)) sb..Apppendd((ccharr)Raaw[ii]);; elsse sb..Apppendd("..");; }} } elsse {{ sstriing rawwStrringg = thiss.TooStrringg(trrue)); ffor((intt i = 00; ii < Raww.Leengtth; i ++= 116) { forr(intt j = ii; jj < Raww.Leengtth &&& jj < i ++ 166; jj++)) { sb..Apppendd(Raaw[jj].TToSttrinng(""X2"") ++ " ");; } if ((rawwStrringg.Leengtth << i + 116) { sb..Apppendd(' ', ((116 -- (rrawSStriing..Lenngthh % 16))) %% 166) ** 3)); sb..Apppendd(" " ++ raawSttrinng.SSubsstriing((i) + ""\r\\n")); } ellse { sb..Apppendd(" " ++ raawSttrinng.SSubsstriing((i, 16)) + "\rr\n""); } }} } reeturrn ssb.TToSttrinng()); }3.2界面面实现部部分1、VS220100中新建建项目Winndowws应用程序PacckerrMonnitoor。
2、添加三个个窗体文文件和两两个类文文件,分分别命名名AbooutFFormm.css、PacckettForrm.ccs、PacckettMonnitoorFoorm..cs,其其中AbbouttForrm.ccs实现现帮助界界面、PPackketFFormm.css实现详详细显示示界面、PacketMonitorForm.cs实现主页面4测试报告告及界面面预览1、 主页面预览览2、帮助界界面预览览2、 详细界面预预览3、 开始监测界界面4、 清空列表5、 暂停监测5心得结论论 该该系统设设计最关关键的是是在怎么么获得IP地址,怎么获获取数据据包经过过一段时时间的思思考和查查阅,这这些问题题都一一一解决了了这样样方面完完整的实实现了设设计的要要求,很很好的解解决了这这些问题题 通过此次次课程设设计,对对网络终终端监控控程序的的编写的的方法及及实现有有了更深深入的了了解,基基本具备备了简单单的网络络终端监监控程序序开发的的能力为为今后更更好的学学习及今今后工作作打下了了坚实的的基础6参考文献献[1] 谭浩强. CC++程序设设计. 清华大大学出版版社. 20004[2] 张张凯主编编.VCC++程序设计. 大连理理工大学学出版社社. 20002[3] 宋宋坤,刘刘锐宁,李李伟明. MMFC程序开开发参考考大全. 人民民邮电出出版社.. 20006[4] 杨晓光光,李兰兰友.Viisuaal CC#.NNET程序设设计.北京交交通大学学出版社社[5]易向向东, 陈蓓,万万英.C#程序员员开发指指南.中国吉吉林出版版社[6]刘瑞瑞新.C#网络编编程及应应用.机械工工业出版版社。