手机版

安全扫描技术课程设计(10)

发布时间:2021-06-07   来源:未知    
字号:

tcp端口扫描及tcp服务器搭建

使用Socket之前必须使用WSAStarup函数。该函数的第一个参数wVersionRequested:一个WORD(双字节)型数值,指定了应用程序需要使用的Winsock规范的最高版本 ;第二个参数lpWSAData: 指向WSADATA数据结构的指针,用来接收Windows Sockets实现的细节。函数执行成功后返回0.

WSACleanup函数: int WSACleanup(void);

程序在完成对请求的Socket库的使用后,要调用WSACleanup函树来解除与Socket库的绑定并且释放Socket库所占用的系统资源。

b) 随机端口的产生

本函数以时间作为参数生成随机数种子,本设计中在1-30中取随机数,随机数依次存储在数组中,在每一次生成随机数后都与之前的生成的随机数比较,出现重复则继续生成随即数,直至随机数生成完毕。

随机数生成完后在扫描模块处调用,每进行一次扫描的循环取一个随机数,这样既可实现随机端口的扫描。具体的实现代码如下:

/*----------------------随机端口的生成-----------------------*/ int x; int i,j; int num[30];//声明数组 srand( (unsigned)time(NULL) ); for(i=0;i<30;i++) {leap: x=rand()%100%30; for(j=0;j<i;j++) { if(x==num[j]) goto leap; } num[i]=x; }

/*----------------------end_random----------------------------*/

c) 实现端口扫描

本课程设计端口扫描部分主要调用了由操作系统提供的Connect()函数,这是最基本的TCP扫描。Connect()函数用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速度。如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,我们可以通过同时打开多个套接字,从而加速扫描。使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且被过滤掉。目标计算机的logs文件会显示一连串的连接和连接是出错的服务消息,并且能很快的使它关闭。

d) 通信模块的实现

安全扫描技术课程设计(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)