基于多线程的端口扫描程序详解.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
武汉理工大学 计算机网络课程论文 题目 作者 学院 专业 学号 指导教师 二〇年月日 武汉理工大学信息工程学院课程论文诚信声明 本人声明:所呈交的,是本人在指导老师的指导下,独立开展工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本不含任何其他个人或集体已经发表或创作过的作品成果。对本文工作做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 本科作者签名: 二○年月日 质量评价指标(在相应栏目打√) 评 价 项 目 论文与设计评价质量 按对应项目打分 工作量和态度(10分) 分析问题能力(10分) 解决问题能力(10分) 内容完整层次分明(10分) 设计、实验正确性(10分) 书写规范(10分) 流程图或拓扑图(10分) 论证充分(10分) 测试结果情况(10分) 总体评价(10分) 评定成绩(100分制) 指导教师签名 年 月 日 一、课题背景 随着Internet的不断发展,信息技术已成为促进经济发展、社会进步的巨大推动力。端口扫描技术是网络安全扫描技术一个重要的网络安全技术。与防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。安全扫描是安全技术领域中重要的一类。通过扫描能自动检测远端或本地主机系统信息,包括主机的基本信息(如计算机名、域名、组名、操作系统型等)、服务信息、用户信息以及漏洞信息,它的重要性在于能够对网络进行安全评估,及时发现安全隐患,防患于未然。 网络的安全状况取决于网络中最薄弱的环节,任何疏忽都有可能引入不安全的因素,最有效的方法是定期对网络系统进行安全分析,及时发现并修正存在的脆弱,保证系统安全。 国外安全扫描技术的历史可以追溯到20世纪90年代,当时因特网刚刚起步,但是在过去的十年内,扫描技术飞速发展,迄今为止,其扫描技术已经非常完善,但是在全面性,隐蔽性和智能性上还有待提高。安全扫描从最初专门为UNIX系统而编写的一些只有简单功能的小程序发展到现在,已经出现了可以运行多个操作系统平台上的,具有复杂功能的系统程序。 国内的扫描技术是在国外的扫描器基础上发展起来的。其中有一些专门从事安全技术的公司。这些公司的扫描器以硬件为主,其特点是执行速度快,不像软件一样受到安装主机系统的限制。然而对于更多的基于主机的端口扫描而言,简单,实用,可靠才是它们的长处。 二、设计理念 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程. 端口扫描的原理其实非常简单,只是简单的利用VC++提供库函数Socket进行调用,与每一个感兴趣的目标计算机的端口进行连接。如果对方端口处于监听状态,那么连接就能成功。否则,这个端口不能用,既没有提供服务。这个技术的一个最大的优点是,不需要任何权限,系统中的任何用户都有权利使用这个调用。? 引入多线程机制,利用多线程扫描的好处就是速度快,如果对每个目标端口以线性的方式使用单独的连接调用,那么将会花费相当长的时间。多线程同时打开多个套接字,从而加速扫描。在本设计中用户可以自定义线程的个数。此处用户还可以自定义扫描方式。 用VC++6.0开发多线程应用程序有两种方法,一种是利用Win32API函数,它的特点是代码小巧,执行效率高,但开发难度大;另一种是利用MFC类库,它的特点是开发方便,但代码庞大。下面,以端口扫描程序为例,介绍利用目前较流行MFC类库进行多线程应用程序的开发方法。 三、过程论述 1.过程流程图 图1过程流程图 2.程序设计过程 (一)MFC多线程的类型 MFC区分两种类型的线程:用户界面线程(user2interfacethreads)和工作者线程(workerthreads)。用户界面线程通常用来处理用户的输入并响应各种事件和消息。工作者线程通常用来完成程序的后台处理任务,比如计算、调度、后台打印等,没有消息机制,不需要与用户交互。这两种线程类都是从CWinThread类派生而来的,不同的是,工作者线程不 用从CwinThread类派生来创建,而由函数AfxBe2ginThread()自动创建。 (二)用户界面线程的创建 首先,从CWin Thread类派生出自己的线程类,必须确保用DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE对

文档评论(0)

boss + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档