搜档网
当前位置:搜档网 › 基于多线程的端口扫描程序课程设计报告

基于多线程的端口扫描程序课程设计报告

基于多线程的端口扫描程序课程设计报告
基于多线程的端口扫描程序课程设计报告

滁州学院

课程设计报告

课程名称:

设计题目:基于多线程的端口扫描程序

院部:计算机与信息工程学院

专业:网络工程

组别:第六组

起止日期: 2012 年12月31日~2013 年1月6日指导教师:

计算机与信息工程学院二○一二年制

课程设计任务书

目录

1 需求分析. 0

1..1 网络安全 0

1.2 课程背景 0

1.3 扫描器 0

1.4 多线程扫描器介绍 (1)

错误! 未定义书签。

错误! 未定义书签。

错误! 未定义书签。

错误! 未定义书签。

1.5 端口扫描 (2)

2 概要设计. (3)

2.1 整体框架设计 (3)

2.2 流程图描述 (3)

3 详细设计. (3)

3.1 端口扫描线程启动 (3)

3.2 GUI 图形界面 (5)

3.3 按钮监听及异常处理 (6)

4 调试与操作说明. (8)

4.1 运行界面 (8)

4.2 扫描结果 (8)

4.3 错误提示 (8)

5 课程设计总结与体会. (8)

6 参考文献. (9)

7 致谢. (9)

8 附录. 0

1 需求分析

1..1 网络安全二十一世纪是信息化、网络化的世纪,信息是社会发展的重要资源。信息安全保障能力是一个国家综合国力、经济竞争实力和生存能力的重要组成部分,是世界各国在奋力攀登的制高点。网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行。网络安全包括技术领域和非技术领域两大部分: 非技术领域包括一些制度、政策、管理、安全意识、实体安全

等方面的内容; 技术领域包括隐患扫描、防火墙、入侵检测、访问控制、虚拟专用网、CA 认证、操作系统等方面的内容。这些技术的目标是保证信息的可控性、可用性、保密性、完整性、和不可抵赖性。端口扫描属于安全探测技术范畴,对应于网络攻击技术中的网络信息收集技术。

1.2 课程背景

随着Internet 的不断发展,信息技术已成为促进经济发展、社会进步的巨大推动力。端口扫描技术是网络安全扫描技术一个重要的网络安全技术。与防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。安全扫描是安全技术领域中重要的一类。通过扫描能自动检测远端或本地主机系统信息,包括主机的基本信息(如计算机名、域名、组名、操作系统

型等)、服务信息、用户信息以及漏洞信息,它的重要性在于能够对网络进行安全评估,及时发现安全隐患,防患于未然。

网络的安全状况取决于网络中最薄弱的环节,任何疏忽都有可能引入不安全的因素,最有效的方法是定期对网络系统进行安全分析,及时发现并修正存在的脆弱,保证系统安全。

国外安全扫描技术的历史可以追溯到20 世纪90 年代,当时因特网刚刚起步,但是在过去的十年内,扫描技术飞速发展,迄今为止,其扫描技术已经非常完善,但是在全面性,隐蔽性和智能性上还有待提高。安全扫描从最初专门为UNIX 系统而编写的一些只有简单功能的小程序发展到现在,已经出现了可以运行多个操作系统平台上的,具有复杂功能的系统程序。

国内的扫描技术是在国外的扫描器基础上发展起来的。其中有一些专门从事安全技术的公司。这些公司的扫描器以硬件为主,其特点是执行速度快,不像软件一样受到安装主机系统的限制。

然而对于更多的基于主机的端口扫描而言,简单,实用,可靠才是它们的长处。

1.3 扫描器扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种TCP端口的分配。这就能让我们间接的或直观的了解到远程主机所存在的安全问题。为了保证网络中计算机的安全性,必须采取主动策略, 快速、及时、准确、安全的检测出网络中计算机及防火墙开放的和未开放的端口。计算机端口扫描技术就是这种主动防御策略实现的重要技术手段。

扫描器采用模拟攻击的形式对目标可能存在的已知安全漏洞进行逐项检查。目标可以是工作站、服务器、交换机、数据库应用等各种对象。然后根据扫描结果向系统管理员提供周

密可靠的安全性分析报告,为提高网络安全整体水平产生重要依据。在网络安全体系的建设中,安全扫描工具花费低、效果好、见效快、与网络的运行相对对立、安装运行简单,可以大规模减少安全管理员的手工劳动,有利于保持全网安全政策的统一和稳定。

1.4 多线程扫描器介绍

在java 中,组件放置在窗体上的方式是完全基于代码的。组件放置在窗体上的方式通常不是通过绝对坐标控制,而是由“布局管理器”根据组件加入的顺序决定其位置。每个容器都有一个属于的自己布局管理器。使用不同的布局管理器,组件大小,位置和形状将大不相同。表格型布局管理器将容器划分成为一个多行多列的表格,表格的大小全部相同,是由其中最大的组件所决定。通过add 方法可以将组件一一放在每个表格

中。表格包型布局与表格型布局有些相近,但与表格型布局比较起来,表格包型更加灵活,更加复杂。通常表格包型布局,我们可以设定每个格子的大小,间隙等。

每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。

线程是程序中一个单一的顺序控制流程. 在单个程序中同时运行多个线程完成不同的工

作, 称为多线程.

线程和进程的区别在于, 子进程和父进程有不同的代码和数据空间, 而多个线程则共享数

据空间, 每个线程有自己的执行堆栈和程序计数器为其执行上下文. 多线程主要是为了节约

CPU时间, 发挥利用, 根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。

在计算机编程中,一个基本的概念就是同时对多个任务加以控制。许多程序设计问题都

要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。可以通过多种途径

达到这个目的。最开始的时候,那些掌握机器低级语言的程序员编写一些“中断服务例程”,主进程的暂停是通过硬件级的中断实现的。尽管这是一种有用的方法,但编出的程序很难移植,由此造成了另一类的代价高昂问题。中断对那些实时性很强的任务来说是很有必要的。但对于其他许多问题,只要求将问题划分进入独立运行的程序片断中,使整个程序能更迅速地响应用户的请求。

最开始,线程只是用于分配单个处理器的处理时间的一种工具。但假如操作系统本身支持多个处理器,那么每个线程都可分配给一个不同的处理器,真正进入“并行运算”状态。从程序设计语言的角度看,多线程操作最有价值的特性之一就是程序员不必关心到底使用了

多少个处理器。程序在逻辑意义上被分割为数个线程;假如机器本身安装了多个处理器,那

么程序会运行得更快,毋需作出任何特殊的调校。根据前面的论述,大家可能感觉线程处理

非常简单。但必须注意一个问题:共享资源!如果有多个线程同时运行,而且它们试图访问相同的资源,就会遇到一个问题。举个例子来说,两个线程不能将信息同时发送给一台打印机。为解决这个问题,对那些可共享的资源来说(比如打印机),它们在使用期间必须进入锁定状态。所以一个线程可将资源锁定,在完成了它的任务后,再解开(释放)这个锁,使其他线程可以接着使用同样的资源。

多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。

线程优先级被线程调度用来判定何时哪个线程允许运行。理论上,优先级高的线程比优先级低的线程获得更多的CPU时间。实际上,线程获得的CPU 时间通常由包括优先级在内的多个因素决定(例如,一个实行多任务处理的操作系统如何更有效的利用CPU时间)。一

个优先级高的线程自然比优先级低的线程优先。举例来说,当低优先级线程正在运行,而一个高优先级的线程被恢复(例如从沉睡中或等待I/O 中),它将抢占低优先级线程所使用的CPU。

理论上,等优先级线程有同等的权利使用CPU。但你必须小心了。记住,Java 是被

设计成能在很多环境下工作的。一些环境下实现多任务处理从本质上与其他环境不同。为安全起见,等优先级线程偶尔也受控制。这保证了所有线程在无优先级的操作系统下都有机会运行。实际上,在无优先级的环境下,多数线程仍然有机会运行,因为很多线程不可避免的会遭遇阻塞,例如等待输入输出。遇到这种情形,阻塞的线程挂起,其他线程运行。但是如果你希望多线程执行的顺利的话,最好不要采用这种方法。同样,有些类型的任务是占CPU 的。对于这些支配CPU类型的线程,有时你希望能够支配它们,以便使其他线程可以运行。

多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。同步的关键是管程,管程是一个互斥独占锁定的对象,在给定的时间,仅有一个线程获得管程,当一个线程需要锁定时,他必须进入管程。

1.5 端口扫描

一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。

在手工进行扫描时,需要熟悉各种命令。对命令执行后的输出进行分析。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。

通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞

2 概要设计

2.1 整体框架设计经过我们组员的思考很研究,得出了以下几个模块的简单端口扫描器,整个端口扫描器的核心模块是是端口扫描系统,它由许多子模块组成,其结构如下图所示:

TCP 端口扫描程序

2.2 流程图描述

开始

输输入入主端机口

名的或范要围查

找的的参ip

输计入线

结束

3 详细设计

3.1 端口扫描线程启动

扫描程序主要运用Socket 编程。对于一个工作齐全的Socket ,其工作过程包含以下四个就基本步骤:创建通信双方的socket 链接,即分别为服务器和客户端创建Socket 对象,建立Socket 连接;打开连接到Socket 的输入流和输出流;按照一定的协议对Socket 进行读/

写操作;关闭连接。

以下是程序代码

// 运行扫描端口

public void run()

线程数

scoket

匹配过滤原则

I

P

结果输出模块(通过GUI 界面输出得到的结果)GUI

界面中打印出来

读取应答内容

{

int i;

Socket theTCPsocket;

for(i

{

try

{

theTCPsocket=new Socket(hostAddress,i);

theTCPsocket.close();

switch(i)

{

case 21:

break;

case 23:

break;

case 25:

break;

case 80:

break;

case 110:

break;

case 139:

break;

}

}

catch (IOException e){}

}

if (i==MAX_port)

{

}

}

}

3.2 GUI 图形界面

图形用户界面是软件产品和用户交互的接口,是软件产品中用户直接可以看到并直接操作的部分。

public class ThreadScan

{

public static JFrame main=new JFrame(" 基于JAVA 的多线程TCP端口扫描程序");

public static JTextArea Result=new JTextArea("",4,43);

public static JTextField hostname=new JTextField("localhost",8);

public static JTextField minPort=new JTextField("0",4);

public static JTextField maxPort=new JTextField("1000",4);

public static JTextField maxThread=new JTextField("100",3);

public static JDialog DLGError=new JDialog(main," 错误!");

public static Label DLGINFO=new Label("");

public static Label status=new Label(" 扫描状态: 未开始");

public static void main(String[] args)

{

main.setSize(500,220);

//main.setLocation(300,300);

main.setResizable(false);

DLGError.setSize(300,100);

DLGError.setLocation(400,400);

JPanel mainPanel = new JPanel();

Label H=new Label("ip 或域名:");

Label P1=new Label(" 端口范围:");

Label P2=new Label("~");

Label TNUM=new Label(" 线程数:");

Label RST=new Label(" 扫描结果: ");

Label con=new Label(" ");

Result.setLineWrap(true);

Result.setEditable(false);

JButton OK = new JButton(" 确定");

JButton Submit = new JButton(" 确定");

JButton Cancel = new JButton(" 取消");

Container mPanel = main.getContentPane();

Container dPanel = DLGError.getContentPane();

mPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); dPanel.setLayout(new FlowLayout(FlowLayout.CENTER)); mPanel.add(H);

mPanel.add(hostname);

mPanel.add(P1);

mPanel.add(minPort);

mPanel.add(P2);

mPanel.add(maxPort);

mPanel.add(TNUM);

mPanel.add(maxThread);

mPanel.add(RST);

mPanel.add(Result);

mPanel.add(con);

mPanel.add(Submit);

mPanel.add(Cancel);

mPanel.add(status);

dPanel.add(DLGINFO);

dPanel.add(OK);

main.setVisible(true);

Submit.addActionListener(new SubmitAction());

Cancel.addActionListener(new CancleAction());

OK.addActionListener(new OKAction());

}

}

3.3 按钮监听及异常处理

本部分主要对各个按钮进行监听。是整个程序的时间驱动设计部分。并且显示运行结果class SubmitAction implements ActionListener

{

public void actionPerformed (ActionEvent a)

{

int minPort;

int maxPort;

int maxThread;

try

{

} catch(NumberFormatException e)

{

return;

}

try

{

} catch(UnknownHostException e)

{

return;

}

if(minPort<0 || minPort>65535 || minPort>maxPort) {

return;

}

else TCPThread.MIN_port=minPort;

if(maxPort<0 || maxPort>65535 || maxPort

return;

}

else TCPThread.MAX_port=maxPort; if(maxThread<1 || maxThread>200) {

return;

}

for(int i=0;i

{

new TCPThread("T" + i,i).start();

}

4 调试与操作说明

4.1 运行界面

对本机进行多线程的端口扫描,即在ip 或域名中输入localhost 可对本机进行端口进行扫描,也可输入其他的ip 地址或域名,可自行设置端口范围如从0 到1000 ,最大不超过65535,

可设置线程数范围为0~200 ,扫描状态为未开始,点击确定即可运行程序。

4.2 扫描结果

程序运行后,可以得到相关的端口扫描过程,其中扫描状态显示正在扫描的端口号,如

下:

程序运行结束后在扫描结果中显示扫描结束,并在扫描状态中显示完成。

4.3 错误提示

程序中往往由于一些数据不正确会造成运行后错误,所以在程序中添加了异常处理机制,其中遇到的错误可能有

以下几种:

当端口号或线程数不是整数时会出现如下错误: 当 ip 地址或域名错误时,会出现如下错误:

当最小端口数不在 0~65535 且不小于最大端口数时会出现如下错误: 当最大端口数不在 0~65535 且不大于最小端口数时会出现如下错误: 当线程数范围不在 0~200 时会出现如下错误:

5课程设计总结与体会

本组成员共同设计的基于多线程的端口扫描程序基本满足了课程设计的要求,能够很好地 对本机或其他电脑端口进行扫描,同时也处理了程序中可能出现的错误。

本次课程设计,使我们对 《计算机网络》这门课程有了更深入的理解。《计算机网络》 是一 门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。要想 把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,加强团队合作。

在本课程设计中,我们明白了理论与实际应用相结合的重要性,并提高了自己组织数据及 编写大程序的能力。培养了基本的、良好的程序设计技能以及合作能力。这次课程设计同样提 高了我们的综合运用所学知识的能力。课程设计程序的编写需要有耐心,有些事情看起来很复 杂,但问题需要一点一点去解决,分析问题,把问题模块化,划分成小块以后就逐个去解决。 再总体解决大的问题。这样做起来不仅有条理也使问题得到了轻松的解决。

通过这段时间的课程设计,我们认识到 《计算机网络》 是一门比较难的课程。需要多花时间 学习。这次的课程设计培养了我们实际分析问题、编程和动手能力,使我们掌握了计算机网络 课程设计的基本技能,提高了我们适应实际,运用于实际生活的能力。

这次的课程设计提高了我们对于专业课的学习热情,使我们能够更加深入的理解课本内

容,对 《计算机网络》 也有了进一步的理解和认识,同时也理解了将课本内容与实际生活相结合 的好处。

6 参考文献

[1] 赵生慧 .Java 面向对象程序设计 . 北

京: 中国水利水电出版社, 2010。 [2] 谢希仁 . 计算机网络(第五版) . 北京: 电子工业出版社, 2011。 [3] 吴功宜 . 计算机网络(第二版)

. 北京:

清华大学出版社,

2007。

[4] 杨静宇. Java 程序设计与应用开发 (第2版) [M]. 北京:

清华大学出版社 , 2009

7 致谢

非常感谢老师耐心的指导,在实验过程中给出指导并给帮助分析思路,给我们提供了可行 的方案设计思路,在实验过程中指出不足之处,为能够成功的完成课程设计做了很大的贡献; 非常感谢各位组员的积极配合,一起分析题目,整理思路,努力思考解决方案,画出方案流程 图,并进行了严密的算法分析,构造严谨的程序框架,然后各自完成自己负责的模块,最后一 起整理出完整的程序,一起进行调试分析,评估程序的严谨性,找出不足。完善实验内容,整 理资料,编写文档。

8 附录

源代码:

import https://www.sodocs.net/doc/2e7461818.html,.*;

import java.io.*;

//import java.util.*;

import java.awt.*;

import javax.swing.*;

class TCPThread extends Thread {

public static InetAddress hostAddress;

public static int MIN_port;

public static int MAX_port; private int threadnum;

public TCPThread(String name,int threadnum) {

super(name); this.threadnum = threadnum;

}

public void run()

{

int i;

Socket theTCPsocket;

for (i = MIN_port+threadnum; i < MAX_port; i += Integer.parseInt {

try

{ theTCPsocket=new Socket(hostAddress,i); theTCPsocket.close();

switch(i) { case 21: break;

case 23: break;

case 25: break;

case 80:

break; case 110: break;

case 139: break;

}

}

catch (IOException e)

{}

}

if (i==MAX_port)

{

}

}

}

class CancleAction implements ActionListener {

public void actionPerformed (ActionEvent e) {

System.exit(1);

}

}

class SubmitAction implements ActionListener { public void actionPerformed (ActionEvent a) {

int minPort;

int maxPort;

int maxThread;

try

{

} catch(NumberFormatException e)

{ return;

}

try

{

TCPThread.hostAddress=InetAddress.getByName }

catch(UnknownHostException e)

{

return;

}

if(minPort<0 || minPort>65535 || minPort>maxPort) {

return;

}

else TCPThread.MIN_port=minPort;

if(maxPort<0 || maxPort>65535 || maxPort

return;

}

else TCPThread.MAX_port=maxPort; if(maxThread<1 || maxThread>200) {

return;

for(int i=0;i

class OKAction implements ActionListener public void actionPerformed

(ActionEvent e)

public class ThreadScan public static JTextField minPort=new JTextField("0",4);

public static JTextField maxPort=new JTextField("1000",4); public static

JTextField maxThread=new JTextField("100",3); public static JDialog

DLGError=new JDialog(main," 错误!"); public static Label DLGINFO=new

Label("");

public static JFrame main=new JFrame(" 基于JAVA 的多线程TCP端口扫描程序");

public static JTextArea Result=new JTextArea("",4,43); public

static JTextField hostname=new JTextField("localhost",8);

public static Label status=new Label(" 扫描状态: 未开始");

public static void main(String[] args)

{ main.setSize(500,220);

//main.setLocation(300,300); main.setResizable(false);

DLGError.setSize(300,100); DLGError.setLocation(400,400);

JPanel mainPanel = new JPanel();

Label H=new Label("ip 或域名:");

Label P1=new Label(" 端口范围:");

Label P2=new Label("~");

Label TNUM=new Label(" 线程数:");

Label RST=new Label(" 扫描结果: ");

Label con=new Label(" ");

Result.setLineWrap(true); Result.setEditable(false);

JButton OK = new JButton(" 确定");

JButton Submit = new JButton(" 确定");

JButton Cancel = new JButton(" 取消");

Container mPanel = main.getContentPane();

Container dPanel = DLGError.getContentPane(); mPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); dPanel.setLayout(new

FlowLayout(FlowLayout.CENTER)); mPanel.add(H);

mPanel.add(hostname); mPanel.add(P1);

mPanel.add(minPort); mPanel.add(P2);

mPanel.add(maxPort); mPanel.add(TNUM);

mPanel.add(maxThread); mPanel.add(RST);

mPanel.add(Result); mPanel.add(con); mPanel.add(Submit); mPanel.add(Cancel); mPanel.add(status); dPanel.add(DLGINFO); dPanel.add(OK);

main.setVisible(true); Submit.addActionListener(new SubmitAction()); Cancel.addActionListener(new CancleAction()); OK.addActionListener(new OKAction());

}

}

电子课程设计报告

海南大学信息科学技术学院电子技术课程设计报告 设计题目: 自动换挡数字频率计 专业班级:___11级通信工程2班_____ _ 姓名:_______ ____ ________ 同组员: 学号:_____ _____ 指导教师:_______易家傅___________

目录 一、设计目的 (1) 二、设计目标 (1) 1、整体功能要求 2、系统结构要求 3、电气指标 三、方案比较 (2) 四、理论分析 (3) 1、基本原理 2、整体框图 五、单元电路设计和整体电路图 (5) 1、时基电路设计 2、闸门电路设计 3、分频器的设计 4、控制信号产生电路 5、计数、锁存、显示电路设计 6、换挡电路设计 7、量程显示电路设计 8、整体电路图 六、电路仿真结果记录及分析 (10) 七、元器件列表 (11) 八、心得体会 (11)

自动换挡型数字频率计 一、 设计目的 本次课程设计主要是配合《模拟电子技术》和《数字电子技术》理论课程而设置的一门实践性课程,起到巩固所学知识,加强综合能力,培养电路设计能力,提高实验技术,启发创新思想的效果。 二、 设计目标 1、整体功能要求 频率计主要用于测量正弦波、矩形波等周期信号的频率值。 2、系统结构要求 数字频率计的整体结构要求如图所示。图中被测信号为外部信号,送入测量电路进行处理、测量,自动换挡指的是超量程自动换高档,低量程自动换低档。 图1 系统结构图 3、电气指标 (1)被测信号波形:正弦波、矩形波。 (2)被测信号的频率范围:1Hz 999KHz ,共分为4个档位: 1Hz 档位: 1Hz~999HZ 10Hz 档位: 10Hz~9.99KHZ 100Hz 档位: 100Hz~99.9KHZ 1000Hz 档位:1KHz~999KHZ (3)测量精度:用3位数码管显示测量数据,1位数码管显示档位。测量误差 小于1%。 (4)具有自检功能,即用仪器内部的标准脉冲校准测量精度。 (5)具有自动换挡功能,即超量程能换高档,欠量程换低档。 输入信号 数字频率计 (自动换挡) 显示结果

网络安全实验---NMAP扫描

一、实验目的和要求 了解信息搜集的一般步骤 学会熟练使用ping命令 学会利用Nmap等工具进行信息搜集 二、实验内容和原理 1.信息搜集的步骤 攻击者搜集目标信息一般采用七个基本的步骤: (1)找到初始信息,比如一个IP地址或者一个域名; (2)找到网络地址范围,或者子网掩码; (3)找到活动机器; (4)找到开放端口和入口点; (5)弄清操作系统; (6)弄清每个端口运行的是哪种服务; (7)画出网络结构图。 2.ping命令探测技巧 使用ping可以测试目标主机名称和IP地址,验证与远程主机的连通性,通过将ICMP 回显请求数据包发送到目标主机,并监听来自目标主机的回显应答数据包来验证与一台或多台远程主机的连通性,该命令只有在安装了TCP/IP协议后才可以使用。 ping命令格式:ping [选项] 目标主机。常用选项见表19-1-1。 表19-1-1 ping命令常用选项

生存时间(TTL):指定数据报被路由器丢弃之前允许通过的网段数量。TTL是由发送主机设置的,以防止数据包在网络中循环路由。转发IP数据包时,要求路由器至少将TTL 减小1。 TTL字段值可以帮助我们猜测操作系统类型,如表19-1-2所示。 表19-1-2 各操作系统ICMP回显应答TTL对照 3.Nmap介绍 nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取哪台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口映射),碎片扫描,以及灵活的目标和端口设定。 nmap运行通常会得到被扫描主机端口的列表。nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。 根据使用的功能选项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP

课程设计报告模板)

课程设计报告模板()

————————————————————————————————作者: ————————————————————————————————日期: ?

课程设计(论文)任务书 软件学院软件+电商专业09级(2)班 一、课程设计(论文)题目基本模型机设计与实现 二、课程设计(论文)工作自2011年6月 20 日起至2011年 6月 24日止。 三、课程设计(论文) 地点:计算机组成原理实验室(5#301) 四、课程设计(论文)内容要求: 1.课程设计的目的 通过课程设计的综合训练,在掌握部件单元电路实验的基础上,进一步掌握整机 概念。培养学生实际分析问题、解决问题和动手能力,最终目标是想通过课程设计的形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务。 2.课程设计的任务及要求 1)基本要求? (1)课程设计前必须根据课程设计题目认真查阅资料; (2)实验前准备好实验程序及调试时所需的输入数据; (3)实验独立认真完成; (4)对实验结果认真记录,并进行总结和讨论。 2)课程设计论文编写要求 (1)按照书稿的规格撰写打印课设论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)正文中要有问题描述、实验原理、设计思路、实验步骤、调试过程与遇到问题的解决方法、总结和讨论等 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查:

(1)出勤情况和课设态度; (2)设计思路; (3)代码实现; (4)动手调试能力; (5)论文的层次性、条理性、格式的规范性。 4)参考文献 [1]王爱英.计算机组成与结构[M]. 北京:清华大学出版社, 2007. [2] 王爱英. 计算机组成与结构习题详解与实验指导[M]. 北京:清华大学出版社, 2007. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 实验与调试 3 实验室 撰写论文 1 图书馆 6)任务及具体要求 设计实现一个简单的模型机,该模型机包含若干条简单的计算机指令,其中至少包括输入、输出指令,存储器读写指令,寄存器访问指令,运算指令,程序控制指令。学生须根据要求自行设计出这些机器指令对应的微指令代码,并将其存放于控制存储器,并利用机器指令设计一段简单机器指令程序。将实验设备通过串口连接计算机,通过联机软件将机器指令程序和编写的微指令程序存入主存中,并运行此段程序,通过联机软件显示和观察该段程序的运行,验证编写的指令和微指令的执行情况是否符 合设计要求,并对程序运行结果的正、误分析其原因。 学生签名: 亲笔签名 2011年6月20 日 课程设计(论文)评审意见 (1)设计思路:优( )、良()、中( )、一般()、差( ); (2)代码实现:优()、良()、中()、一般()、差();

《贪吃蛇游戏课程设计》报告资料整理

贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (4).完成课程设计报告,并进行答辩 三、需求分析 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

3.2、设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。

3.3、流程图

四、设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #define M 200 #include"graphics.h" #include #include #include #include #include #include #include #define LEFT 97//A #define RIGHT 100//D #define DOWN 115//S #define UP 119//W #define Esc 0x011b int i,key; int score=0; int gamespeed=250;//游戏速度可根据实际情况自行调整 struct Food { int x;//食物的横坐标 int y;//食物的纵坐标 int yes;//判断是否要出现食物的变量 }food;//食物的结构体 struct Snake { int x[M]; int y[M]; int node;//蛇的节数 int direction;//蛇的移动方向 int life;//蛇的生命,0表示活着,1表示死亡 }snake; void Init();//图形驱动

电子系统综合设计报告

电子系统综合设计报告 姓名: 学号: 专业: 日期:2011-4-13 南京理工大学紫金学院电光系

摘要 本次课程设计目的是设计一个简易温度控制仪,可以在四联数码管上显示测得的温度。主要分四部份电路:OP07放大电路,AD转换电路,单片机部分电路,数码管显示电路。设计文氏电桥电路,得到温度与电压的关系,通过控制电阻值改变温度。利用单片机将现在温度与预设温度进行比较,将比较结果在LED数码管上显示,同时实现现在温度与预设温度之间的切换。 关键词放大电路转换电路控制电路显示

目录 1 引言 (4) 1.1 系统设计 (4) 1.1.1 设计思路 (4) 1.1.2 总体方案设计 (4) 2 单元模块设计 (5) 2.1 各单元模块功能介绍及电路设计 (5) 2.1.1 温度传感器电路的设计 (5) 2.1.2 信号调理电路的设计 (5) 2.1.3 A/D采集电路的设计 (5) 2.1.4 单片机电路 (6) 2.1.5 键盘及显示电路的设计 (6) 2.1.6 输出控制电路的设计 (6) 2.2元器件的选择 (6) 2.3特殊器件的介绍 (7) 2.3.1 OP07A (7) 2.3.2 ADC0809 (7) 2.3.3 ULN2003 (9) 2.3.4 四联数码管(共阴) (9) 2.4各单元模块的联接 (10) 3.1开发工具及设计平台 (11) 3.1.1 Proteus特点 (11) 3.1.2 Keil特点 (11) 3.1.3 部分按键 (12) 4 系统测试 (17) 5 小结和体会 (20) 6 参考文献 (21)

1 引言 电子系统设计要求注重可行性、性能、可靠性、成本、功耗、使用方便和易维护性等。总体方案的设计与选择:由技术指标将系统功能分解为:若干子系统,形成若干单元功能模块。单元电路的设计与选择:尽量采用熟悉的电路,注重开发利用新电路、新器件。要求电路简单,工作可靠,经济实用。 1.1 系统设计 1.1.1 设计思路 本次实验基于P89L51RD2FN 的温控仪设计采用Pt100温度传感器。 1.1.2 总体方案设计 热敏电阻测温调理电路 设计要求 1.采用Pt100温度传感器,测温范围 -20℃ --100℃; 2.系统可设定温度值; 3.设定温度值与测量温度值可实时显示; 4.控温精度:±0.5℃。 设定输入 单片机 LED 显示 控制输出 双向可 控硅 继电器 控制 对象 风扇 信号调 理电路 A/D 采集 电路 加热丝 传

nmap扫描原理

Nmap是在免费软件基金会的GNU General Public License (GPL)下发布的,可从https://www.sodocs.net/doc/2e7461818.html,/nmap站点上免费下载。下载格式可以是tgz格式的源码或RPM格式。目前较稳定的版本是2.12。带有图形终端,本文集中讨论Nmap命令的使用。Nmap 的语法相当简单。Nmap的不同选项和-s标志组成了不同的扫描类型,比如:一个Ping-scan命令就是"-sP"。在确定了目标主机和网络之后,即可进行扫描。如果以root 来运行Nmap,Nmap的功能会大大的增强,因为超级用户可以创建便于Nmap利用的定制数据包。 在目标机上,Nmap运行灵活。使用Nmap进行单机扫描或是整个网络的扫描很简单,只要将带有"/mask"的目标地址指定给Nmap即可。地址是"victim/24",则目标是c类网络,地址是"victim/16",则目标是B类网络。 另外,Nmap允许你使用各类指定的网络地址,比如192.168.7.*,是指192.168.7.0/24, 或192.168.7.1,4,8-12,对所选子网下的主机进行扫描。 Ping扫描(Ping Sweeping) 入侵者使用Nmap扫描整个网络寻找目标。通过使用" -sP"命令,进行ping扫描。缺省情况下,Nmap给每个扫描到的主机发送一个ICMP echo和一个TCP ACK, 主机对任何一种的响应都会被Nmap得到。 举例:扫描192.168.7.0网络: # nmap -sP 192.168.7.0/24 Starting nmap V. 2.12 by Fyodor (fyodor@https://www.sodocs.net/doc/2e7461818.html,, https://www.sodocs.net/doc/2e7461818.html,/nmap/) Host (192.168.7.11) appears to be up. Host (192.168.7.12) appears to be up. Host (192.168.7.76) appears to be up. Nmap run completed -- 256 IP addresses (3 hosts up) scanned in 1 second 如果不发送ICMP echo请求,但要检查系统的可用性,这种扫描可能得不到一些站点的响应。在这种情况下,一个TCP"ping"就可用于扫描目标网络。 一个TCP"ping"将发送一个ACK到目标网络上的每个主机。网络上的主机如果在线,则会返回一个TCP RST响应。使用带有ping扫描的TCP ping选项,也就是"PT"选项可以对网络上指定端口进行扫描(本文例子中指的缺省端口是80(http)号端口),它将可能通过目标边界路由器甚至是防火墙。注意,被探测的主机上的目标端口无须打开,关键取决于是否在网络上。 # nmap -sP -PT80 192.168.7.0/24 TCP probe port is 80 Starting nmap V. 2.12 by Fyodor (fyodor@https://www.sodocs.net/doc/2e7461818.html,, https://www.sodocs.net/doc/2e7461818.html,/nmap/)

网络程序课程设计报告模版

《高级网络程序设计》 课程设计报告 题目FTP文件传输协议学号11102410 姓名倪福柱 计算机网络工程教研室 2015年01月12 日

目录 一、实验目的……………………………………………………… 二、实验内容和要求……………………………………………….. 1、实验内容…………………………………………………….. 2、具体要求…………………………………………………….. 三、需要完成的的内容………………………………………………………… 1.FTP系统模型……………………………………………………………. 2. 系统功能设计…………………………………………………………… 2.1总体设计…………………………………………………………... 2.2系统实现…………………………………………………………… 四、具体实现步骤……………………………………………………………….. 1. FTPClient用户界面的实现………………………………………………. 2. FTPClient控制连接的实现………………………………………………. 3. FTPClient数据传输连接的实现…………………………………………. 3.1下载文件操作……………………………………………………….. 3.1下载文件操作……………………………………………………….. 3.3显示服务器的路径………………………………………………….. 3.4进入服务器更改路径……………………………………………….. 4. FTPServer控制连接的实现……………………………………………… 5. FTPServer数据传输线程的实现………………………………………… 5.1读取本地文件下载给客户端………………………………………… 5.2接收客户端的上传的文件…………………………………………… 5.3获取服务器本地系统路径…………………………………………… 五、实验结果……………………………………………………………………. 六、实验心得…………………………………………………………………….

电子系统综合设计实验报告

电子系统综合设计实验报告 所选课题:±15V直流双路可调电源 学院:信息科学与工程学院 专业班级: 学号: 学生姓名: 指导教师: 2016年06月

摘要本次设计本来是要做±15V直流双路可调电源的,但由于买不到规格为±18V的变压器,只有±15V大小的变压器,所以最后输出结果会较原本预期要小。本设计主要采用三端稳压电路设计直流稳压电源来达到双路可调的要求。最后实物模型的输出电压在±13左右波动。 1、任务需求 ⑴有+15V和-15V两路输出,误差不超过上下1.5V。(但在本次设计中,没有所需变压器,所以只能到±12.5V) ⑵在保证正常稳压的前提下,尽量减小功效。 ⑶做出实物并且可调满足需求 2、提出方案 直流可变稳压电源一般由整流变压器,整流电路,滤波器和稳压环节组成如下图a所示。 ⑴单相桥式整流 作用之后的输出波形图如下:

⑵电容滤波 作用之后的输出波形图如下: ⑶可调式三端集成稳压器是指输出电压可以连续调节的稳压器,有输出正电压的LM317三端稳压器;有输出负电压的LM337三端稳压器。在可调式三端集成稳压器中,稳压器的三个端是指输入端、输出端和调节端。 LM317的引脚图如下图所示:(LM337的2和3引脚作用与317相反)

3、详细电路图: 因为大容量电解电容C1,C2有一定的绕制电感分布电感,易引起自激振荡,形成高频干扰,所以稳压器的输入、输出端常并入瓷介质小容量电容C5,C6,C7,C8用来抵消电感效应,抑制高频干扰。 参数计算: 滤波电容计算: 变压器的次级线圈电压为15V ,当输出电流为0.5A 时,我们可以求得电路的负载为I =U /R=34Ω时,我们可以根据滤波电容的计算公式: C=т/R,来求滤波电容的取值范围,其中在电路频率为50HZ 的情况下,T 为20ms 则电容的取值范围大于600uF ,保险起见我们可以取标准值为2200uF 额定电压为50V 的点解电容。另外,由于实际电阻或电路

基于多线程的端口扫描程序

计算机网络课程课程设计任务书

计算机网络设计说明书 学院名称:计算机与信息工程学院 班级名称:网络工程122班 学生姓名: 学号: 题目:基于多线程的端口扫描程序 指导教师 姓名: 起止日期:2015年6月13日至2015年6月20日

一、选题背景 随着互联网的飞速发展,网络入侵行为日益严重,网络安全成为人们关注的焦点。端口扫描技术是网络安全扫描技术的重要技术之一。对目标系统进行端口扫描,是网络系统入侵者进入目标系统的第一步。网络安全探测在网络安全中起着主动防御的作用,占有非常重要的地位。网络安全探测的所有功能都是建立在端口扫描的基础上,所以对端口扫描技术的研究有着非常重要的现实意义。 现实世界中的很多过程都具有多条线索同时动作的特性。Java语言的一大特性就是内置对多线程的支持。多线程是指同时存在几个执行体,按几条不同的执行线索共同工作的情况,它使得编程人员可以很方便地开发出具有多线程功能、能同时处理多个任务的功能强大的应用程序。 端口是由计算机的通信协议TCP/IP协议定义的。其中规定,有IP地址和端口号作为套接字,它代表TCP连接的一个连接端,一般称为Socket。具体来说,就是用[IP:端口]来定位一台主机的进程。 可见端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程正在监听,那么就会出现与它相对应的端口。由此可见,通过扫描端口,就可以判断出目标计算机有哪些通信进程正在等待连接。 利用TCP connect扫描原理,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机该端口有回复,则说明该端口开放。利用多线程技术实现了对一目标IP进行设定数目的端口扫描,对多IP段的特定端口进行扫描。 二、方案设计 多线程端口扫描器是实现计算机的端口的扫描,只要在在前台设置好所要扫描的IP、起始端口、结束端口以及所要用到的线程数,点击扫描,就可以扫描到所输入IP地址主机的开放端口,并显示在主窗体中;点击退出,则可以退出该程序。IP设置应为所在主机的IP地址,起始端口和结束端口应为0~65535之间的一个数,且起始端口应小于结束端口的大小。线程数为0~200之间的一个数。点击开始后就会运行,直到扫描完毕显示出开放端口,如果没有开放端口,则只显示扫描完毕。 本系统要实现的功能: ①端口扫描功能:扫描开放的端口,并将扫描到的开放端口号送到前台。 ②图像显示功能:显示图形界面,以及显示扫描结果。 ③多线程功能:当客户端要求与服务器端建立连接时,服务器端就将用到多线程功能,为每一个建立起来的连接创建一个线程。 ④异常抛出功能:对于明显的数据错误,能提示出错误的类型并阻止程序的运行。 流程图:

实验报告-网络扫描与监听

信息安全实验报告 学号: 学生姓名: 班级:

实验一网络扫描与监听 一、实验目的 网络扫描是对整个目标网络或单台主机进行全面、快速、准确的获取信息的必要手段。通过网络扫描发现对方,获取对方的信息是进行网络攻防的前提。该实验使学生了解网络扫描的内容,通过主机漏洞扫描发现目标主机存在的漏洞,通过端口扫描发现目标主机的开放端口和服务,通过操作系统类型扫描判断目标主机的操作系统类型。 通过该实验,了解网络扫描的作用,掌握主机漏洞扫描、端口扫描、操作系统类型扫描软件的使用的方法,能够通过网络扫描发现对方的信息和是否存在漏洞。要求能够综合使用以上的方法来获取目标主机的信息。 而网络监听可以获知被监听用户的敏感信息。通过实验使学生了解网络监听的实现原理,掌握网络监听软件的使用方法,以及对网络中可能存在的嗅探结点进行判断的原理。掌握网络监听工具的安装、使用,能够发现监听数据中的有价值信息,了解网络中是否存在嗅探结点的判断方法及其使用。 二、实验要求 基本要求了解网络扫描的作用,掌握主机漏洞扫描、端口扫描、操作系统类型扫描软件的使用的方法,能够通过网络扫描发现对方的信息和是否存在漏洞。掌握网络监听工具的安装、使用,能够发现监听数据中的有价值信息等。提高要求能够对网络中可能存在的嗅探结点进行判断的方法及工具使用等。 三、实验步骤 1)扫描软件X-Scan 和Nmap 以及WinPcap 驱动安装包并安装。 2)打开X-Scan,如下图所示。 3)点击“设置”->“扫描参数”,弹出扫描参数设置对话框,在“指定IP 范围”输入被扫描的IP 地址或地址范围。在“全局设置”的“扫描模块”设置对话框中选择需要检测的模块。其他可以使用默认的设置,也可以根据实际需要进行选择。最后点击“确定”回到主界面。

程序设计报告模板

北京化工大学计算机科学与技术专业2014程序设计实训报告 题目:个人记账软件 专业:计算机科学与技术 班级:计科1305 指导教师:江志英

2014程序设计实训任务书

目录 2014程序设计实训任务书...................................... 错误!未定义书签。目录..................................................... 错误!未定义书签。第一章需求分析.............................................. 错误!未定义书签。 引言............................................... 错误!未定义书签。 任务概述........................................... 错误!未定义书签。 数据描述........................................... 错误!未定义书签。 功能需求........................................... 错误!未定义书签。 运行需求........................................... 错误!未定义书签。 任务计划........................................... 错误!未定义书签。第二章概要设计.............................................. 错误!未定义书签。 总体设计........................................... 错误!未定义书签。 面向对象设计....................................... 错误!未定义书签。 运行界面设计....................................... 错误!未定义书签。第三章详细设计.............................................. 错误!未定义书签。 ........................................................ 错误!未定义书签。第四章测试分析............................................. 错误!未定义书签。第五章用户手册(可选)..................................... 错误!未定义书签。第六章课程设计总结.......................................... 错误!未定义书签。附录:程序代码(仅电子版需要、纸质版不需要)................. 错误!未定义书签。

电子综合课程设计报告

课程设计任务书姓名学号 班级学院 课程电子技术综合 题目简易信号发生器和简易频率计 设计任 务 1.设计一个的正弦波、方波和三角波发生器: (1) 频率可调范围:2Hz—20KHz,分为4档: 2—20Hz;20—200Hz;200Hz—2KHz;2—20KHz; (2) 幅度可调范围:0—5V; (3) 可调偏置。 2.设计一个简易数字频率计: (1) 可测量信号频率范围:1~100 KHz,显示单位为Hz; (2) 输入电压幅度VPP:100mV—10V; (3) 输入信号波形:任意周期信号; (4)显示方式: 6位十进制数显示。 时间进 度第17、18周 2010.12.27-2011.1.7 星期一、二布置设计方案、预设计及验收星期三、四、五计算机仿真及仿真结果验收星期一上午发放元器件、领取工具 星期一下午焊接 星期二、三、四安装、调试、教师验收 星期周五打印图纸、写设计报告 主要参考资料1.康华光。电子技术基础数字部分(第五版)。北京:高等教育出版社,2006; 2.康华光。电子技术基础模拟部分(第五版)。北京:高等教育出版社,2006; 3.电子技术(下)实验指导书,中原工学院电子技术课程组自编,2011;

目录 一、摘要 (2) 二、设计原理 (3) 2.1 简易信号发生器的基本原理 (3) 2.2 数字频率计的基本原理 (5) 三、方案设计 (9) 四、电路仿真 (10) 4.1 简易信号发生器电路仿真 (10) 4.2 数字频率计 (15) 五、电路焊接与调试 (17) 六、心得体会 (20) 附录一:参考文献 (22) 附录二:元器件表 (23) 附录三:原理图 (28)

基于多线程的端口、漏洞扫描工具的设计毕业设计

目录 1 引言 1.1课题的来源、意义和目的 (1) 1.2完成的内容与设计结果 (1) 1.2.1 设计内容 (1) 1.2.2 设计结果 (2) 2 总体设计与实施方案 2.1总体设计 (3) 2.1.1 设计目标 (3) 2.1.2 系统结构 (4) 2.2实施方案 (4) 2.2.1 开发平台和工具的选择 (4) 2.2.2 方案实施步骤 (4) 2.2.3 关键技术介绍 (5) 3 系统的实现 3.1准备阶段 (7) 3.2主要功能、界面的设计 (7) 3.2.1 系统菜单界面、功能的设计 (8) 3.2.2 扫描系统界面、功能的设计 (10) 3.2.3 端口扫描模块设计 (13) 3.2.4 漏洞扫描模块设计 (21) 3.2.5 弱口令扫描模块设计 (26) 3.2.6 本地系统监控模块设计 (31) 3.2.7 日志查询模块设计 (34) 3.2.8 DOS工具集界面、功能的设计 (36) 3.2.9 字典管理界面、功能的设计 (39) 4 程序调试 5 设计结果与改进要求 5.1设计结果 (42) 5.2改进要求及目标 (42) 参考文献 (43) 致谢 (44)

1 引言 1.1 课题的来源、意义和目的 随着科学技术的发展,21世纪的人类已经生活在信息时代,计算机技术与网络技术已经深入到人类社会的各个方面。近年来网络的迅速发展,给人们的生活带来了新的感受,同时人类社会对于网络的依赖性也越来越强。信息技术的飞速发展给人们带来了极大的便利,同时也引入了巨大的安全隐患。因此,网络安全问题越来越引起人们的广泛关注,并成为当今网络技术领域研究的重点。 目前,大多数的网络攻击,如:黑客攻击、木马、病毒都是通过安全漏洞侵入目标主机的。如果我们能够根据具体的应用环境,尽可能早地通过网络扫描来发现这些漏洞,并及时采取适当的措施进行修补,就可以预防安全威胁的发生。因此,网络安全管理者需要一套工具能够发现网络主机的脆弱性。端口、漏洞扫描技术能够检测出网络中潜在的安全漏洞,从而使网络管理者一目了然,了解自身网络系统存在的问题。 根据当前网络安全现状和现有扫描技术的不足,本文提出了基于多线程的端口、漏洞扫描器的设计,来实现端口扫描、漏洞扫描、弱口令破解、日志分析等一系列功能,辅助网络管理者了解自身系统的安全现状。 1.2 完成的内容与设计结果 1.2.1 设计内容 本系统是根据当今网络中主机的脆弱性进行需求分析后,再开发设计的,具体实现的功能和要求如下: (1)对本地主机的进程进行监控,并能够管理; (2)对本地主机的实时信息做全面收集,并呈现出来; (3)利用多线程技术,对远程主机的端口进行扫描,包括:基本端口扫描、自定义端口扫描、网段存活扫描; (4)对远程主机的弱口令进行猜解,包括:FTP弱口令扫描、POP3弱口令扫描; (5)对远程主机的常见威胁、漏洞进行扫描评估; (6) 对扫描结果进行存储,提供丰富的日志分析;

图书管理程序课程设计报告模板

北京理工大学珠海学院课程设计说明书 _2011_—_2012_学年第_2_学期 题目: 图书管理程序 学院:计算机学院 专业班级: 11计算机科学与技术X班 学号: XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX 学生姓名:xx XX 指导教师: XXX 成绩: 时间: XXXX 年 X 月 xX 日

北京理工大学珠海学院 课程设计任务书 2011 ~2012 学年第 2 学期 学生姓名: XXXXX 专业班级: XX计算机科学与技术XX 班 指导教师: XXXXX 工作部门:计算机学院 一、课程设计题目 图书管理程序 二、课程设计内容 使用文本命令行界面;用文件保存图书馆里的图书信息;能实现图书信息的增、删、改、查等功能。 三、进度安排 (1)1-2学时,选定题目、分析需求、理解需求; (2)3-4学时,程序设计,定义数据类型、数据处理方式; (3)5-10学时,编写程序、调试、测试; (4)11-12学时,编写设计报告; (5)13-16学时,答辩。 四、基本要求 (1)只能使用C++语言,源程序要有适当的注释,使程序容易阅读 (2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分) (4)建立文件操作类、界面显示类及相关接口类,用文件读写实现。 (5)写出课程设计报告,应不少于3000字(不含附录),同一组学生只需提交1份,但必须在报告中列明分工。

课程负责人签名: XXXX年 X月 XX日

课程设计分工安排

课程设计成绩评定表

图书管理程序 摘要 二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。如何获取信息?图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来。迫使人们起用新的管理方法来管理图书,如何把图书管理员从繁重的工作中解脱出来呢? 科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。因此,图书管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息。 关键词:图书管理系统工程信息管理系统 VC++

《电工电子技术》课程设计报告书 (1)

武汉理工大学华夏学院 信息工程课程设计报告书 课程名称电工电子技术 课程设计总评成绩 学生姓名、学号 学生专业班级 指导教师姓名 课程设计起止日期2015.6.22~2015.7.3

课程设计基本要求 课程设计是工科学生十分重要的实践教学环节,通过课程设计,培养学生综合运用先修课程的理论知识和专业技能,解决工程领域某一方面实际问题的能力。课程设计报告是科学论文写作的基础,不仅可以培养和训练学生的逻辑归纳能力、综合分析能力和文字表达能力,也是规范课程设计教学要求、反映课程设计教学水平的重要依据。为了加强课程设计教学管理,提高课程设计教学质量,特拟定如下基本要求。 1. 课程设计教学一般可分为设计项目的选题、项目设计方案论证、项目设计结果分析、答辩等4个环节,每个环节都应有一定的考核要求和考核成绩。 2. 课程设计项目的选题要符合本课程设计教学大纲的要求,该项目应能突出学生实践能力、设计能力和创新能力的培养;该项目有一定的实用性,且学生通过努力在规定的时间内是可以完成的。课程设计项目名称、目的及技术要求记录于课程设计报告书一、二项中,课程设计项目的选题考核成绩占10%左右。 3. 项目设计方案论证主要包括可行性设计方案论证、从可行性方案中确定最佳方案,实施最佳方案的软件程序、硬件电路原理图和PCB图。项目设计方案论证内容记录于课程设计报告书第三项中,项目设计方案论证主要考核设计方案的正确性、可行性和创新性,考核成绩占30%左右。 4. 项目设计结果分析主要包括项目设计与制作结果的工艺水平,项目测试性能指标的正确性和完整性,项目测试中出现故障或错误原因的分析和处理方法。项目设计结果分析记录于课程设计报告书第四项中,考核成绩占25%左右。 5. 学生在课程设计过程中应认真阅读与本课程设计项目相关的文献,培养自己的阅读兴趣和习惯,借以启发自己的思维,提高综合分和理解能力。文献阅读摘要记录于课程设计报告书第五项中,考核成绩占10%左右。 6. 答辩是课程设计中十分重要的环节,由课程设计指导教师向答辩学生提出2~3个问题,通过答辩可进一步了解学生对课程设计中理论知识和实际技能掌握的程度,以及对问题的理解、分析和判断能力。答辩考核成绩占25%左右。 7.学生应在课程设计周内认真参加项目设计的各个环节,按时完成课程设计报告书交给课程设计指导教师评阅。课程设计指导教师应认真指导学生课程设计全过程,认真评阅学生的每一份课程设计报告,给出课程设计综合评阅意见和每一个环节的评分成绩(百分制),最后将百分制评分成绩转换为五级分制(优秀、良好、中等、及格、不及格)总评成绩。 8. 课程设计报告书是实践教学水平评估的重要资料,应按课程、班级集成存档交实验室统一管理。

基于多线程的端口扫描程序课程设计报告

滁州学院 课程设计报告 课程名称: 设计题目:基于多线程的端口扫描程序 院部:计算机与信息工程学院 专业:网络工程 组别:第六组 起止日期: 2012 年12月31日~2013 年1月6日指导教师: 计算机与信息工程学院二○一二年制

课程设计任务书 目录 1 需求分析. 0 1..1 网络安全 0 1.2 课程背景 0 1.3 扫描器 0 1.4 多线程扫描器介绍 (1) 错误! 未定义书签。

错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 1.5 端口扫描 (2) 2 概要设计. (3) 2.1 整体框架设计 (3) 2.2 流程图描述 (3) 3 详细设计. (3) 3.1 端口扫描线程启动 (3) 3.2 GUI 图形界面 (5) 3.3 按钮监听及异常处理 (6) 4 调试与操作说明. (8) 4.1 运行界面 (8) 4.2 扫描结果 (8) 4.3 错误提示 (8) 5 课程设计总结与体会. (8) 6 参考文献. (9) 7 致谢. (9) 8 附录. 0 1 需求分析 1..1 网络安全二十一世纪是信息化、网络化的世纪,信息是社会发展的重要资源。信息安全保障能力是一个国家综合国力、经济竞争实力和生存能力的重要组成部分,是世界各国在奋力攀登的制高点。网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行。网络安全包括技术领域和非技术领域两大部分: 非技术领域包括一些制度、政策、管理、安全意识、实体安全

等方面的内容; 技术领域包括隐患扫描、防火墙、入侵检测、访问控制、虚拟专用网、CA 认证、操作系统等方面的内容。这些技术的目标是保证信息的可控性、可用性、保密性、完整性、和不可抵赖性。端口扫描属于安全探测技术范畴,对应于网络攻击技术中的网络信息收集技术。 1.2 课程背景 随着Internet 的不断发展,信息技术已成为促进经济发展、社会进步的巨大推动力。端口扫描技术是网络安全扫描技术一个重要的网络安全技术。与防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。安全扫描是安全技术领域中重要的一类。通过扫描能自动检测远端或本地主机系统信息,包括主机的基本信息(如计算机名、域名、组名、操作系统 型等)、服务信息、用户信息以及漏洞信息,它的重要性在于能够对网络进行安全评估,及时发现安全隐患,防患于未然。 网络的安全状况取决于网络中最薄弱的环节,任何疏忽都有可能引入不安全的因素,最有效的方法是定期对网络系统进行安全分析,及时发现并修正存在的脆弱,保证系统安全。 国外安全扫描技术的历史可以追溯到20 世纪90 年代,当时因特网刚刚起步,但是在过去的十年内,扫描技术飞速发展,迄今为止,其扫描技术已经非常完善,但是在全面性,隐蔽性和智能性上还有待提高。安全扫描从最初专门为UNIX 系统而编写的一些只有简单功能的小程序发展到现在,已经出现了可以运行多个操作系统平台上的,具有复杂功能的系统程序。 国内的扫描技术是在国外的扫描器基础上发展起来的。其中有一些专门从事安全技术的公司。这些公司的扫描器以硬件为主,其特点是执行速度快,不像软件一样受到安装主机系统的限制。 然而对于更多的基于主机的端口扫描而言,简单,实用,可靠才是它们的长处。 1.3 扫描器扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种TCP端口的分配。这就能让我们间接的或直观的了解到远程主机所存在的安全问题。为了保证网络中计算机的安全性,必须采取主动策略, 快速、及时、准确、安全的检测出网络中计算机及防火墙开放的和未开放的端口。计算机端口扫描技术就是这种主动防御策略实现的重要技术手段。 扫描器采用模拟攻击的形式对目标可能存在的已知安全漏洞进行逐项检查。目标可以是工作站、服务器、交换机、数据库应用等各种对象。然后根据扫描结果向系统管理员提供周 密可靠的安全性分析报告,为提高网络安全整体水平产生重要依据。在网络安全体系的建设中,安全扫描工具花费低、效果好、见效快、与网络的运行相对对立、安装运行简单,可以大规模减少安全管理员的手工劳动,有利于保持全网安全政策的统一和稳定。 1.4 多线程扫描器介绍 在java 中,组件放置在窗体上的方式是完全基于代码的。组件放置在窗体上的方式通常不是通过绝对坐标控制,而是由“布局管理器”根据组件加入的顺序决定其位置。每个容器都有一个属于的自己布局管理器。使用不同的布局管理器,组件大小,位置和形状将大不相同。表格型布局管理器将容器划分成为一个多行多列的表格,表格的大小全部相同,是由其中最大的组件所决定。通过add 方法可以将组件一一放在每个表格

相关主题