优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

基于C#端口扫描器的实现

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
摘? 要 由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致新的系统漏洞层出不穷。黑客或者计算机病毒要想顺利渗透入目标计算机中,不管使用何种技术手段,必然要寻找目标计算机的漏洞为自己打开入侵的大门。为了保证网络中计算机的安全性,必须采取主动策略,快速、及时、准确、安全的检测出网络中计算机及防火墙开放的和未开放的端口。计算机端口扫描技术就是这种主动防御策略实现的重要技术手段。 本课题通过端口扫描器的研究来提高对计算机安全的认识。该端口扫描器采用C#语言开发,在VC 2005.net编译环境下通过测试。利用TCP connect扫描原理,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机该端口有回复,则说明该端口开放。利用多线程技术实现了对一目标IP进行设定数目的端口扫描,对多IP段的特定端口进行扫描。此外,还利用委托技术实现对界面元素的刷新。 关键字:端口扫描器;IP段扫描;C#的多线程编程 3.1 说明 端口扫描通常指用同一个信息对目标主机的所有需要扫描的端口进行发送探测数据包即扫描,然后,根据返回端口的状态来分析目标主机端口是否打开,是否可用。端口扫描通过与目标主机的TCP/IP端口建立连接并请求某些服务,记录目标主机的应答,收集目标主机相关信息,从而发现目标主机某些内在的安全弱点,并且确定该端口什么服务正在进行并获取该服务的信息。 端口扫描也可以通过捕获本地主机或服务器的流入流出IP数据包来监视本地主机的运行情况,它仅能对接收到的数据进行分析,帮助我们发现目标主机的某些内在的弱点,而不会提供进入一个系统的详细步骤。 3.2 基于C#端口扫描器的系统分析与设计 端口是主机与外界通讯交流的数据出入口。端口分为硬件端口和软件端口,所谓硬件端口又称为接口,包括:USB端口、串行端口、并行端口等。软件端口一般指网络中面向连接服务(TCP)和无连接服务(UDP)的通讯协议的端口。一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。通过端口扫描,发现系统的安全漏洞。它使系统用户了解系统目前向外界提供了哪些服务,从而为系统用户管理网络提供了一种手段。 本课题利用TCP connect()扫描:也称全连接扫描。扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用TCPclient类的connect()方法。如果端口开放,则连接将建立成功;否则,若返回-1则表示端口关闭。建立连接成功:响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。 3.3 基于C#端口扫描器的期望 ?我们对基于C#端口扫描器的期望主要有下面几个方面: ?? 1:多线程,主要实现高效率扫描。 ?? 2:对一目标IP进行设定数目的端口扫描。 ?? 3:对一目标IP段的特定端口进行扫描。 3.4 端口扫描器的实现与分析 本端口扫描器是采用Vs.net 2005开发,C#作为一门新兴的语言,有着VC++的强大灵活,又有着VB等的简单易用。在网络编程方面更显示出它的强大功能。使用的类库是.Net框架中的类库———.Net Framework SDK。在.Net Framework SDK中为网络编程提供了二个名字空间:“System.Net”和“System.Net.Sockets”。C#就是通过这二个名字空间中封装的类和方法实现络通讯的。通过这二个名字空间可以开发出多种网络应“System.Net.Sockets”名字空间为需要控制网络访问的开发人员提供了Windows Sockets(winsock)接口的托管实现。“System.Net”名字空间中的所有其他网络访问类都建立在该套接字Socket实现之上,如TCPClinet、TPCListener和UDPclinet类封装有关创建到Internet的TCP和UDP连接的详细信息;NetworkStream类则提供用于网络访问的基础数据流等,常见的许多Internet服务都可以见到Socket的踪影,如Telnet,Http、Email、TCP等,这些服务尽管通讯协议Protocol的定义不同,但是其基础的传输都是采用Socket。我们只需通过设置控件的属性并调用其方法就可轻易连接到一台远程计算机中,了解其所开放的端口,并且还可以双向交换数据。