信息安全课程设计报告-基于tcp协议的端口扫描程序设计(12页).doc
《信息安全课程设计报告-基于tcp协议的端口扫描程序设计(12页).doc》由会员分享,可在线阅读,更多相关《信息安全课程设计报告-基于tcp协议的端口扫描程序设计(12页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-信息安全课程设计报告-基于tcp协议的端口扫描程序设计-第 8 页成都工业学院课程设计报告课程名称: 计算机网络信息安全 姓 名: XXX 班 级: 13XXXXX 学 号: 25 指导教师: 宋XX 时 间: 2016.11.21-2016.11.25 成都工业学院计算机工程学院基于tcp协议的端口扫描程序设计摘 要计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现安全问题的重要手段之一。本程序是在Windows系统中使用C语言用MFC完成的一个端口扫描程序。此程序主要完成了TCP connec
2、t()扫描的功能。TCP扫描支持多线程,能对单个指定的主机进行扫描或对指定网段内的主机进行逐个扫描。能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描。此端口扫描程序能快速地进行TCP扫描,准确地检测出对TCP协议开放的端口。扫描结果以列表的形式直观地展现出来。关键词:端口扫描、TCP扫描、TCP多线程扫描目 录1引言11.1课题的背景及意义11.2端口扫描现状12系统设计12.1系统主要目标12.2开发环境及工具12.3功能模块与系统结构23系统功能程序设计43.1获取本机IP43.2分割字符串函数的实现43.3获取待扫描的IP地址53.4获取待扫描的端口号53.4.1 指定端口号的
3、初始化63.4.2 指定端口号的保存73.5TCP connect() 扫描83.5.1 基本原理83.5.2 扫描多个主机多端口多线程的实现83.5.3 扫描结果的显示94测试报告104.1TCP扫描检测104.1.1扫描本机104.1.2扫描网络中其他主机11结 论13参考文献131 引言1.1 课题的背景及意义网络中每台计算机犹如一座城堡,这些城堡中,有些是对外完全开放的,有些却是大门紧闭的。入侵者们是如何找到,并打开它们的城门呢?这些城门究竟通向何处?在网络中,把这些城堡的“城门”称之为计算机的“端口”。端口扫描是入侵者搜索信息的几种常用方法之一,也正是这一种方法最容易暴露入侵者的身份
4、和意图。一般说来,扫描端口有以下目的:判断目标主机上开放了哪些服务判断目标主机的操作系统如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能使用相应的手段实现入侵。而如果管理员先掌握了这些端口服务的安全漏洞,就能采取有效的安全措施,防范相应的入侵。1.2 端口扫描现状计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现安全问题的重要手段之一。一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。扫描器通过选用远程TCP/IP不同的端口的服务,
5、并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息,从而发现目标机的某些内在的弱点。2 系统设计2.1 系统主要目标本程序主要实现了:简易的TCP connect()扫描,支持多线程;UDP扫描功能;能对单个指定的主机进行扫描或扫描指定网段内的主机;能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描;2.2 开发环境及工具测试平台:Windows 7使用软件:Visual C+ 6.0开发语言:C语言2.3 功能模块与系统结构作为端口扫描程序,首先需要完成的功能就是对于系统操作系统的服务端口进行扫描,返回扫描结果。对于端口的扫描,包括对于本机系统服务端口,局
6、域网内目标机系统,以及远程IP的系统服务端口进行扫描。有些时候,用户并不需要去扫描整个系统的所有端口,因为这样的话不仅会浪费大量的时间,而且可能导致难以找到自己需要了解的端口的扫描结果。所以,对于选择性地对端口进行扫描也非常重要。这当然也是扫描程序需要实现的功能之一。用户在等待扫描的时候,往往希望知道它的工作进度。这样用户可以更好地控制自己的操作。站在用户的角度思考,设置进度是程序需要完成的,这样就能知道程序扫描的进度。系统必须提供的服务是功能需求的基本,本着站在用户角度思考的原则,做出如上叙述需求,从简列举如下:扫描功能;地址选择功能;端口选择功能;进度显示功能;端口扫描程序功能模块如下图所
7、示:端口扫描系统操作显示设置地址设置端口设置协议开始扫描进度显示结果显示程序运行流程图:开始开始扫描设置扫描参数(IP、端口、协议)读入用户设置的IP、端口号、协议nowAddr=StartAddri=0初始化进度条进行TCP扫描nowAddr=EndAddri+itotalPort进行UDP扫描显示打开端口AfxBeginThread(DoScanPort_TCP,&inforabout,0,0,0,NULL)nowAddr+nowAddr=EndAddrnowAddr=StartAddri=0ih_addr_listi!= NULL; i+ )/*对每一个IP地址进行处理*/pszAddr
8、 = inet_ntoa (*(struct in_addr *)pHost-h_addr_listi);break;3.2 分割字符串函数的实现由于扫描结果是使用静态字符串保存的,所以最后显示的时候,需要用到分割字符串函数,来将字符串中扫描出的端口号分离出来显示。本函数主要是通过Find()函数来查找用作分隔符的字符串在待查找的字符串中的位置,然后通过Add()函数将分隔符之间的字符保存进数组中,来达到分割字符的目的。 while( -1 != pos ) if( -1 = pre_pos ) pos = source.Find(division,pos); else pos = sourc
9、e.Find(division,(pos+1); if( -1 = pre_pos ) iFirst = 0; if( -1 = pos ) nCount = source.GetLength(); else nCount = pos; else iFirst = pre_pos+len; if( -1 != pos ) nCount = pos - pre_pos - len; else nCount = source.GetLength()-pre_pos-len; dest.Add(source.Mid(iFirst,nCount); pre_pos = pos;3.3 获取待扫描的IP
10、地址通过判断选择的哪个Radio Button的值,来选择从对应的IP Address控件中读入用户输入的值,若是单个的IP则将开始地址StartAddr和结束地址EndAddr都赋值为IP Address控件的值;若是IP范围,则第一个IP地址赋值给StartAddr,最后一个IP地址赋值给EndAddr。void CPortScanDlg:setAddr(DWORD& StartAddr,DWORD& EndAddr)switch(m_conf_IP.m_IP)case 0:m_conf_IP.m_IP_Self.GetAddress(StartAddr);m_conf_IP.m_IP_S
11、elf.GetAddress(EndAddr);break;case 1:m_conf_IP.m_IP_Design.GetAddress(StartAddr);m_conf_IP.m_IP_Design.GetAddress(EndAddr);break;case 2:m_conf_IP.m_IP_Start.GetAddress(StartAddr);m_conf_IP.m_IP_End.GetAddress(EndAddr);break;default:break;3.4 获取待扫描的端口号首先读入用户设置的允许的最大线程数。再通过判断选择的哪个Radio Button的值,来选择从对应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 课程设计 报告 基于 tcp 协议 端口扫描 程序设计 12
限制150内