基于多线程的端口扫描工具设计

基于多线程的端口扫描工具设计

ID:20422797

大小:79.50 KB

页数:7页

时间:2018-10-13

基于多线程的端口扫描工具设计_第1页
基于多线程的端口扫描工具设计_第2页
基于多线程的端口扫描工具设计_第3页
基于多线程的端口扫描工具设计_第4页
基于多线程的端口扫描工具设计_第5页
资源描述:

《基于多线程的端口扫描工具设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于多线程的端口扫描工具设计摘要:计算机网络给人们的生活带来了巨大便利,但互联网是一个面向公众的开放系统,对数据的保密性和信息的安全性考虑得并不完善,存在着诸多隐患,网络安全形势日趋严峻。在众多入侵检测技术当中,端口信息探测技术引起了越来越多人的关注。本文通过阐述端口扫描与多线程的原理,介绍了一种高效率的端口扫描探测工具。关键词:网络安全;入侵检测;端口扫描;多线程;对于网络入侵而言,攻击者在选定一个目标时,首先要获取该目标的一些基本信息,如其端口开放情况,再根据该端口的安全性,选择是否为注入木马的“后门

2、”。在这个过程中,使用端口扫描就是其中最简单但却是最重要的步骤之一,它可以完成上述任务,为下一步攻击做准备。但是一般而言,单一或少量的端口扫描是没有意义的,原因是计算机端口数量较多,端口扫描必须在短时间内得到结果才有攻击意义。因此,就需要一种可以充分利用现有计算机资源的技术,那就是多线程。1Winsock1.1Winsock概述Winsock是从BerkeleySockets扩展而来的,其在继承BerkeleySockets的基础上,又进行了新的扩充。这些扩充主要是提供了一些异步函数,并增加了符合WIND

3、OWS消息驱动特性的网络事件异步选择机制。Winsock由两部分组成:开发组件和运行组件。开发组件:WindowsSockets实现文档、应用程序接口(API)引入库和一些头文件。运行组件:WindowsSockets应用程序接口的动态链接库(WINSOCK.DLL)。1.2Winsock原理在TCP/IP网络中两个进程间的相互作用模式是客户端/服务器模式。服务器流程如下:(1)打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。(2)等待客户请求到达该端口。(3)接收到重复服务请求,处理

4、该请求并发送应答信号。(4)返回第二步,等待另一客户请求。(1)关闭服务器。客户端流程:(1)打开一通信通道,并连接到服务器所在主机的特定端口。(2)向服务器发送服务请求报文,等待并接收应答•’继续提出请求。(3)请求结束后关闭通信通道并终止。2传输控制协议TCP2.1TCP概述传输控制协议TCP是TCP/IP协议栈中的传输层协议,它通过序列确认及包重发机制,提供可靠的数据流发送和到应用程序的虚拟连接服务。与IP协议相结合,TCP组成了因特网协议的核心。2.2TCP三次握手原理第一次握手:建立连接时,客户

5、端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+l),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+l),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。2.1TCP的端口号TCP段结构中端口地址都是16比

6、特,可以有在0到65535范围内的端口号。3端口扫描技术3.1端口扫描技术的概述端口扫描技术是指一种检查目标系统是否开放的TCP或UDP端口信息收集技术。它的具体方法是向目标机器的各个端口发送连接请求,根据返回的响应,判断在目标机器上是否开放了这些端口。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。3.2常见的端口扫描方式从TCP的概念中知道,TCP建立连接时有三次握手,基于这个建立过程我们可以得知,假如要扫描某一个TCP端口,可以向该端口发送一个SYN包,如果该端口处于打开状态,我们就可

7、以收到一个SYN+ACK包,也就是说,如果收到SYN+ACK包,就可以判断目标端口处于打开状态,否则,目标端口处于关闭状态。这利用了TCP三次握手的前两次握手,这就是TCP端口扫描的基本原理。4多线程4.1多线程概念在计算机编程中,一个基本的概念就是同时对多个任务加以控制。许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。多线程指程序中多个片断同时执行,它们只要求将问题划分进入独立运行的程序片断中,使整个程序能更迅速地响应用户的请求。在一个程序中,这些独立运行的片断叫作“线

8、程”(Thread),利用它编程的概念就叫作“多线程处理”。4.2互斥锁互斥锁用来保证一段时间内只有一个线程在执行一段代码。必要性显而易见:假设各个线程向同一个文件顺序写入数据,最后得到的结果一定是灾难性的。所以在编程中,引入了对象互斥锁的概念,用来保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。对共享资源的访问,要对互斥量进行加锁,如果互斥量已经上了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。