- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
端口扫描程序的设计与实现
摘 要
计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现安全问题的重要手段之一。
本程序是在Windows系统中使用C语言用MFC完成的一个端口扫描程序。此程序主要完成了TCP connect()扫描和UDP扫描功能。TCP扫描支持多线程,能对单个指定的主机进行扫描或对指定网段内的主机进行逐个扫描。能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描。此端口扫描程序能快速地进行TCP扫描,准确地检测出对TCP协议开放的端口。而对于UDP扫描只支持单线程,速度较慢。扫描结果以列表的形式直观地展现出来。
关键词:端口扫描、TCP扫描、UDP扫描、TCP多线程扫描
目 录
TOC \o 1-3 \h \z \u 1 引言 1
1.1 课题的背景及意义 1
1.2 端口扫描现状 1
2 系统设计 1
2.1 系统主要目标 1
2.2 开发环境及工具 1
2.3 功能模块与系统结构 2
3 系统功能程序设计 4
3.1 获取本机IP 4
3.2 分割字符串函数的实现 4
3.3 获取待扫描的IP地址 5
3.4 获取待扫描的端口号 5
3.4.1 指定端口号的初始化 6
3.4.2 指定端口号的保存 7
3.5 TCP connect() 扫描 8
3.5.1 基本原理 8
3.5.2 扫描多个主机多端口多线程的实现 8
3.5.3 扫描结果的显示 9
3.6 UDP扫描 10
3.6.1 基本原理 10
3.6.2 计算效验和 11
3.6.3 发送UDP数据包 11
3.6.4 接收ICMP数据包 12
4 测试报告 12
4.1 TCP扫描检测 12
4.1.1扫描本机 12
4.1.2扫描网络中其他主机 13
4.1.3 扫描IP段 13
4.2 UDP扫描检测 14
4.2.1 扫描本机 14
4.1.2扫描网络中其他主机 15
4.3 TCP、UDP一起扫描 16
结 论 17
参考文献 17
第 PAGE 17 页 共 17 页
引言
课题的背景及意义
网络中每台计算机犹如一座城堡,这些城堡中,有些是对外完全开放的,有些却是大门紧闭的。入侵者们是如何找到,并打开它们的城门呢?这些城门究竟通向何处?
在网络中,把这些城堡的“城门”称之为计算机的“端口”。端口扫描是入侵者搜索信息的几种常用方法之一,也正是这一种方法最容易暴露入侵者的身份和意图。一般说来,扫描端口有以下目的:
判断目标主机上开放了哪些服务
判断目标主机的操作系统
如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能使用相应的手段实现入侵。而如果管理员先掌握了这些端口服务的安全漏洞,就能采取有效的安全措施,防范相应的入侵。
端口扫描现状
计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现安全问题的重要手段之一。一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息,从而发现目标机的某些内在的弱点。
系统设计
系统主要目标
本程序主要实现了:
简易的TCP connect()扫描,支持多线程;
UDP扫描功能;
能对单个指定的主机进行扫描或扫描指定网段内的主机;
能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描;
开发环境及工具
测试平台:Windows XP Professional
使用软件:Visual C++ 6.0
开发语言:C语言
功能模块与系统结构
作为端口扫描程序,首先需要完成的功能就是对于系统操作系统的服务端口进行扫描,返回扫描结果。对于端口的扫描,包括对于本机系统服务端口,局域网内目标机系统,以及远程IP的系统服务端口进行扫描。
有些时候,用户并不需要去扫描整个系统的所有端口,因为这样的话不仅会浪费大量的时间,而且可能导致难以找到自己需要了解的端口的扫描结果。所以,对于选择性地对端口进行扫描也非常重要。这当然也是扫描程序需要实现的功能之一。
用户在等待扫描的时候,往往希望知道它的工作进度。这样用户可以更好地控制自己的操作。站在用户的角度思考,设
文档评论(0)