您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 基于WinPcap的网络嗅探器设计
网络124班张继杰2012008244261结课论文题目名称:端口扫描程序的设计和实现院系名称:计算机学院班级:网络124学号:201200824426学生姓名:张继杰授课教师:孙飞显2014年12月15网络124班张继杰2012008244262目录1引言.........................................................................................................................31.1课题的背景及意义......................................................................................31.2端口扫描现状..............................................................................................32系统设计.................................................................................................................32.1系统主要目标..............................................................................................32.2开发环境及工具..........................................................................................42.3功能模块与系统结构..................................................................................43系统功能程序设计.................................................................................................53.1、TCP端口扫描的工作原理:.........................................................................53.2TCP端口扫描的关键问题:.........................................................................63.3TCP端口扫描程序代码分析..........................................................................74设计步骤与实现......................................................................................................74.1使用vc++6.0创建一个工程..........................................................................74.2设计程序对话框...........................................................................................104.3在的初始化对话框函数OnInitDialog()中添加列表控件的初始化:.......114.4TCPconnect()扫描.......................................................................................134.4UDP扫描:......................................................................................................144.41UDP相关代码截图:........................................................................155运行结果...................................................................................................................16结论......................................................................................................................18参考文献......................................................................................................................18摘要计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现安全问题的重要手段之一。本程序是在Windows系统中使用C语言用MFC完成的一个端口扫描程序。此程序主要完成了TCPconnect()扫描和UDP扫描功能。TCP扫描支持多线程,能对单个指定的主机进行扫描或对指定网段内的主机进行逐个扫描。能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描。此端口扫描程序能快速地网络124班张继杰2012008244263进行TCP扫描,准确地检测出对TCP协议开放的端口。而对于UDP扫描只支持单线程,速度较慢。扫描结果以列表的形式直观地展现出来。关键词:端口扫描、TCP、UDP扫描1引言1.1课题的背景及意义网络中每台计算机犹如一座城堡,这些城堡中,有些是对外完全开放的,有些却是大门紧闭的。入侵者们是如何找到,并打开它们的城门呢?这些城门究竟通向何处?在网络中,把这些城堡的“城门”称之为计算机的“端口”。端口扫描是入侵者搜索信息的几种常用方法之一,也正是这一种方法最容易暴露入侵者的身份和意图。一般说来,扫描端口有以下目的:判断目标主机上开放了哪些服务判断目标主机的操作系统如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能使用相应的手段实现入侵。而如果管理员先掌握了这些端口服务的安全漏洞,就能采取有效的安全措施,防范相应的入侵。1.2端口扫描现状计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现安全问题的重要手段之一。一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息,从而发现目标机的某些内在的弱点。2系统设计2.1系统主要目标本程序主要实现了:简易的TCPconnect()扫描,支持多线程;网络124班张继杰2012008244264UDP扫描功能;能对单个指定的主机进行扫描或扫描指定网段内的主机;能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描;2.2开发环境及工具测试平台:WindowsXPProfessional使用软件:VisualC++6.0开发语言:C语言2.3功能模块与系统结构作为端口扫描程序,首先需要完成的功能就是对于系统操作系统的服务端口进行扫描,返回扫描结果。对于端口的扫描,包括对于本机系统服务端口,局域网内目标机系统,以及远程IP的系统服务端口进行扫描。有些时候,用户并不需要去扫描整个系统的所有端口,因为这样的话不仅会浪费大量的时间,而且可能导致难以找到自己需要了解的端口的扫描结果。所以,对于选择性地对端口进行扫描也非常重要。这当然也是扫描程序需要实现的功能之一。用户在等待扫描的时候,往往希望知道它的工作进度。这样用户可以更好地控制自己的操作。站在用户的角度思考,设置进度是程序需要完成的,这样就能知道程序扫描的进度。系统必须提供的服务是功能需求的基本,本着站在用户角度思考的原则,做出如上叙述需求,从简列举如下:扫描功能;地址选择功能;端口选择功能;端口扫描程序功能模块如下图所示:网络124班张继杰20120082442653系统功能程序设计本程序主要实现了简易的TCPconnect()扫描和UDP扫描功能,对TCP扫描支持多线程扫描,UDP扫描仅支持单线程。3.1、TCP端口扫描的工作原理:TCP服务的网络应用,可以实现顺序、无差错的数据流传输,在通信过程中首先需要建立连接。端口扫描程序所在的主机是客户机;被扫描的目的主机是服务器。图给出了TCP连接的建立过程。假设客户机向服务器发送SYN=1、ACK=0的TCP包,表示客户机请求与服务器建立连接;客户机向服务器返回SYN=1、ACK=1的TCP包,表示服务器同意与客户机建立连接;客户机再向服务器发送SYN=0、ACK=1的TCP包,表示客户机确认与服务器建立连接(即三次握手的过程)。计算机网络应用进程应用进程客户机服务器11SYN=1、ACK=0SYN=1、ACK=1SYN=0、ACK=1图1TCP建立连接的过程端口扫描系统操作显示设置地址设置端口设置协议开始扫描进度显示结果显示网络124班张继杰20120082442663.2TCP端口扫描的关键问题:TCP端口扫描采用的是Connect扫描,通过Connect系统调用尝试连接目的主机的端口。如果这次TCP连接成功建立,说明该端口处于开启状态;否则,说明该端口处于关闭状态。Connect扫描的最大优点是原理简单,不需要具有管理员或超级用户权限。首先,端口扫描程序调用socket()函数建立套接字,SOCK_STREAM表示流式套接字;其次,调用connect()函数请求与目的主机的指定端口建立连接;最后,根据TCP连接是否成功建立,判断目的主机中的端口状态。TCP端口扫描流程TCP端口扫描的流程如错误!未找到引用源。所示。开始初始化用户界面绑定Winsock库创建流式套接字连接目的主机TCP连接是否建立?断开TCP连接判断TCP端口状态释放流式套接字输出端口状态信息解除Winsock绑定结束YN图2网络124班张继杰2012008244267错误!未找到引用源。给出了TCP端口扫描程序流程图。第1步,客户机程序会初始化用户界面;第2步,客户机建立Winsock库绑定关系,并且创建流式或数据报套接字;第3步,客户机请求与目的主机的端口建立连接;第4步,客户机根据连接建立情况判断端口状态;第5步,客户机可能需要断开已经建立的连接;第6步,客户机释放流式或数据报套接字,并且解除|Winsock库绑定关系。3.3TCP端口扫描程序代码分析下面给出的是TCP端口扫描的代码://建立与Winsock库的绑定WSAStartup(MAKEWORD(2,2),&WSAData);//创建流式套接字Socket=socket(AF_INET,SdOCK_STREAM,0);//判断IP地址或主机名If(m_Address为IP地址)hostent*pHostent=gethostbyname(m_Address);//填充目的主机的套接字地址sockaddr_inDestHost;DestHost.sin_port=htons(m_Port);De
本文标题:基于WinPcap的网络嗅探器设计
链接地址:https://www.777doc.com/doc-3408836 .html