




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国矿业大学 2007 届本科生毕业设计(论文) 第 1 页 1 绪论 文课题概述 题背景 在信息化日益高涨的今天,网络已经深深地融入了我们的生活,成为我们生活中不可或缺的一部分。它方便了人与人之间的交流,缩短了人与人之间的距离。然而它在带给我们便捷的同时,也为我们带来了信息安全的隐患。一起又一起的黑客利用系统漏洞攻击系统,获取个人重要信息的案件,无不令人对网络安全问题深表担忧,网络安全问题再次成为人们注目的焦点。 有备方能无患。人们可以主动通过扫描来对计算机系统或者其他网络设备 进行 安全相关的检测,以找出安全隐患和可以被黑客利用的漏洞,所以扫描 是 保证系统和网络安全必不可少的手段; 通过监听网卡,了解数据流向,为系统和网络安全又加上了一把锁。 题目的和意义 本课题最终成果是完成一个基于局域网的扫描 和监听 系统。该系统可以发现网络 上 的主机和主机开放的端口,进而获取到网络上主机的主机名, 户名等有效信息 以及 系统开放的服务 ,还可以监听流经本地网卡的数据包,并进行相关的分析 。通过这些 手段 , 能够 间接地,直观地了 解到 网络主机所存在的安全问题。 利用本系统可以扫描出主机 所 开放的服务,关闭其中一些有安全隐患的服务,可以预防漏洞为黑客所利用。 而 网络监听又可以监测本地主机是否向未知远程主机发送数据,为信息安全提供进一步的保障。 此外,通过编写此系统,我又进一步熟悉了网络体系结构, 练掌握了 程, 程,多线程编程,掌握了利用 进行网络 开发 的过程和步骤,为今后从事软件行业奠定了基础。 文内容概述 论文主要论述局域网扫描 和监听 的相关的理论知识,工作原理,编程思路,以及具体实现细节。当实现同一种功能有多种方法时,对这些方法进行了比较,并说明选用该方法的理由。论文分以下几个部分:第一部分是简要介绍所选 课题;第二部分是系统可行性研究;第三部分是论文所用到的一些理论知识概述;第四部分是系统概要设计;第五部分是系统详细设计;第六部分是系统测试和实现。 最后对系统的设计进行了总结。英文翻译 、参考文献和 致谢词是整个论文的结束。 中国矿业大学 2007 届本科生毕业设计(论文) 第 2 页 2 系统可行性研究 统可行性分析 可行性分析 1包括两个部分 :分析建立新系统的必要性和可能性。分析建立系统的必要性时要注意用户提出的理由是否充分和合理。分析建立系统的可能性主要包括经济可行性、技术可行性和运营可行性 等 。 统设计的必要性 现代社会网络已经成为 我们生活中的一部分,我们利用网络浏览、查询信息,娱乐休闲,进行电子商务等。网络联系了你我他,它在方便我们的同时,也带来了信息安全的问题,个人、企业敏感信息大量泄露。因此,如何有效保护私有数据,保护系统安全成为人们关心的问题。本论文结合局域网扫描 和监听 的原理,利用 工具编写一个扫描 监听 系统,不仅实现了扫描主机安全的目的,而且锻炼了自己的编程和动手能力,更重要的是有自己学习的满足感 ,及由此而带来的成就感 。想象一下用自己 写 的系统来进行网络主机扫描和端口扫描 及局域网监听 ,该是一件多么得意和自豪的事情:程序运行 的背后自己清清楚楚, 即使系统 有问题发生时,也知道问题的 根 源 所在 。 此外,毕业设计也是大学生在校的一个必修环节,所以 无论从主观上还是客观上,设计此系统都是必要的。 计系统的可行性 分析建立系统的可行性包括经济可行性、技术可行性和运营可行性 ,法律可行性 。 经济可行性:与请求别人帮助设计相比,省去一笔费用 和沟通时间 。 技术可行性: 使用 +作为开发工具,利用 于高效开发 档 /视结构轻松处理和更新数据 。 在此集成开 发环境下,开发 运营可行性 : 此扫描系统软件可以用于商业销售,为作者赢取部分收入。 法律可行性: 此局域网扫描 和监听 系统是 应毕业设计的要求而开发的,以后也只是用于 个人或 正当的商业活动, 不会 触犯法律。 经分析,本系统 是 可以进行开发 和研究的 。 中国矿业大学 2007 届本科生毕业设计(论文) 第 3 页 3 相关理论和技术 络协议 议 协议 (传输控制协议,它为网络应用程序提供面向连接的可靠的传输服务,工作在网络体系结构中的传输层。 数据传输之前首先要利用三步握手协议建立连接,并且提供了分组编号,数据校验和重传机制,确保数据传输的正确无误。 议 协议 (用户数据报协议,它为网络应用程序提供无连接的数据传输服务,和 工作在网络体系结构的传输层。 数据传输之前不需要建立连接,数据准备好就直接发送出去,不能保证分组准确到达目的地。然而由于没有三步握手和数据重传操作,传输 比较方便 。 P 协议 互联网协议,它被用于异构网络的互联,是各种各样种类繁多的网络的粘合剂,工作在网络体系结构的网络层,为传输层提供独立于网路的分组路由服务。每一台连在网络上的主机都 会 分配到一个 以在网络上标识这台主机。 议 协议 (互联网控制报文协议。是 议的附属协议,主要负责在主机之间,主机与路由器之间传递差错信息或者其它需要需要注意的信息。 明 对于从源主机将数据传输到目的主机 来说, 址和物理地址是必需的。但是数据到达目的主机并不是在互联网上通信的目的。互联网上数据通信的最终目的是提供端到端的数据传输,即使一台主机上的某个进程能够和另一台主机上的某个进程进行通信。然而主机上通常有很多网络应用进程,怎样去区别呢?传输层提供了一种方法:凡是利用传输层进行通信的进程都被唯一地分配了一个 16位的标识,称为端口号 (这样,借助于 可以在网络上唯一地表示一个进程了,进而完成进程之间的通信。所以,一个端口就是一个潜在的通信通道,也是一个潜在的入侵通道,对目标计算 机进行端口扫描可以得到许多有用的信息。 中国矿业大学 2007 届本科生毕业设计(论文) 第 4 页 接字 接字概述 网络层为我们提供分组路由服务,传输层为我们提供数据传输服务,那么我们怎样在应用程序中利用这些服务呢?答案是使用套接字 4。 套接字是一种网络编程界面,它方便了我们使用网络传输服务,为我们进行基于网络的应用开发提供了一整套编程接口。套接字是网络的基本构件,是 可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连的 监 听进程。套接字存在 于 通信区域(通信区域又称地址簇)中。套接字只与同一区域中的套接字 交换数据(跨区域时,需要执行某和转换进程才能实现)。 其一它是由操作系统或外部过程提供的一组网络编程接口函数,是被广泛接受的网络编程方法; 其二它表示一种网络参数,通常将 址和网络应用端口的结合称作口)。 础 接字 )是在 的一套开放的、支持多种 网络 协议的、二进制兼容的网络编程接口规范。 写 为 的目的是 抽象隐藏网络底层细节,它独立于底层的协议,编程人员无需精通网络和协议的细节,即可实现网络编程。使用 每个 有一个类型,它是根据用户可见的通信特征进行描述的。一般应用程序只在同一类套接字间通信。不过只要它依据的协议支持,也完全可以在不同类型的套接字间通信。 在 支持两种 型 : # 1 /* # 2 /* (流套接字 )和 据报套接字 )。 (1) 流 式 套接字 (它适用于没有记录边界的字节数据流,保证分组投递 (顺序正确并且没有重复分组。 一般用于 (2) 数据报套接字 (它支持面向记录的数据流,但不保证分组投递、不保证顺序、可能有重 中国矿业大学 2007 届本科生毕业设计(论文) 第 5 页 复分 组。 一般用于 在 # 3 /* ,从而可以对感兴趣的数据做出自己的处理,或者自己构造原始数据包发送到网络上。在本系统程序中就利用 创建原始套接字,以实现对局域网的监听。 关于进程是如何利用套接字进行通信的,见图 图 接字的使用 络字节顺序 数据在网络上的传输采取网络字节顺序,即高位先存的顺序。这与某些数据存储顺序是不一致的,如 列的 取的是低位先存方法。由于这种不一致,所以我们需要进行字节顺序转换。 任何从 数的 址和端口号均是按照网络 字节 顺序组织的。 准是 节顺序模型 (P 协议中使用高价先存格式 ),并且提供了与 其它字节顺序进行转换的函数, , , , 。 进程 1 进程 2 网络编程界面 如 络通信协议服务界面如 P 操作系统 物理介质 中国矿业大学 2007 届本科生毕业设计(论文) 第 6 页 络地址结构 网络地址结构 (字节顺序全为网络字节顺序 )定义为: 14;/地址信息 ; 在 址族中, 用 构来 代替 指定 本地地址和与之建立 接的远程端点地址。这是 址族中的用法,而且 以强制转换为 址结构 )。 结构定义如下: ;/端口 8;/填 充项 ,使得该地址结构和 大小相同。这些字节没有用到,必须全置为零。 ; 其中 须为 告知 时正在使用 端口号; 构将一个 定义采用 式, 每个域表示这四个字节的一种划分(一个 32 位数、两个 16 位数或四个 8 位数) ; 当填充项的功能, 目的是 使 得 机扫描的 原理 主机扫描 5的目的是为了探测主机的活性 , 即探测主机是否在进行 网络活动。我们可以利用 函数向目标主机 137端口发送信息,然后用 函数接受返回的信息判断目标主机是否具有活性,并且利用返回数据解析出目标主机的相关信息。 137 端口主要用于“ (称服务 ),属于 描程序通过向局域网或者互联网上的某台计算机的 137端 口 中国矿业大学 2007 届本科生毕业设计(论文) 第 7 页 发送一个请求,就可以获取该计算机的名称、注册用户名,以及是否安装主域控制器、 否正在运行等信息。因为是 口,所以对于攻击者来说,通过发送请求很容易就获得目标计算机的相关信息,有些信息是直接可以被利用的并被用于分析漏洞的,比如 外,通过捕获正在利用137 端口进行通信的信息包,还可能得到目标主机启动和关闭的时间。有了这些信息,再利用专门的的工具就可以进行攻击了。 当用 函数发送数据时,若无错误发生时,返回发送数据的总字节数,否则的话,函数返回 用 函数执行成功, 架会自动调用 函数去接收从目标主机发回的数据,我们就可以对接收的数据进行分析了。然而由于采用的是 能保证 函数发送的数据总能到达目标主机,这也是为什么每次扫描得到的结果可能不一样的原因。 口扫描原理 端口扫描 5的目的是发现主机上运行了哪些服务,不同的服务对应了不同的网络应用程序。 用的是 P 协议族, 过应用程序的端口号来区分应用层的协议。一台计算机可以设置 很多网络服务程序,每个网络应用程序实际上对应了相同的 不同的端口。通过程序不断的扫描同一 的不同端口,然后根据这个端口的返回信息,进行 数据分析,这就是端口扫描。 用的端口扫描技术 (1) 扫描 这是最基本的 描。操作系统提供的 系统调用,可以用来与每一个感兴趣的计算机端口进行连接。如果端口处于侦听状态,则调用就能成功。否则,这个端口是不能用的,即没有提供服务。用此扫描方式的最大优点是,用户不需要任何权限,系统中的任何权限 都有权利用这个系统调用。另一个好处是此扫描方式的速度较快。如果对一台目标主机以线性方式扫描端口,即单独使用 调用,将会导致较长的扫描时间。用户可以同时打开多个套接字,使用多线程同时进行多个连接,以提高扫描速度,在本系统中就是采用这样的设计。但是这种方法的缺点是很容易被发觉的,系统中的日志文件会显示一连串的连接和连接出错的信息,很快就会被扫描的主机关闭。 (2) 描 这种扫描方式属于“半开放”扫描,因为扫描程序不必要打开一个完全的 描程序发送的是一个 象一下 中国矿业大学 2007 届本科生毕业设计(论文) 第 8 页 协议,这好像准备打开一个连接并等待回应一样。一个 返回信息表示端口处于侦听状态。一个 示端口没有处于侦听状态。如果目标端口处于监听状态,则扫描程序会收到一个 须 再 发送一个号,来关闭这个连接过程。其优点是在于扫描比较隐蔽,一般不会在目标主机上留下记录,但这种方法有个缺点是,对权限的要求比较高 ,需要获得相应的权限 。 (3) 描 对于 些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能够监测到这些扫描。相反, 据包可能会没有任何麻烦地通过。其扫描的思想是 主机中 关闭的端口会用适当的 因为本来就没有建立连接。 然而打开的端口会忽略对 但是这种方法 和 操作 系统的实现有一定的关系,有的系统不管端口是否打开,都回复 据包,此时扫描就失效了。 说明: 这些标记位做了标记的数据包就相应地称为 据包, 据包, 据包。它们是 以建立连接 和撤消连接 。 CP 扫描 过程 在本论文设计和实现的端口扫描系统中,采用了 扫描技术。因此有必要再详细讨论一下其扫描过程。 向连接 (特性,为端口的扫描提供了基础。 我们 知道, 立连接 是通过三步握手来实现的。 先是 发起连接请求一 端往 目标主机 某端口发送请求连接的 , 目标主机的 该端口如果允许连接,会给 请求 端发一个 据包 , 请求 端收到 目标主机 的 再给 目标 端 口 发一个 据包 , 接正式建立。基于连接的建立过程,可以想到,假如要扫描某一个 就 可以往该端口发一个果该端口处于打开状态,我们就可以收到一个 也就是说,如果收到 就可以判断目标 主机该端口处于 打开状态,否则,目标端口处于关闭状态。 以上就是 扫描的过程,是基于三步握手协议的,是不难理解和实现的。 择 扫描 的理由 我们可以看到,实现端口扫描有很多方法的,而且有的方法还是相当隐蔽的。之所以在诸多方法中选择 扫描方法,基于以下理由: 首先, 扫描利用系统的 调用,调用简单且易于 中国矿业大学 2007 届本科生毕业设计(论文) 第 9 页 实现,并且不受系统权限的限制,用户以任何身份都可以利用此调用。 其次,相比于其它几种扫描方法, 扫描速度还是较快的。而且再加上多线程技术的支持,可以大幅度提高扫描效率。 最后,尽管 扫描不够隐秘, 然而对于一般的正当的应用还是能够胜任的。 域网监听的原理 网络 监听 5也是一把双刃剑,黑客可以利用它来进行非法的信息获取,网络管理人员可以用它来监视网络的状态,数据流动情 况及网络上传输的信息等。如果网络上传输的信息没有经过加密的话,那么只需要将网络接口设置为监听模式,就可以很容易地获取到 传输信息。 域网的工作方式 根据 描述,局域网技术是“把分散在一个建筑物或相邻几个建筑物中的计算机、终端、显示器、以及为连接其它网络设备而使用的网络连接器等相互连接起来,以很高的速度进行通信的手段”。所以局域网具有设备共享,信息共享等特点。局域网的拓扑结构一般可以采用总线型、环形、树形等。其中总线型结构易于扩充,使用较为普遍。 局域网中大部分都是使用基于以太网的协议,即 D 协议。该协议工作方式如下:将要发送的数据包发往连接在一起的所有主机,包中含有目标主机的地址,注意这里 址是不被识别的,而是采用 址,因为是工作在数据链路层。只有与数据包中的 目标地址相同的主机才能接收数据,其它主机仅仅简单将该包丢弃即可。 局域网中数据传输的 具体 过程是:包含物理地址的帧从网络接口 (网卡 )发送到物理线路上,如果局域网是总线型的,那么数字信号在电缆上传输,能够到达线路上的每一台主机。当数字信号到达一台主机的网络接口时,正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携 带的物理地址是自己的或者是广播地址,则将数据帧交给上层协议软件,也即是 软件,否则就将这个帧丢弃,对于每一个到达网卡的数据帧,都进行类似的处理。 听的原理 从上面局域网的工作方式和数据传输过程可以看出,物理线路上的每一个数据帧都是会到达连在一起的每台主机上的。如果网卡能够对每一个帧进行处理的而不是将其中一些丢弃的话,则就实现了网络监听。事实上,网卡提供了这样的一种工作方式:混杂模式。 在混杂模式下,网卡将不会丢弃任何它接收到的数据,不管数据是否是传给它的,所有的数据帧都被交给上层 中国矿业大学 2007 届本科生毕业设计(论文) 第 10 页 协议软件处理 。借助于 接字,我们可以很方便地使网卡工作在这种状态。然而,接收数据包仅是监听的第一步,关键是对数据包的分析,如何从数据包中解析中有用的信息,在详细设计中讲具体讨论这些。 据库编程 常见的 据库管理系统 )有 中的前三个都是属于大型数据库管理系统,用于大量数据的管理,以在本扫描系统的实现中选用了与 然而,要是应用程序中直接与 交道,将会面 临数据库类型的多样性所导致的编程的繁琐。面对不同类型的数据库,微软提供了 据库接口,用来以一种统一的方式处理与所有的数据库的连接。这里我们就要用 据库建立连接 使用 图 问数据库 应用程序要访问一个数据库,首先必须用 理器根据数据源提供的数据库位置、数据库类型及 动程序等信息,建立起 具体数据库的联系。这样,只要应用程序将数据源名提供给 中国矿业大学 2007 届本科生毕业设计(论文) 第 11 页 在 , 能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对 调用传递给正确的驱动程序,而驱动程 序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。 由于是采用 在 行了封装,提供了简化的调用接口,从而大大方便了数据库应用程序的开发。程序员不必了解 现 细节,利用 关的 类即可完成对数据库的 大部分操作 。 线程编程 些概念 进程。进程是操作系统分配资源的基本单位,是程序运行的一个实例,它是动态的。每个进程都在各自的私有地址空间中运行,进程之间是不能直接进行通信的。 线程。线程是操作系统分配 源的基本单位,即是系统中最小的执行单元。线程运行于进程空间之中,一个进程中可以有多个线程,且共享进程地址空间,所以线程之间的通信是比较方便的。然而也正是这种便捷,再加上线程的并发运行,使得线程之间的互斥成为必要。 进程只是线程的容器,是线程执行的环境。它本身是不活泼的,它必须有一 个在它的环境中运行的线程,此线程执行进程地址空间中的代码。 程互斥 线程由于共享进程地址空间,从而共享进程资源,对于一些资源,一次只能有一个线程进行访问,称为临界资源。多线程编程带来的一个问题是线程调度的随机性,执行顺序的不确定性。所以为了保证线程之间协调工作,必须采用线程互斥 11技术。 常用的线程互斥手段有以下几种: (1) 关键代码段 用 户方式下的一种互斥手段。 关键代码段是指这样一段代码,它可以在代码执行前,独占对某 种 资源的访问权 ,即使用资源之前对资源上锁,使用完毕后再对资源解锁,释 放资源的使用权 。这是能让 多个线程 能够“以原子方式”来使用资源的一种方法。 (2)互斥对象 互斥对象属于内核对象的一种。它能够确保线程拥有对单个资源的互斥访问权。它包含一个使用计数器,一个线程 于标识系统中的哪个线程当前拥有互斥对象,计数器用于说明该线程拥有互斥对象的次数。 中国矿业大学 2007 届本科生毕业设计(论文) 第 12 页 首先创建一个互斥对象,然后去申请互斥对象,申请到之后,线程就可以继续运行下去,否则线程就会被阻塞,最后拥有者线程释放互斥对象。 (3) 事件对象 事件对象也是一种内核对象。 它包含引用计数,一个用于指定该事件是自动重置还是人工重 置事件的布尔值,另一个用于指明该事件是处于未通知还是已通知状态。 事件能够通知一个操作已完成。有两种 类型 事件,一种是人工重置事件,一种是自动重置事件 。 当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程。当一个自动重置的事件得到通知时,等待该事件的线程中只有一个线程变为可调度线程 。 一般情况下, 当一个线程执行初始化操作,然后通知另一个线程执行剩余的操作时,事件 对象 使用得最多。 借助于操作系统提供的 以很易地改变事件对象的状态。它的使用方法和互斥对象类似。 程 本论文设计的 局域网扫描系统采用的编程工具是 于 软基础类库 )实现。 +中类的对象,它内部封装了 装了种类繁多的资源句柄。使用 象进行编程,就像使用 C+对象进行编程一样自然,利用面向对象的编程方法,无须为各种句柄所困扰。 源编辑器为我们提供 形用户界面 )设计,这些使得定制一个应用程序外观更为容易。 得我们的主要精力集中于事务逻辑控制上,消息响应函数的编写上。文档 /视结构把数据和数据操作分离,使得我们处理数据更加方便。整个 们只需要按照需要进行添加 或者 修改代码即可。 消息是 程中一个重要的概念。程序运行起来之后,就处于消息循环之中,不断地接收消息,响应消息。消息一般可分为标准消息、命令消息、控件通知消息,而且在 行添加消息映射,这就极大地提高了编程的灵活性。在做这个扫描和监听程序时,就自定义了许多消息,以协调程序的运行。 正是由于 以上特性,为我们快速开发应用程序提供了可能, 所以选择了 为软件开发平台。 中国矿业大学 2007 届本科生毕业设计(论文) 第 13 页 4 概要设计 序框架 局域网扫描和监听程序主要要实现三个功能:主机扫描,即发现网络上一台主机的能力;端口扫描,即发现指定主机上开放哪些服务的能力;局域网 监听, 即监听流经本地网卡的数据包,并进行相应的分析 。这里有两种实现方案。一种是功能分开,用 三个独立的 程序分别去实现 三个 功能;另一种是功能集成,即在一个程序中同时提供这 三种 功能。 考虑到这 些 功能 之间 的相关性,主机扫描之后的结果可用于端口扫描,且集成到一起也方便使用,我将 三 者做到了一个程序中。具体思想是: 分 别设计了 三 个用户界面,一个用于扫描主机,一个用于扫描端口 ,第三个用于局域网监听 。 三个 界面之间可以进行切换,当其中一个界面显示时,另 外两个就会隐藏,从而使用户能与 三 个界面都能够交互。并且,由于采用了多线程,主机扫描 、 端口扫描 及网络监听还可以同时进行而不相冲突,这也是此系统的一大特色。 扫描主机的界面采用了文档 /视结构,目的是利用其产生的菜单和工具栏、状态栏,提供交互的命令。扫描端口的界面是基于对话框的, 网络监听的界面也是基于对话框的, 但是在实现后我又添加了菜单、工具栏和状态栏,还增加了对相关的界面元素状态的控 制 (对话框中, 命令自动更新机 机制是不工作的 ), 目的是学习如何在应用程序中添加 和使用 这些界面元素。之所以采用这样的设计,是为了既能达到 完成 系统 功能 的目的,又能学习更多的 编程 知识 ,积累编程的经验 。 统软件结构 统一级层次图 图 统功能 切换扫描与监听系统 主机扫描 端口扫描 动态图标 信息提示 最小化到托盘 超链接 网络监听 切换 中国矿业大学 2007 届本科生毕业设计(论文) 第 14 页 统 二 级层次图 图 机扫描 图 口扫描 端口扫描 获取设置多线程 开始扫描 停止扫描 显示扫描结果 进度指示 数据库连接 保存扫描结果 切换到主机扫描 获取起止机扫描 设置超时间隔 开始扫描 停止扫描 显示扫描结果 保存扫描结果 侦测切换到端口扫描 切换到网络监听 中国矿业大学 2007 届本科生毕业设计(论文) 第 15 页 图 络监听 统分流 程图 系统分流程图中,分别绘制了主机扫描,端口扫描和网络监听的 概要 流程图。 但没有包含 其下的各 子功能的具体实现流程,这些细节将会在详细设计中予以描述,并 绘 出 进一步的流程。系统分流程图基于各子模块要实现的功能,并且将这些模块再进一步细化, 即采用了“自顶向下,逐步求精”的软件设计思路。 当然,由于本系统所要实现的功能比较多,而且各功能之下又细化为许多,所以若是全然绘出,势必会比较臃肿, 因此这里只是绘出关键性的环节, 简略地阐述了系统实现的过程。 机扫描概要流程 如图 网络监听 选择监听协议 过滤址 过滤端口 过滤敏感字符 解析数据 显示监听结果 保存监听结果 开始监听 切换到主机扫描 停止监听 用户界面更新 中国矿业大学 2007 届本科生毕业设计(论文) 第 16 页 图 Y N 扫描主机? 开始扫描 开始 扫描主机? 输入起止 描端口 显示结果 N Y 保存否? 保存结果 N Y 结束否? Y N 扫描端口? Y 扫描端口 N 网络监听 ? Y 监听网络 结束 N 停止否?网络监听网络监听 中国矿业大学 2007 届本科生毕业设计(论文) 第 17 页 口扫描概要流程 如图 图 口扫描概要流程 退出查询 开始 扫描端口? 扫描主机 N Y 输入 址 输入端口范围 开启多线程 开始扫描 停止扫描? 显示结果 N 保存结果? Y 保存结果 Y 查询数据库? Y 端口信息 结束否? N Y 结束 扫描主机? Y 扫描主机 N N N 中国矿业大学 2007 届本科生毕业设计(论文) 第 18 页 络监听概要流程 如图 图 络监听概要流程 结束否? 开始 监听网络? 扫描主机 N Y 选择协议 填写过滤 写过滤端口 开始监听 停止监听? 显示结果 N 保存结果? Y 保存结果 N Y 结束 扫描主机? Y 扫描主机 N N 创建监听线程 停止监听? 接收数据包 解析数据包 N 终止监听线程 Y Y 中国矿业大学 2007 届本科生毕业设计(论文) 第 19 页 据库的设计 之所以选择 为系统的后台数据库 ,一方面由于它 良好的性能、稳定性、便于管 理和易于开发等优势, 另一方面是由此系统所用数据量不大,数据表结构简单。 本系统中,数据库仅用于存储端口相关说明信息, 数据 表只有两个属性:端口号和端口描述信息,端口号为主属性。系统完成端口扫描后,可以根据需要到数据库中查询某个端口的信息,此时将进行数据库连接和查询, 检 索操作。 中国矿业大学 2007 届本科生毕业设计(论文) 第 20 页 5 系统详细设计 在详细设计中,将会细致地讨论系统的实现细节、编程中遇到的问题及解决方法,以及多种解决方案中选择某种方案的理由。此外,本部分中还将进一步论述第三部分,第四部分所涉及到的理论和技术。 首先,在 新建一个工 程,命名为 P 扫描 )。选择单文档结构,视类从 面分述: 统实现中用到的类 用程序类 档类,用于数据的存储和加载。 类,用于对数据进行操作。这里选择了从 继承,是为了利用其可以作为容器的功能。提供了主机扫描的界面。 成。应用程序框架类,表示应用程序框架窗口。 自定义 的类。继承于 ,用来管理端口扫描界面的对话框资源。 自定义 的类。继承于 来管理网络监听界面的对话框资源。 自定义 的类。派生于 ,借助于此类中的 函数来发送消息,且在该类中还重载了 函数,用来接收返回的消息,并可以添加自己的处理代码。 自定义 的类。继承于 为一个记录集,用来保存从数据库中返回的结果,以供查询和检索 使用。 在建立记录集时,可用利用 中的成员函数,结合 一些参数构造一个 用查询的结果创建记录集 。 添加 的类。该类的主要功能是提供文字超链接,在本程序的关于对话框中,我使用了此类。可以链接到我的邮箱和个人主页。 自定义 的结构。该结构主要用于端口扫描中保存一些输入信息,如 口号等。定义如下: 中国矿业大学 2007 届本科生毕业设计(论文) 第 21 页 ;/扫描起 始端口 ;/为 口 扫描线程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康社会课课件视频下载
- 张家界市重点中学2025届物理高二第二学期期末教学质量检测试题含解析
- 鼻窥镜项目可行性研究报告
- 葛洲坝集团退休管理办法
- 虹口区冷冻仓库管理办法
- 融资性担保管理暂行办法
- 街道志愿服务站管理办法
- 裕安区健身设施管理办法
- 西安市雨水泵站管理办法
- 证券经纪业务管理办法
- 商业租户招商营运一户一档移交资料清单
- 废弃物分类、清运、处理流程图
- 电白局设备采购4开标过程评标报告
- 比和比例综合练习题及答案-
- 小学古诗词大赛-九宫格练习课件
- 医院(诊所)门诊病人登记簿表格模板
- 有限空间外包作业管理制度管理办法
- 10kV电气试验方案
- (高清正版)T-CAGHP 021—2018泥石流防治工程设计规范(试行)
- 鼎力软件操作鼎立pilot navig操作手册
- 国际篮球联合会(FIBA)标准篮球记录表.xls
评论
0/150
提交评论