ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:243.95KB ,
资源ID:13478313      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13478313.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(本地监听与远程端口扫描的设计与开发文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

本地监听与远程端口扫描的设计与开发文档格式.docx

1、1引言1.1课题背景互联网与生俱有的开放性、交互性和分散性特征使人类所憧憬的信息共享、开放、灵活和快速等需求得到满足。网络环境为信息共享、信息交流、信息服务创造了理想空间,网络技术的迅速发展和广泛应用,为人类社会的进步提供了巨大推动力。然而,正是由于互联网的特性,产生了许多安全问题。本地监听与远程端口扫描统互相配合,能够有效提高网络的安全性。通过对计算机的扫描,管理员可以了解主机的安全配置和运行的进程,及时发现安全漏洞,客观评估本地主机的风险性。管理员根据扫描和监听的结果,对存在的漏洞进行重新修复。在黑客进行攻击前防范。如果防火墙和网络监控是被动的防御手段,那么本地监听和远程端口扫描则是主动防

2、御手段,可以有效阻止黑客的攻击,做到防患于未然。1.2 课题研究意义网络中的每一台计算机如同一座城堡,在这些城堡中,有的对外完全开放,有的却是紧锁城门。入侵者们是如何找到,打开城门的呢?这些城门究竟通往何处呢?在网络技术中,把这些城堡的“城门“称之为计算机的端口,端口扫描是入侵者搜集信息的常用手法之一。扫描端口的目的如下:判断目标主机上开放了那些端口。判断目标主机的这些端口进行什么服务。掌握了这些信息后,入侵者能够使用相应的手段实现入侵。本程序即可以对本机正在运行的进程进行监听,并对自身的主机扫描,对结果进行分析,找出漏洞,从而为之后的重新配置做好准备。利用平时所学的知识,将这个程序的各个功能

3、实现。通过实践也可以进一步把所学的东西掌握牢固,找出其中不足的地方,在今后的学习生活中一步步的完善。1.3 与以往的程序的区别本程序与以往的程序的最大的区别主要是该程序是使用Java语言编译的。而决大部分该类似程序都是运用VB或者VC语言编写的。而用平时自己自学的Java语言编写该程序对自身来说是一个挑战,也是检验知识掌握程度的一件工作。对于选择Java编译,主要是它有以下一些优点:1)面向对象性:面向对象是Java 最重要的特性。跟新一代程序设计语言相比,Java的面向对象性更加彻底,所有的Java 小程序和applet均是对象,其封装性实现了模块化和信息隐藏,继承性实现了代码的复用,使用户

4、可以建立自己的类库。 2)平台无关性:Java的编译程序生成一种高级的、与机器独立的“机器码”(字节代码)它是针对由 Java解释程序和运行时系统实现的虚拟机器而生成的,可以在任何支持 Java解释器的操作系统平台上运行。因此,如果软件开发人员采用 Java,就没有必要为不同平台编写、编译并测试代码,从而可以大大节省开销;同样,用户在考虑购置字处理和出版软件时,也不必考虑软件制造商提供了什么支持环境。3)简洁性:Java是一种面向对象的高级程序设计语言,它特别注重简洁性 ,这个原则在电脑界被称为 KISS(Keep It Small and Simple)。它没有预处理程序、# define及

5、相关的成份、首部(header)文件,且 Java中无危险的指针运算,既减少了程序的复杂性,又增加了安全性。 Java语言与 C+ + /C有许多相似之处,但却比 C+ + /C简单得多,不但易读易懂,而且代码的修改和重用也很容易;Java语言无结构( structure)和联合( Union)这样的复杂数据类型,可以利用类的实例变量达到同样的效果;Java语言也没有函数 (function),函数的功能可以通过定义一个类及为这个类建立方法来实现。4)可移植性:序被编译后生成的并不是机器代码,而是生成字节代码 (Byte Code)。字节代码是以 Java虚拟环境(Java Virtual M

6、achine)为基础的,Java对每一个可能和系统软硬件相关的部分都作了明确的定义,这就消除了C+/C语言中数据类型的不确定性(例如整数类型 int在不同的系统中可能会有16bit,32bit或64bit等不同的长度)。Java语言环境本身也容易移植到新的体系结构和操作系统 ,其编译程序也是用 Java语言编写的,它运行时的系统是用 ANSI C编写的,带有清晰的可移植边界。5)安全性:Java语言摒弃了C+/C中大量过于复杂、容易导致编程错误和影响系统安全的部分,例如不再支持在C+/C中常用的指针操作、内存动态( malloc和 free)分配等功能。 Java程序在执行时会对自身作严格的检

7、查以防止任何非法的修改,因而它具有良好的防病毒和防止网络非法入侵的能力。2 基本理论2.1 TCP/IP协议和IP地址进入Internet联结的计算机必须根据网络要求遵循有关通信协议全球的Internet网就是基于TCP/IP协议,在网络中的各个计算机通信存在最基本问题就是如何识别与之通信的计算机,像城市中的街道内各户编号一样,IP地址是TCP/IP中用于唯一标识一台计算机的编号,IP地址提供对网络中计算机的标识以及它所在的网络。2.2 用TCP/IP进行通信的示意图在TCP/IP的应用层协议使用的是客户服务器方式。客户(Client)和服务器(Server)都是指通信中所涉及的两个应用进程。

8、客户服务器方式所描述的是进程之间服务和被服务的关系。当A进程需要B进程的服务时就主动呼叫B进程,在这种情况下,A是客户而B是服务器。这里最重要的特征就是:客户是服务请求方,服务器是服务提供方。客户与服务器的通信关系一旦建立,通信就可是双向的,客户和服务器都可以发送和接收信息,如图1所示:图1 TCP/IP通信方式 当TCP/IP数据包到达目的地后,计算机首先去掉地址标志,利用TCP的装箱单检查数据在传输中是否有损失,如果接收方发现有损坏的数据包,就要求发送端重新发送被损坏的数据包,确认无误后再将各个数据包重新组合成原文件。就这样,Internet通过TCP/IP协议实现了全球通信的功能。2.3

9、 端口通常因特网中的某种服务对应某个协议,并与某个惟一的端口号关联在一起。端口由一个16位二进制整数表示,应用进程必须与该端口号绑定才能进行通信。1024以下端口号保留为系统服务,其他为用户一般应用服务。2.4 JAVA Socket类Socket是著名的网络应用编程接口(API)之一,而 Java 语言是网络编程的主要语言,提供了强大和独特的网络通讯支持机制和能力。在Java网络编程中,Socket层次,即传统网络编程经常采用的方式,通过在Client/Server(客户机/服务器)结构的应用程序之间建立Socket套接字连接,然后在连接之上进行数据通信,是一种经常采用的通信模式。套接字类型

10、Socket根据其传输数据类型的不同,可以分为以 下 三 种 类 型:1)字节流套接字(Socket -stream),提供了一个双向的、面向连接的、可靠的、无差错的字节流通信,无重复的发送且按发送顺序接收。内设流量控制,避免数据流超限;不保持信息边界。实现这种特性的通信协议在收到差错时将重传信息,若在连接已经切断后再发数据则返回错误信息,FTP 协议即采用流式套接字。2)数据报套接字 (Socket Dgram);提供了一个无连接服务,每个数据包都有地址。数据包以独立包形式被发送,但不保证顺序,不保证可靠或不重复。网络文件系统 NFS 使用数据报式套接字。3)原始数据套接字(Socket R

11、aw),该接口允许对较低层次协议 ,如 IP、ICMP 直接访问。这不是给普通用户使用的,而是给要开发新协议或对低层协议有兴趣的人使用。3 系统功能模块设计与实现3.1 体系结构与功能介绍3.1.1 体系结构设计C/S模式的本地监听和远程端口扫描。C/S模式本地监听远程扫描系统共有6个Java 源文件和1个form文件组成,form文件是主类的窗口文件,由IDE netbeans自动生成。主类MainJFrame.java主要完成本地进程的实时枚举,相关开放端口的枚举功能;ThreadScan.java主要完成多线程的远程主机扫描。其他的几个类文件主要是辅助类,以及方法实现类,用来完成响应的业

12、务操作。3.1.2 功能大体介绍该程序有以下功能模块:本地监听:主要实现实时查看操作系统当前运行进程,并根据进程查看本机响应端口和远程计算机连接情况。用户可以实时枚举当前系统所有运行的进程,根据进程id和端口开放的关系,查找开放的TCP及UDP端口。由于java工作的虚拟机之上的,所以java并不能直接获得操作系统进程的句柄。这些操作只能通过操作系统API或者提供的接口程序运行,本次设计考虑到java本地接口和Runtime类运行操作系统自己提供的shell/命令行(windows)两种方式。远程扫描:远程端口Java socket类与远程主机给定的端口范围,采用多线程逐个连接。如果能够连接上

13、表示对方相应的端口开放,如果不能视为没有开放。暂时不考虑对方主机存在防火墙。用户可以设定每次扫描的线程数,线程数越大,对当前扫描主机,及网络的压力就越大,扫描的速度也相对比较快。(程序规定扫描线程数为1-200的整数,默认线程数为100)。3.2 程序主界面图2 主程序界面MainJFrame类主要实现该程序的界面排版,将实现程序界面的所有的类封装在com.text包中。该包中将程序主界面分为三个部分,分别用不同的组件去实现,它包括菜单栏,滚动窗格,以及消息提示框的文本区控件,程序主界面如图2所示。每一部分所使用的类以及对象如表1所示。表1 组件以及类对照表名 称对 象类菜单条 menuJMe

14、nuBar菜单文件,操作JMenu菜单项本机信息,net,exit,当前进程信息,扫描计算机JMenuItem滚动窗格Pane13,tipPaneJScrollBar文本区psInfoJTextArea表格tableJTable首先在主窗体内创建轻量组件,如menu=new javax.swing.JMenuBar()定义了整个菜单条对象,如 文件 = new javax.swing.JMenu(),操作 = new javax.swing.JMenu()则是创建的菜单对象,菜单对象之下的菜单项对象如 当前系统信息 = new javax.swing.JMenuItem();网络状态 = new javax.swing.JMenuItem();当前进程信息 = new javax.swing.JMenuItem();扫描计算机 = new javax.swing.JMenuItem()则是可以发生ActionEvent事件,通过鼠标点击实现该程序的两个主要功能:本地监听与远程端口扫描。3.3 当前系统信息界面 图3 当前系统信息在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型、用户JDK版本和用户工作目录等随工作平台变化的信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1