端口掃描器實現(xiàn)_第1頁
端口掃描器實現(xiàn)_第2頁
端口掃描器實現(xiàn)_第3頁
端口掃描器實現(xiàn)_第4頁
端口掃描器實現(xiàn)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

作者簽名 日期 導師簽名 日期 院長簽名 日期 作者簽名 導師簽名 日期目引 端口掃描概 端口掃描有關(guān)知 端口的基本概 常見端口介 端口掃描器功效介 慣用端口掃描技 TCPconnect()掃 TCPSYN掃 TCPFIN掃 IP段掃 TCP反向ident掃 FTP返回攻 實驗流程和運行流 實現(xiàn)流 程序中重要的函 主流程 總 提出問 解決問 心得體 致 參考文 (安陽師范學 人文管理學 河 安 摘要:TCPconnectTCP/IPc++VC6.0核心詞:端口掃描器;IP理解客戶機-服務(wù)器與端口掃描之間的工作原理,完畢對目的主機端口掃描功效的實現(xiàn),對于畢業(yè)設(shè)計建設(shè),首先應(yīng)考慮選擇一種實驗平臺,考慮到windows操作系統(tǒng)在pc機上的壟斷地位,再加上microsoft提供的辦公軟件、數(shù)據(jù)軟件的通用性,使得現(xiàn)有的信息系統(tǒng)大都建立在windows大多數(shù)是針對windows操作系統(tǒng)[1]windowsTCP/IP端口建立連接并的不同,端口分為兩種,一種是tcp端口,一種是udp端口。計算機之間互相通信的時候,種方式大多采用tcp合同;一種是發(fā)送后來就不管了,不去確認信息與否達成,這種方式大多采用udptcp端口和udp16bit0102321FTP25SMTP80HTTP135RPC102465535,這些端標語普統(tǒng)提出訪問網(wǎng)絡(luò)的申請,那么系統(tǒng)就能夠從這些端標語中分派一種供該程序使用。例如8080TCP/IPIP地址和端口作為套接字,它代表TCP連接的一種連接端,普通稱為Socket。具體來說,就是用IP這個大樓有好多入口(端口,進到不同的入口中就能夠找到不同的公司(進程)。如果要和遠程主機AATCPconnect()TCPSYNTCPSYNSYNRSTSYNTCPSYNSYN大優(yōu)點就是速度,在Internet上,如果不存在防火墻,SYN掃描每秒鐘能夠掃描數(shù)千個端口,但是SYNTCPFINTCPRST否都會直接返回RST數(shù)據(jù)包,無法對端口狀態(tài)進行判斷。IPTCP反向identFTP通信連接。然后請求這個server-PI激活一種有效的server-DTP(數(shù)據(jù)傳輸進程)來給圖 源程序編譯頁輸入想要掃描的網(wǎng)段,然后將輸入的網(wǎng)段轉(zhuǎn)化為可排序的ip//功效 輸入一種IP段,輸出該IP段內(nèi)的端口開放狀況信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>//線程函數(shù),掃描每一種DWORDWINAPIThreadFunc(LPVOID{//獲取需要掃描的//char*pStrIp=unsignedlongulScanIp*(unsignedlong*)th_para;intindex=0; SOCKETlink_sock; shortselect_ret; shortport; while(index<PORTSNUM){portg_portsTOscan[index];//創(chuàng)立數(shù)據(jù)流套接字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();主函數(shù)InitProc();初始化UserInput();輸入ScanIp(g_startIp,g_endIp,g_map_ScanResult);開始掃描 OutPutScanInfo();DWORDWINAPIThreadFunc(LPVOIDth_para); unsignedlongInvertIp(unsignedlongsrcIp);將ip&vec_ip);將全部ip排序放在一種數(shù)組內(nèi)ip

圖 函數(shù)主流程圖 開始界闡明:可掃描的IP段為-54圖 掃描界

圖 成果界Web80,因此只需輸入網(wǎng)址即可,不用輸入“:80”了。有些木馬程80Executor、RingZero135135RPC(RemoteProcedureCall,遠程過程調(diào)用合DCOM(分布式組件對象模型)RPCDCOMHTTPRPCRPCTCP/IP的消息造成的。該漏洞會影響到RPCDCOM135。445445445(1)(2)(3)connect()函數(shù)去連接這個辦法更加可靠且易connect()函數(shù)的連接過程有些許掌握,更有助于軟件的開發(fā)。在面對幾千甚數(shù)并運行來找到一種適宜的最大線程數(shù)量,能夠?qū)⒎懂爮?00010000,再到ipsocketc++語言。在這次設(shè)計中在解決線程上碰到了很大麻煩,但是通過上網(wǎng)查找和課本,socket6.趙樹升,趙韶平.信息安全原理與實踐[M].李雷,端口掃描辦法的原理.實現(xiàn)和防御[J].電腦編程技巧和維護,,(5):21-劉文濤,網(wǎng)絡(luò)安全編程技術(shù)與實例[M].鄒新國.計算機信息與網(wǎng)絡(luò)安全技術(shù)[M].濟南市:黃河出版社,肖微,端口掃描技術(shù)的原理及原理[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,,(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//啟動的線程數(shù),1IP1個線程longg_runThreadNum;//socket // //socket模式設(shè)立,儲存socket信息constshortTIMEOUT=1; //socketHANDLEg_PortMutex;HANDLEHANDLE //IPmultimap<unsignedlong,string>//------------------------------------------------------------------------------------------------------------------//線程函數(shù),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= //設(shè)立套接字為非阻塞模式,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轉(zhuǎn)化成能直接遞增和遞減的地址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轉(zhuǎn)換成能夠遞增比較的類型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型存到數(shù)組中供掃描//----------------------------------------------------------------------------------------------------------------//功效 輸入一種IP段,輸出該IP段內(nèi)的端口開放狀況信intScanIp(conststring&start_Ip,conststring&endIp,multimap<unsignedlong,string>{//IPIP到全局數(shù)組中去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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論