版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作者签名 日期 导师签名 日期 院长签名 日期 作者签名 导师签名 日期目引 端口扫描概 端口扫描有关知 端口的基本概 常见端口介 端口扫描器功效介 惯用端口扫描技 TCPconnect()扫 TCPSYN扫 TCPFIN扫 IP段扫 TCP反向ident扫 FTP返回攻 实验流程和运行流 实现流 程序中重要的函 主流程 总 提出问 解决问 心得体 致 参考文 (安阳师范学 人文管理学 河 安 摘要:TCPconnectTCP/IPc++VC6.0核心词:端口扫描器;IP理解客户机-服务器与端口扫描之间的工作原理,完毕对目的主机端口扫描功效的实现,对于毕业设计建设,首先应考虑选择一种实验平台,考虑到windows操作系统在pc机上的垄断地位,再加上microsoft提供的办公软件、数据软件的通用性,使得现有的信息系统大都建立在windows大多数是针对windows操作系统[1]windowsTCP/IP端口建立连接并的不同,端口分为两种,一种是tcp端口,一种是udp端口。计算机之间互相通信的时候,种方式大多采用tcp合同;一种是发送后来就不管了,不去确认信息与否达成,这种方式大多采用udptcp端口和udp16bit0102321FTP25SMTP80HTTP135RPC102465535,这些端标语普统提出访问网络的申请,那么系统就能够从这些端标语中分派一种供该程序使用。例如8080TCP/IPIP地址和端口作为套接字,它代表TCP连接的一种连接端,普通称为Socket。具体来说,就是用IP这个大楼有好多入口(端口,进到不同的入口中就能够找到不同的公司(进程)。如果要和远程主机AATCPconnect()TCPSYNTCPSYNSYNRSTSYNTCPSYNSYN大优点就是速度,在Internet上,如果不存在防火墙,SYN扫描每秒钟能够扫描数千个端口,但是SYNTCPFINTCPRST否都会直接返回RST数据包,无法对端口状态进行判断。IPTCP反向identFTP通信连接。然后请求这个server-PI激活一种有效的server-DTP(数据传输进程)来给图 源程序编译页输入想要扫描的网段,然后将输入的网段转化为可排序的ip//功效 输入一种IP段,输出该IP段内的端口开放状况信intScanIp(conststring&start_Ip,conststring&endIp,multimap<unsignedlong,string>&ouputMap){intscanNum=g_vec_IpToScan.size();g_runThreadNumscanNum;cout<<" 共有"<<scanNum<<"个IP"<<//对每个IPfor(inti=0;i<scanNum;{}return}//保存IPmultimap<unsignedlong,string>//线程函数,扫描每一种DWORDWINAPIThreadFunc(LPVOID{//获取需要扫描的//char*pStrIp=unsignedlongulScanIp*(unsignedlong*)th_para;intindex=0; SOCKETlink_sock; shortselect_ret; shortport; while(index<PORTSNUM){portg_portsTOscan[index];//创立数据流套接字link_sock=socket(AF_INET,SOCK_STREAM,0);if(link_sock==INVALID_SOCKET)//coutlink_socksocket失败:错误号为:"<<GetLastError()<<endl;//cout<<"***尚有_"<<"_个扫描线程进行中**"<<endl;return-1;}voidCleanProc()//{while(1){if(g_runThreadNum==0){}}}int{cout 扫描到"<<g_map_ScanResult.size()"<<multimap<unsignedlong,string>::iteratoriter=g_map_ScanResult.begin();ofstreamout("out.txt");cout g_map_ScanResult.size()"<<for(;iter!=g_map_ScanResult.end();{ <<iter->second<<endl;cout<<iter->second<<}intmain();主函数InitProc();初始化UserInput();输入ScanIp(g_startIp,g_endIp,g_map_ScanResult);开始扫描 OutPutScanInfo();DWORDWINAPIThreadFunc(LPVOIDth_para); unsignedlongInvertIp(unsignedlongsrcIp);将ip&vec_ip);将全部ip排序放在一种数组内ip
图 函数主流程图 开始界阐明:可扫描的IP段为-54图 扫描界
图 成果界Web80,因此只需输入网址即可,不用输入“:80”了。有些木马程80Executor、RingZero135135RPC(RemoteProcedureCall,远程过程调用合DCOM(分布式组件对象模型)RPCDCOMHTTPRPCRPCTCP/IP的消息造成的。该漏洞会影响到RPCDCOM135。445445445(1)(2)(3)connect()函数去连接这个办法更加可靠且易connect()函数的连接过程有些许掌握,更有助于软件的开发。在面对几千甚数并运行来找到一种适宜的最大线程数量,能够将范畴从100010000,再到ipsocketc++语言。在这次设计中在解决线程上碰到了很大麻烦,但是通过上网查找和课本,socket6.赵树升,赵韶平.信息安全原理与实践[M].李雷,端口扫描办法的原理.实现和防御[J].电脑编程技巧和维护,,(5):21-刘文涛,网络安全编程技术与实例[M].邹新国.计算机信息与网络安全技术[M].济南市:黄河出版社,肖微,端口扫描技术的原理及原理[J].网络安全技术与应用,,(7):32-RealizeASimplePortLi(HumanisticManagementCollegeofAnyangNormalUniversity,Anyang,HenanAbstract:Thedesignedtoimprovecomputersecurityawarenessthroughresearchportscanner.UseTCPconnectscanningprinciple,designatedscanhostviaTCP/IPprotocolhandshakewiththetargethostporttoestablishafullconnection,ifthetargethostthroughtheportwithreply,itindicatesthattheportisopen.Theuseofmulti-threadingtechnologytoachieveaportscanonatargetIPforasetnumberofcomputerportscanningtechnologyistheactivedefenseofthisimportanttechnologytopolicyimplementation.Theportscannerusingc++languagedevelopment,inVC6.0compilerenvironmentthroughthetest.Keywords:portscanner;IPscanner;information#pragmacomment(lib,"ws2_32.lib")#pragmawarning(disable:4786)#include#include<strstream>#include<winsock2.h>#include<windows.h>#include<string>#include<vector>#include<map>#include<fstream>#include<time.h>//#include"IpScan.h"usingnamespace//全局变量//short144,161,162,443,445,1024,1080,1433,1434,1755,3306,4000,5010,5190,5631,5632,8000,8080constshortPORTSNUMsizeof(g_portsTOscan)sizeof(short);////vector<unsignedlong>g_vec_IpToScan;stringg_startIp;string//启动的线程数,1IP1个线程longg_runThreadNum;//socket // //socket模式设立,储存socket信息constshortTIMEOUT=1; //socketHANDLEg_PortMutex;HANDLEHANDLE //IPmultimap<unsignedlong,string>//------------------------------------------------------------------------------------------------------------------//线程函数,DWORDWINAPIThreadFunc(LPVOID{////char*pStrIp=unsignedlongulScanIp=*(unsignedintindex=0; SOCKETlink_sock; //SOCKET描述shortselect_ret; //select异步返回值shortport; while(index<{port=//link_sock=socket(AF_INET,SOCK_STREAM,0);if(link_sock==INVALID_SOCKET){//coutlink_socksocket失败:错误号为GetLastError()endl;//cout"***尚有_"<<g_runThreadNum"_个扫描线程进行中**"<<return-} FD_SET(link_sock,&set_flag);用于在文献描述符集合中增加一种新的文献描述符 scan_addr.sin_family=AF_INET;scan_addr.sin_addr.s_addr=ulScanIp;scan_addr.sin_port=htons(port);unsignedlongsock_set= //设立套接字为非阻塞模式,0connect(link_sock,(structsockaddr*)&scan_addr,sizeof(scan_addr));//IP口select_retselect(0,NULL,&set_flag,NULL,&g_timeout);//if(select_ret==0||select_ret==-{}{strstreamstream_result;structin_addripaddr;ipaddr.s_addr=ulScanIp;char*pStrIp=stream_result<<"\t 主机地址为pStrIpt找到开放的端口:"<<port<<'\0';string}}shutdown(link_sock0);//cout"****尚有_"<<g_runThreadNum"_个扫描线程进行中****"<<return}//---------------------------------------------------------------------------------------------------------//IP转化成能直接递增和递减的地址unsignedlongInvertIp(unsignedlongsrcIp){unsignedcharfirst;unsignedcharsecond;unsignedcharthird;unsignedcharfourth; (srcIp >> 24) & 0x00FF; (first<<24)|(second<<16)|(third<<8)|}//-----------------------------------------------------------------------------------------------//IPIPunsignedlongintGetIpToScan(conststring&StartIp,conststring&EndIp,vector<unsignedlong>{//IPunsignedlongulStartIp=inet_addr(StartIp.c_str());unsignedlongulEndIp=INADDR_NONE==INADDR_NONE==){cout<<" IP"endl;return-1;}//////////////IPIP段/////////////////////////////////////if(ulStartIp==ulEndIp&&ulStartIp!=0){return0;}if(ulStartIp==0&&ulEndIp=={return}if(ulStartIp=={return0;}if(ulEndIp=={return}//IP转换成能够递增比较的类型ulStartIp=InvertIp(ulStartIp);ulEndIp=InvertIp(ulEndIp);//指定前后次序,ulEndIp较大unsignedlongmax_ip;if(ulStartIp>{max_ip=ulStartIp;ulStartIp=ulEndIp;ulEndIp=max_ip;}intipnums=ulEndIp-for(inti=0;i<={}return}
//IPunsignedlong型存到数组中供扫描//----------------------------------------------------------------------------------------------------------------//功效 输入一种IP段,输出该IP段内的端口开放状况信intScanIp(conststring&start_Ip,conststring&endIp,multimap<unsignedlong,string>{//IPIP到全局数组中去intscanNum=//g_runThreadNum=scanNum;cout<<" scanNum<<"IP要扫描"<<endl;//IPfor(inti=0;i<scanNum;{//要是不间隔时间的话,socket10093错误}return}//------------------------------------------------------------------------------------------------------//int{cout g_map_ScanResult.size()<<""<<multimap<unsignedlong,string>::iteratoriter=ofstreamcout g_map_ScanResult.size()<<""<<for(;iter!=g_map_ScanResult.end();{}return}
<<iter->second<<endl;cout<<iter->second<<endl;//---------------------------------------------------------------------------------------------------void{ IP时,IP. IP时,IP. IP为cin>> IP为cin>>*********"<<}//-----------------------------------------------------------------------------------------------------------voidInitProc() //socket ws_result=if(ws_result!={cout"socketWSAStartu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辰阳明德小学S版四年级语文下册教案(表格式)
- 博大精深的中华文化教学参考教案新人教必修
- 《萝卜回来了》教学设计
- 《物流运输实务》电子教案
- 旅游景区导游聘用合同范本
- 养猪场租赁合同:养殖产业转型
- 医疗美容医师聘用合同
- 健身房宿舍管理员招聘启事
- 咖啡馆冬季空调租赁合同范文
- 影剧院指示牌安装协议
- 新生儿肠胀气课件
- 顾客满意理念与技巧课件
- 付款条件与支付方式
- 数字化赋能绿色智能制造案例分析
- 新生儿常见问题及护理 课件
- 搜狗拼音输入法打字入门
- 【课件】+现实与理想-西方古典绘画+课件高中美术人美版(2019)美术鉴赏
- 纯银的金相组织分析报告
- 2024年清洗剂行业未来五年发展预测分析报告
- 客户经理关键素质课件
- 爬宠行业的分析
评论
0/150
提交评论