青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統(tǒng)計(jì)

最新評(píng)論

一個(gè)構(gòu)造SYN包做掃描的例子: ------------------ 轉(zhuǎn)

//---------------------------------------------------------------------------  
  //Filename:ss.c  
  //Author:yunshu  
  //---------------------------------------------------------------------------  
  //Filename:ss.c  
  //Author:yunshu  
  //Last:2004-04-02  
  //Thank   Wineggdrop's   Code  
  //---------------------------------------------------------------------------  
  #include   <winsock2.h>  
  #include   <ws2tcpip.h>  
  #include   <MSTcpIP.h>  
  #include   <stdio.h>  
  #include   <string.h>  
   
  #pragma   comment(lib,"ws2_32")  
   
  ////////////////////////////////////////////////////////////////  
  //全局變量  
  ////////////////////////////////////////////////////////////////  
   
  #define   srcPort   8296  
   
  char   srcIP[20]   =   {0};//定義源地址  
  char   tgtIP[20]   =   {0};//定義目的地址  
  int     portNow;//定義正在掃描的端口  
   
  //標(biāo)準(zhǔn)端口列表  
  int   ports[20]   =   {21,22,23,25,53,79,80,110,111,135,139,445,554,1080,1433,1521,3306,3389,5631,8080};  
   
  typedef   struct   ip_hdr  
  {  
          unsigned   char   h_verlen;   //4位首部長(zhǎng)度,4位IP版本號(hào)  
          unsigned   char   tos;   //8位服務(wù)類型TOS  
          unsigned   short   total_len;   //16位總長(zhǎng)度(字節(jié))  
          unsigned   short   ident;   //16位標(biāo)識(shí)  
          unsigned   short   frag_and_flags;   //3位標(biāo)志位  
          unsigned   char   ttl;   //8位生存時(shí)間   TTL  
          unsigned   char   proto;   //8位協(xié)議   (TCP,   UDP   或其他)  
          unsigned   short   checksum;   //16位IP首部校驗(yàn)和  
          unsigned   int   sourceIP;   //32位源IP地址  
          unsigned   int   destIP;   //32位目的IP地址  
  }IP_HEADER;  
   
  typedef   struct   tcp_hdr   //定義TCP首部  
  {  
          USHORT   th_sport;   //16位源端口  
          USHORT   th_dport;   //16位目的端口  
          unsigned   int         th_seq;   //32位序列號(hào)  
          unsigned   int         th_ack;   //32位確認(rèn)號(hào)  
          unsigned   char   th_lenres;   //4位首部長(zhǎng)度/6位保留字  
          unsigned   char   th_flag;   //6位標(biāo)志位  
          USHORT   th_win;   //16位窗口大小  
          USHORT   th_sum;   //16位校驗(yàn)和  
          USHORT   th_urp;   //16位緊急數(shù)據(jù)偏移量  
  }TCP_HEADER;  
   
  typedef   struct   tsd_hdr   //定義TCP偽首部  
  {  
          unsigned   long   saddr;   //源地址  
          unsigned   long   daddr;   //目的地址  
          char   mbz;  
          char   ptcl;   //協(xié)議類型  
          unsigned   short   tcpl;   //TCP長(zhǎng)度  
  }PSD_HEADER;  
   
  ////////////////////////////////////////////////////////////////  
  //函數(shù)原形  
  ////////////////////////////////////////////////////////////////  
   
  int                 send_packet();//發(fā)送數(shù)據(jù)函數(shù)  
  int                 recv_packet();//監(jiān)聽(tīng)數(shù)據(jù)函數(shù)  
  USHORT           checksum(USHORT   *,   int   );//計(jì)算檢驗(yàn)和函數(shù)  
  void               usage(char   *);//顯示幫助函數(shù)  
  void               check_port(char   *);//判斷端口是否開(kāi)放函數(shù)  
   
   
  ////////////////////////////////////////////////////////////////  
  //main函數(shù)  
  ////////////////////////////////////////////////////////////////  
   
  int   main(int   argc,char   *argv[])  
  {  
          WSADATA                 WSAData;  
          DWORD                     thread_ID   =   1;  
          char                       FAR   hostname[128];  
          struct   hostent   *phe;  
   
          if(argc   !=   2)//檢查命令行參數(shù)是否正確  
          {  
                  usage(argv[0]);  
                  exit(0);  
          }  
   
          if   (WSAStartup(MAKEWORD(2,2),   &WSAData))  
          {  
                  printf("WSAStartup   Error...\n");  
                  exit(0);  
          }  
   
          strcpy(tgtIP,argv[1]);//得到目標(biāo)主機(jī)的ip地址  
   
          gethostname(hostname,128);//獲取本機(jī)主機(jī)名  
   
          phe   =   gethostbyname(hostname);//獲取本機(jī)ip地址結(jié)構(gòu)  
   
          if(phe   ==   NULL)  
          {  
                  printf("Get   LocalIP   Error...\n");  
          }  
   
          strcpy(srcIP,   inet_ntoa(*((struct   in_addr   *)phe->h_addr_list[0])));//得到本機(jī)ip地址  
   
          //調(diào)試用,注釋掉  
          //printf("test\t%s\n",tgtIP);  
          //printf("test\t%s\n",srcIP);  
   
          //開(kāi)啟新線程,接受數(shù)據(jù)包,分析返回的信息  
          CreateThread(NULL,   0,   (LPTHREAD_START_ROUTINE)recv_packet,NULL,0,&thread_ID);  
   
          Sleep(1000);//休息一下再啟動(dòng)發(fā)送數(shù)據(jù)包函數(shù)  
   
          for(int   tmp   =   0;   tmp   <   20;   tmp++)  
          {  
                  ++thread_ID;  
   
                  //要掃描的端口  
                  portNow   =   ports[tmp];  
   
                  //開(kāi)啟新線程,發(fā)送數(shù)據(jù)包  
                  CreateThread(NULL,   0,   (LPTHREAD_START_ROUTINE)send_packet,NULL,0,&thread_ID);  
   
                  //防止生成線程過(guò)快,休息  
                  Sleep(100);  
          }  
   
          Sleep(1000);//等待掃描接結(jié)束  
          WSACleanup();  
          return   0;  
  }   
 
//計(jì)算檢驗(yàn)和函數(shù),完全抄別人的  
  USHORT   checksum(USHORT   *buffer,   int   size)  
  {  
          unsigned   long   cksum=0;  
   
          while(size   >1)  
          {  
                  cksum   +=   *buffer++;  
                  size   -=   sizeof(USHORT);  
          }  
          if(size)  
          {  
                  cksum   +=   *(UCHAR*)buffer;  
          }  
          cksum   =   (cksum   >>   16)   +   (cksum   &   0xffff);  
          cksum   +=   (cksum   >>   16);  
          return   (USHORT)(~cksum);  
  }  
   
  void   usage(char   *prog)  
  {  
          printf("===========================================\n");  
          printf("Used   To   Scan   Remote   Host's   Ports\n");  
          printf("OurTeam:<a     target="_blank">http://www.ph4nt0m.net\n</a>");  
          printf("Usage:%s   TargetIP\n",prog);  
          printf("===========================================\n");  
          exit(0);  
  }  
   
   
  //發(fā)送數(shù)據(jù)包的函數(shù)  
  int   send_packet()  
  {  
          SOCKET                           sendSocket;  
          BOOL                               flag;  
          int                                 timeout;  
          SOCKADDR_IN                 sin;  
          IP_HEADER                     ipHeader;  
          TCP_HEADER                   tcpHeader;  
          PSD_HEADER                   psdHeader;  
          char                               szSendBuf[60];  
          int                                 ret;  
          unsigned   long             source_ip;  
          unsigned   long             target_ip;  
   
          //建立原生數(shù)據(jù)socket  
          if((sendSocket   =   WSASocket(AF_INET,   SOCK_RAW,   IPPROTO_RAW,   NULL,   0,   WSA_FLAG_OVERLAPPED))   ==   INVALID_SOCKET)  
          {  
                  printf("Socket   Setup   Error...\n");  
                  return   0;  
          }  
   
          //設(shè)置自己填充數(shù)據(jù)包  
          if(setsockopt(sendSocket,   IPPROTO_IP,   IP_HDRINCL,   (char   *)&flag,   sizeof(flag))   ==   SOCKET_ERROR)  
          {  
                  printf("Setsockopt   IP_HDRINCL   Error...\n");  
                  return   0;  
          }  
   
          //設(shè)置超時(shí)時(shí)間  
          timeout   =   1000;  
          if(setsockopt(sendSocket,   SOL_SOCKET,   SO_SNDTIMEO,   (char   *)&timeout,   sizeof(timeout))   ==   SOCKET_ERROR)  
          {  
                  printf("Setsockopt   SO_SNDTIMEO   Error...\n");  
                  return   0;  
          }  
   
          target_ip   =   inet_addr(tgtIP);  
          source_ip   =   inet_addr(srcIP);  
   
          sin.sin_family   =   AF_INET;  
          sin.sin_port   =   htons(portNow);  
          sin.sin_addr.S_un.S_addr   =   target_ip;  
   
          //填充IP首部  
          ipHeader.h_verlen   =   (4<<4   |   sizeof(ipHeader)/sizeof(unsigned   long));  
          //   ipHeader.tos=0;  
          ipHeader.total_len   =   htons(sizeof(ipHeader)+sizeof(tcpHeader));  
          ipHeader.ident   =   1;  
          ipHeader.frag_and_flags   =   0x40;  
          ipHeader.ttl   =   128;  
          ipHeader.proto   =   IPPROTO_TCP;  
          ipHeader.checksum   =   0;  
          ipHeader.sourceIP   =   source_ip;//源IP  
          ipHeader.destIP   =   target_ip;//目的IP  
   
          //填充TCP首部  
          tcpHeader.th_dport   =   htons(portNow);//目的端口  
          tcpHeader.th_sport   =   htons(srcPort);   //源端口  
          tcpHeader.th_seq   =   0x12345678;  
          tcpHeader.th_ack   =   0;  
          tcpHeader.th_lenres   =   (sizeof(tcpHeader)/4<<4|0);  
          tcpHeader.th_flag   =   2;//syn標(biāo)志位。0,2,4,8,16,32->FIN,SYN,RST,PSH,ACK,URG(推測(cè),哈哈)  
          tcpHeader.th_win   =   htons(512);  
          tcpHeader.th_urp   =   0;  
          tcpHeader.th_sum   =   0;  
   
          //填充tcp偽首部  
          psdHeader.saddr   =   ipHeader.sourceIP;  
          psdHeader.daddr   =   ipHeader.destIP;  
          psdHeader.mbz   =   0;  
          psdHeader.ptcl   =   IPPROTO_TCP;  
          psdHeader.tcpl   =   htons(sizeof(tcpHeader));  
   
          //計(jì)算TCP校驗(yàn)和  
          memcpy(szSendBuf,   &psdHeader,   sizeof(psdHeader));  
          memcpy(szSendBuf   +   sizeof(psdHeader),   &tcpHeader,   sizeof(tcpHeader));  
   
          tcpHeader.th_sum   =   checksum((USHORT   *)szSendBuf,   sizeof(psdHeader)   +   sizeof(tcpHeader));  
   
          //計(jì)算IP檢驗(yàn)和  
          memcpy(szSendBuf,   &ipHeader,   sizeof(ipHeader));  
          memcpy(szSendBuf   +   sizeof(ipHeader),   &tcpHeader,   sizeof(tcpHeader));  
          memset(szSendBuf   +   sizeof(ipHeader)   +   sizeof(tcpHeader),   0,   4);  
          ipHeader.checksum   =   checksum((USHORT   *)szSendBuf,   sizeof(ipHeader)   +   sizeof(tcpHeader));  
   
          memcpy(szSendBuf,   &ipHeader,   sizeof(ipHeader));  
          memcpy(szSendBuf   +   sizeof(ipHeader),   &tcpHeader,   sizeof(tcpHeader));  
   
          //發(fā)送數(shù)據(jù)包  
          ret   =   sendto(sendSocket,   szSendBuf,   sizeof(ipHeader)   +   sizeof(tcpHeader),   0,   (struct   sockaddr*)&sin,   sizeof(sin));  
   
          if(ret   ==   SOCKET_ERROR)  
          {  
                  printf("Send   Packet   Error...\n");  
                  return   0;  
          }  
          else   return   1;  
  }  
   
  int   recv_packet()  
  {  
          SOCKADDR_IN                 sniff;  
          SOCKET                         sock;  
          char                         recvBuffer[65000]   =   {0};//緩沖區(qū)存放捕獲的數(shù)據(jù)  
   
          //建立socket監(jiān)聽(tīng)數(shù)據(jù)包  
          sock   =   socket(AF_INET,SOCK_RAW,IPPROTO_IP);  
   
          sniff.sin_family   =   AF_INET;  
          sniff.sin_port   =   htons(0);  
          sniff.sin_addr.s_addr   =   inet_addr(srcIP);  
   
          //綁定到本地隨機(jī)端口  
          bind(sock,(PSOCKADDR)&sniff,sizeof(sniff));  
   
          //設(shè)置SOCK_RAW為SIO_RCVALL,以便接收所有的IP包  
          //copy來(lái)的  
          DWORD   dwBufferLen[10]   ;  
          DWORD   dwBufferInLen   =   1   ;  
          DWORD   dwBytesReturned   =   0   ;  
          WSAIoctl(sock,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL);  
   
          while(TRUE)  
          {  
                  memset(recvBuffer,0,sizeof(recvBuffer));  
   
                  //開(kāi)始捕獲數(shù)據(jù)包  
                  int   bytesRecived   =   recv(sock,recvBuffer,sizeof(recvBuffer),0);  
                  if(bytesRecived   <=   0)  
                  {  
                          break;  
                  }  
                  check_port(recvBuffer);  
          }  
          return   1;  
  }  
   
  void   check_port(char   *buffer)  
  {  
          IP_HEADER                 *ipHeader;//IP_HEADER型指針  
          TCP_HEADER                 *tcpHeader;//TCP_HEADER型指針  
   
          ipHeader   =   (IP_HEADER   *)buffer;  
          tcpHeader   =   (TCP_HEADER   *)   (buffer+sizeof(IP_HEADER));  
   
          if(ipHeader->sourceIP   !=   inet_addr(tgtIP))  
          {  
                  return;  
          }  
   
          for(int   tmp=0;tmp<20;tmp++)  
          {  
                  //SYN+ACK   ->   2+16=18(也是推測(cè),哈哈)  
                  if(tcpHeader->th_flag   ==   18   &&   tcpHeader->th_sport   ==   htons(ports[tmp]))  
                  {  
                          printf("[Found]\t%s\tport\t%d\tOpen\n",tgtIP,ports[tmp]);  
                  }  
          }  
  }

posted on 2009-03-17 20:20 大龍 閱讀(955) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            夜夜爽av福利精品导航| 欧美亚洲日本网站| 欧美精品久久99| 亚洲精品久久久久久下一站 | 黑人一区二区| 狂野欧美一区| 欧美激情91| 午夜在线视频一区二区区别| 亚洲欧美欧美一区二区三区| 制服丝袜亚洲播放| 欧美午夜精品电影| 欧美影片第一页| 欧美综合77777色婷婷| 狠狠久久综合婷婷不卡| 欧美福利视频网站| 国产精品久久久久一区二区三区共| 欧美在线免费视频| 欧美国产综合视频| 日韩一级在线观看| 亚洲自拍啪啪| 亚洲精品看片| 亚洲久久在线| 激情六月综合| 亚洲第一视频网站| 欧美日本一区二区视频在线观看| 欧美在线日韩| 麻豆成人综合网| 欧美亚洲视频在线观看| 欧美高清视频一区二区三区在线观看| 欧美日韩亚洲不卡| 狂野欧美激情性xxxx| 国产精品欧美日韩一区二区| 蜜臀av性久久久久蜜臀aⅴ| 国产精品分类| 亚洲国产成人精品视频| 国产精品色午夜在线观看| 欧美激情在线狂野欧美精品| 国产日韩精品入口| 一区二区高清在线| 亚洲精品一区二区三区樱花| 欧美在线播放高清精品| 一本色道久久综合精品竹菊| 欧美在线观看一区二区三区| 亚洲影院在线观看| 欧美大成色www永久网站婷| 久久av资源网站| 欧美日韩午夜剧场| 亚洲成色777777女色窝| 精品二区视频| 久久久91精品国产一区二区精品| 午夜精品久久久久影视| 欧美小视频在线| 日韩午夜精品视频| 99亚洲一区二区| 欧美精品在线一区二区| 亚洲国产第一| 亚洲日本欧美天堂| 欧美aⅴ99久久黑人专区| 麻豆久久婷婷| 亚洲春色另类小说| 久热精品视频在线| 欧美激情一区二区三区高清视频 | 亚洲免费在线精品一区| 亚洲免费在线观看视频| 国产精品国产三级国产aⅴ入口| 亚洲三级免费| 亚洲天堂成人在线观看| 欧美午夜片欧美片在线观看| 中日韩男男gay无套| 亚洲一区在线直播| 国产欧美va欧美va香蕉在| 香蕉国产精品偷在线观看不卡| 欧美在线观看一区二区| 国产日韩欧美一区二区| 欧美专区在线观看一区| 久久网站免费| 亚洲国产mv| 欧美日韩不卡在线| 亚洲视频久久| 欧美一区二区三区免费视频| 国产农村妇女精品一二区| 久久久久久久高潮| 亚洲国产视频一区二区| 亚洲欧美网站| 一区二区在线视频观看| 欧美国产日韩一区二区在线观看| 日韩写真在线| 久久精品国产成人| 亚洲精品国产精品久久清纯直播| 欧美黑人在线播放| 一本综合精品| 久久精品91| 91久久精品视频| 国产精品一区二区三区久久| 久久久久久亚洲综合影院红桃 | 欧美亚洲综合网| 亚洲国产精品尤物yw在线观看| 亚洲一线二线三线久久久| 老司机精品福利视频| 亚洲图片在线观看| 在线观看欧美激情| 国产精品免费看久久久香蕉| 久久夜精品va视频免费观看| 亚洲素人在线| 亚洲国产一区二区a毛片| 欧美一区中文字幕| 99re成人精品视频| 海角社区69精品视频| 欧美体内谢she精2性欧美| 久久女同互慰一区二区三区| 中文网丁香综合网| 亚洲国产日韩欧美在线图片| 久久久久久欧美| 亚洲欧美精品在线| 一区二区动漫| 亚洲日本va在线观看| 国产三级欧美三级日产三级99| 欧美日韩理论| 欧美成人自拍| 久久一区二区三区四区| 性欧美大战久久久久久久免费观看 | 欧美日韩国产一区二区| 久久综合久久综合久久综合| 性做久久久久久免费观看欧美| 亚洲品质自拍| 亚洲国产日韩欧美在线99| 免费观看成人网| 久久这里只有精品视频首页| 欧美一级专区免费大片| 亚洲欧美国产精品专区久久| 一区二区三区免费在线观看| 亚洲人成在线播放网站岛国| 亚洲电影在线看| 亚洲国产欧美一区二区三区同亚洲 | 亚洲欧美综合国产精品一区| 一区二区三区视频在线播放| 亚洲精品乱码久久久久久按摩观| 欧美高清视频一区二区| 亚洲电影在线播放| 91久久精品网| 亚洲精品一区二区在线| 亚洲精品久久久久久久久| 亚洲国产精彩中文乱码av在线播放| 另类亚洲自拍| 欧美aⅴ99久久黑人专区| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久精品国产精品| 狼人社综合社区| 欧美成人一区二区三区| 欧美福利电影网| 亚洲精品国产精品国自产观看| 亚洲人久久久| 亚洲图片在区色| 欧美自拍偷拍午夜视频| 久久天天躁夜夜躁狠狠躁2022| 久热精品视频在线观看| 欧美精品久久久久久| 欧美日韩久久| 国产精品五月天| 经典三级久久| 日韩视频在线播放| 亚洲欧美日韩在线不卡| 久久狠狠亚洲综合| 欧美激情一区二区三区高清视频| 亚洲裸体俱乐部裸体舞表演av| 中文亚洲视频在线| 久久高清国产| 欧美精品亚洲精品| 国产农村妇女毛片精品久久麻豆 | 亚洲精品在线三区| 国语对白精品一区二区| 亚洲欧洲精品成人久久奇米网| 一本色道久久99精品综合| 午夜精品久久久久久久99黑人| 久久婷婷综合激情| 99ri日韩精品视频| 久久久av网站| 国产精品99免费看 | 亚洲一区在线免费| 久久中文精品| 亚洲视频在线免费观看| 久久香蕉国产线看观看网| 欧美色偷偷大香| 影音先锋久久久| 午夜精品福利在线| 亚洲国产天堂久久综合网| 亚洲一二三区在线观看| 另类成人小视频在线| 国产精品午夜av在线| a91a精品视频在线观看| 另类图片综合电影| 亚洲欧美在线免费| 欧美四级电影网站| 最近看过的日韩成人| 久久久精品午夜少妇| 亚洲深夜福利视频| 欧美日韩国产丝袜另类| 亚洲欧洲日韩在线| 老司机精品福利视频| 欧美影院成年免费版|