亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mystar.c

?? linux中的港灣客戶段源程序
?? C
字號:
/*首先還是要感謝mystar的作者netxray,mystar.c大多代碼都是引自mystar*/#include "mystar.h"#include "sendpacket.h"#include "myerr.h"/*   Note that: in this file, the global variables (defined without a leading "static")  from here to the beginning of the definition of main() are referenced by sendpacket.c ( we  reference them in the form of "extern ..." in sendpacket.c) *//* These info should be retrieved from mystar.conf */char         *m_name=NULL;//用戶名char         *m_password=NULL;//密碼static char  *m_nic=NULL;//網卡static int    m_intelligentReconnect=-1; // 0:don't use it, 1: ues it.  NOTE: not supported NOW!!static char  *m_fakeAddress=NULL;  // or set to "123.45.67.89" etc./* These information should be worked out by initialization portion. */unsigned char         m_localMAC[6];//本機的MAC地址unsigned char         m_destMAC[6];//服務器的MAC地址.unsigned char         m_ip[4];	//當前選擇的網卡的IP地址static unsigned char  m_netmask[4];//當前選擇的網卡的子網掩碼static unsigned char  m_netgate[4];//當前選擇的網卡的網關static unsigned char  m_dns1[4];   //當前選擇的網卡的DNS/* 當前認證狀態   0:未找到服務器                      1:已找到服務器,未通過用戶名認證   2:已通過用戶名認證,未通過MD5認證   3:已通過MD5認證,通網成功         */static volatile sig_atomic_t m_state=0;//當前認證狀態//ULONG_BYTEARRAY  m_serialNo;  //序列號,收到第一個有效的Authentication-Success-packet時初始化//ULONG_BYTEARRAY  m_key;       //密碼加密鍵值,在main()函數開始時初始化static void sig_intr(int signo); //do some cleanup work on exit with Ctrl+Cstatic void checkAndSetConfig(void); //configure related parametersint main(int argc, char* argv[]){   libnet_t *                l=NULL;   u_int32_t                 l_ip;   char                      l_errbuf[LIBNET_ERRBUF_SIZE];   struct libnet_ether_addr *l_ether_addr;   pcap_t             *p=NULL;   int                 p_fd;   fd_set              read_set;   char                filter_buf[256];   struct bpf_program  filter_code;   u_int32_t           p_netaddr,p_netmask;   struct pcap_pkthdr *pkt_hdr;   const u_char       *pkt_data;   char                p_errbuf[PCAP_ERRBUF_SIZE];   int		linkto;   u_int16_t       offset;   int             msgLen;   char            msgBuf[256];   char           *pmsgBuf;   int             isFirstPacketFromServer=1;   sigset_t        sigset_full,sigset_zero;   struct timespec timeout;   int packetCount_SentFindServer=0;   int packetCount_SentName=0;   int packetCount_SentPassword=0;   int dhcpmod;   checkAndSetConfig();if((l=libnet_init(LIBNET_LINK, m_nic,l_errbuf))==NULL)       err_quit("libnet_init: %s\n", l_errbuf);   if((p=pcap_open_live(m_nic,65536,0, 500, p_errbuf))==NULL)      { err_msg("pcap_open_live: %s\n",p_errbuf); goto err1; }   p_fd=pcap_fileno(p); //we can pselect() it in the following code.   if((l_ether_addr=libnet_get_hwaddr(l))==NULL)      { err_msg("unable to get local mac address :%s\n",libnet_geterror(l)); goto err2; };   memcpy(m_localMAC,l_ether_addr,sizeof(m_localMAC));   if(m_fakeAddress==NULL)   {	   if((l_ip=libnet_get_ipaddr4(l))==-1)	   {		   err_msg("unable to get ip address--ingored... :%s\n",libnet_geterror(l));		   l_ip=0;	   }	   memcpy(m_ip,&l_ip,sizeof(m_ip));    }    else {}; //in this case , m_ip has been initialized in checkandSetConfig()   if(pcap_lookupnet(m_nic,&p_netaddr,&p_netmask,p_errbuf)==-1)     { err_msg("unable to get netmask--igored... %s\n",p_errbuf); p_netmask=0;}   memcpy(m_netmask,&p_netmask,sizeof(m_netmask));   snprintf(filter_buf,sizeof(filter_buf),FILTER_STR, m_localMAC[0],m_localMAC[1],        m_localMAC[2],m_localMAC[3],m_localMAC[4],m_localMAC[5],m_localMAC[6]);   if(pcap_compile(p, &filter_code,filter_buf, 0, p_netmask)==-1)     { err_msg("pcap_compile(): %s", pcap_geterr(p));  goto err2; }   if(pcap_setfilter(p, &filter_code)==-1)     { err_msg("pcap_setfilter(): %s", pcap_geterr(p)); goto err2; }   pcap_freecode(&filter_code); // avoid  memory-leak   (void)signal(SIGINT,sig_intr);  //We can exit with Ctrl+C   (void)sigfillset(&sigset_full);   (void)sigprocmask(SIG_BLOCK,&sigset_full,NULL); //block all signals.   //search for the server   beginAuthentication:      m_state=0;      (void)SendFindServerPacket(l); //the first time to search for server      packetCount_SentFindServer=1;      packetCount_SentName=0;      packetCount_SentPassword=0;   while(1)    {      (void)sigfillset(&sigset_full);      (void)sigdelset(&sigset_full,SIGINT);      FD_ZERO(&read_set);  FD_SET(p_fd, &read_set);      timeout.tv_sec =3;   timeout.tv_nsec =0; // 1 second      //wait with all signals(except SIGINT) blocked.      switch ( pselect(p_fd+1,&read_set,NULL,NULL,&timeout,&sigset_full) )      {          case -1: //Normally, this case should not happen since sig_intr() never returns!                   goto err2;          case 0:  //timed out                   switch(m_state)                   {                      case 0:                             if(++packetCount_SentFindServer>3)                                { puts("Time out,Restarting authenticaton!"); goto beginAuthentication; }                             (void)SendFindServerPacket(l);                             continue; //jump to next loop of while(1) to receive next packet                      case 1:                             if(++packetCount_SentName>3)                                { puts("Restarting authenticaton!"); goto beginAuthentication; }                             (void)SendNamePacket(l, pkt_data);                             continue;                      case 2:                            if(++packetCount_SentPassword>3)                                { puts("Restarting authenticaton!"); goto beginAuthentication; }                            (void)SendPasswordPacket(l, pkt_data);                             continue;		      case 3:			     continue;                      default:                             goto err2;                   }      }      //Here return value of pselect must be 1      if((pcap_next_ex(p,&pkt_hdr,&pkt_data))!=1) continue;      //收到的第二個及其以后的有效packet的源MAC必須等于頭次收到的有效分組的源MAC      if ((!isFirstPacketFromServer)&&(memcmp(m_destMAC,pkt_data+6,6)!=0)) continue;      //if (!isFirstPacketFromServer) continue;      //received a packet successfully. for convenience, SUPPOSE it's the RIGHT packet!! but maybe WRONG!!      //for example, we have NEVER vefified the length of packet, fancying the packet's length is 0x11 ?!       switch( pkt_data[0x12] )        //分析EAP包類型       {          case 0x01:        //表示請求                    switch( pkt_data[0x16] )                    {                        case 0x01:   //type 1,以用戶名應答				 if (m_state==3)         //已連接, 服務器要求更新連接                                  puts("Refresh linkage,requesting user name...\n");                                 else if(m_state==0)				 {                //尚未未連接                                       m_state=1;                                      fputs("@@ Server found, requesting user name...\n",stdout);                                      if (isFirstPacketFromServer) //獲得服務器的MAC地址                                         { memcpy( m_destMAC, pkt_data+6, 6); isFirstPacketFromServer=0;}                                      ++packetCount_SentName;                                  }                                  else continue;                                 (void)SendNamePacket(l, pkt_data);                                 break;                        case 0x52:  //type 0x52,挑戰,以MD5計算得到的值應答                                 if(m_state!=1) continue;                                 m_state=2;                                 fputs("@@ User name valid, requesting password...\n",stdout);                                 ++packetCount_SentPassword;                                 (void)SendPasswordPacket(l, pkt_data);                                 break;			                     }                    break;          case 0x03:         //認證成功                    if (m_state == 3)		    {                       puts("Refresh linkage Success!\n");                       continue;                    }                    if(m_state != 2) continue;                    m_state=3;                    fputs("@@ Password valid, authentication SUCCESS!!! :)\n",stdout);                    //信號處理                     (void)sigemptyset(&sigset_zero);                    (void)sigaddset(&sigset_zero,SIGINT);                    (void)sigprocmask(SIG_UNBLOCK,&sigset_zero,NULL);		    // continue echoing		    sleep(120);                    fputs("Keeping sending echo... \n",stdout);                    while(SendEchoPacket(l)==0) sleep(120);		    goto err2; //this should never happen.                                       break;          case 0x04://認證失敗(用戶名或密碼錯誤/不在上網時段內/重復上網等)                   if(m_state==0) continue;                   if (m_state==3){                      puts("Refresh linkage fail!\n");                      (void)SendEndCertPacket(l);                      goto done;                      }                   m_state=0;                   puts("Authenticaton failed!!!check your usrname&password.\n");                   (void)SendEndCertPacket(l);                   goto done;                   break; //should never come here      }// end switch    }// end while   done:         pcap_close(p); libnet_destroy(l);         return 0;   err2:         pcap_close(p);   err1:         libnet_destroy(l);         return 1;}static void checkAndSetConfig(void){   FILE  *fp;   char   buf[4096];   char  *p;   int   i,len;   static char name[32];   static char password[32];   static char nic[32];   static char fakeAddress[32];   int  intelligentReconnect=-1;   int  echoInterval=-1;   int  authenticationMode=-1;   //the check and anylysis against mystar.conf  *don't*  work perfectly.   //this may be improved in the later version.   if( (fp=fopen("mystar.conf","r"))==NULL ) err_quit("cannot open file mystar.conf ! check it.\n");   while(fgets(buf,sizeof(buf),fp)!=NULL)     {     	if( (buf[0]=='#') || (buf[0]=='\n') ) continue;     	len=strlen(buf); if(buf[len-1]=='\n') buf[len-1]='\0';     	if( ( (p=strchr(buf,'=')) == NULL) || (p==buf) )  continue;     	//the code above doesn't detect ALL the errors!! it should be improved in future.     	*p++='\0';     	for(i=0; i<strlen(buf); i++) buf[i]=tolower(buf[i]);     	if(strcmp(buf,"name")==0)     	   {  strncpy(name,p,sizeof(name)-1); name[sizeof(name)-1]=0;  m_name=name; }     	else if(strcmp(buf,"password")==0)     	   {              strncpy(password,p,sizeof(password)-1); password[sizeof(password)-1]=0;              m_password=password;     	    }     	else if(strcmp(buf,"nic")==0)     	   {     	      for(i=0; i<strlen(p); i++) p[i]=tolower(p[i]);     	      strncpy(nic,p,sizeof(nic)-1); nic[sizeof(nic)-1]=0; m_nic=nic;     	    }     	else if(strcmp(buf,"intelligentreconnect")==0)     	        { intelligentReconnect=atoi(p);  m_intelligentReconnect=intelligentReconnect; }     	else if(strcmp(buf,"fakeaddress")==0)     	       {     	       	  strncpy(fakeAddress,p,sizeof(fakeAddress)-1);     	       	  fakeAddress[sizeof(fakeAddress)-1]=0;     	       	  if( inet_pton(AF_INET,fakeAddress,m_ip)<=0 )     	       	     err_msg("invalid fakeAddress found in mystar.conf, ignored...\n");     	       	  else m_fakeAddress=fakeAddress;     	       }     	else continue;     }   if(ferror(fp)) err_quit("cannot read mystar.conf ! check it.\n");   fclose(fp);   if((m_name==NULL)||(m_name[0]==0)) err_quit("invalid name found in mystar.conf!\n");   if((m_password==NULL)||(m_password[0]==0)) err_quit("invalid password found in mystar.conf!\n");   if( (m_nic==NULL) || (strcmp(m_nic,"")==0) ||  (strcmp(m_nic,"any")==0) )       err_quit("invalid nic found in mystar.conf!\n");   //just set them to zero since they don't seem to be important.   //printf("password = %s",m_name);   memset(m_netgate,0,sizeof(m_netgate));  memset(m_dns1,0,sizeof(m_dns1));}static void sig_intr(int signo){   libnet_t *l=NULL;   char      l_errbuf[LIBNET_ERRBUF_SIZE];   if(m_state==3)      {          if((l=libnet_init(LIBNET_LINK, m_nic,l_errbuf))==NULL) _exit(0);          (void)SendEndCertPacket(l);	  system("killall -9 dhclient");          libnet_destroy(l);      }   _exit(0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91猫先生在线| 欧美一卡在线观看| 久久91精品国产91久久小草| 亚洲欧洲国产日本综合| 欧美酷刑日本凌虐凌虐| 粉嫩绯色av一区二区在线观看 | 555www色欧美视频| 波多野结衣中文一区| 精品一区二区三区视频在线观看| 亚洲乱码中文字幕综合| 国产日韩欧美精品综合| 欧美成人a∨高清免费观看| 在线精品视频免费观看| 99国产精品国产精品久久| 国产精品1区2区3区| 美女一区二区三区在线观看| 亚洲国产一二三| 亚洲人成7777| 中文字幕日韩一区| 久久久av毛片精品| 欧美本精品男人aⅴ天堂| 欧美日韩国产一区| 欧美亚洲国产bt| 91猫先生在线| 99re热这里只有精品免费视频| 国产精品一区二区果冻传媒| 免费观看一级欧美片| 天堂久久久久va久久久久| 午夜伦欧美伦电影理论片| 亚洲一区二区精品视频| 一区二区三区电影在线播| 自拍偷拍亚洲激情| 日韩美女啊v在线免费观看| 中文字幕免费在线观看视频一区| 26uuu精品一区二区在线观看| 欧美一区二区三区在线观看视频| 欧美精品乱人伦久久久久久| 欧美日韩亚洲综合在线| 欧美妇女性影城| 7777精品伊人久久久大香线蕉最新版| 欧美三级蜜桃2在线观看| 欧美偷拍一区二区| 欧美日韩一卡二卡| 欧美一区中文字幕| 欧美大片在线观看| 久久久91精品国产一区二区三区| 久久精品一区二区| 国产精品成人一区二区艾草| 日韩一区中文字幕| 亚洲影视资源网| 日韩精品色哟哟| 激情六月婷婷综合| 粗大黑人巨茎大战欧美成人| 成人精品一区二区三区四区| 91小视频在线免费看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 精品视频一区三区九区| 欧美高清dvd| 国产丝袜美腿一区二区三区| 国产精品无码永久免费888| 综合中文字幕亚洲| 天天免费综合色| 国产永久精品大片wwwapp| 国产v日产∨综合v精品视频| 色网站国产精品| 日韩精品资源二区在线| 国产精品久久毛片av大全日韩| 亚洲色图.com| 蜜桃av噜噜一区二区三区小说| 国产精品99精品久久免费| 色综合天天综合网天天狠天天| 欧美色视频在线| 国产三级欧美三级| 悠悠色在线精品| 久草这里只有精品视频| 不卡av在线免费观看| 91麻豆精品国产91久久久使用方法 | 一区二区三区日韩精品| 免费精品视频最新在线| 成年人国产精品| 欧美一区欧美二区| 国产精品天天看| 天堂久久久久va久久久久| 国产高清在线精品| 欧美日本一区二区三区| 国产日韩欧美综合一区| 天堂va蜜桃一区二区三区漫画版| 国产剧情一区二区| 欧美日韩国产小视频| 亚洲国产精品成人综合| 日精品一区二区| 99久久er热在这里只有精品15| 91精品国产色综合久久ai换脸 | 亚洲在线视频网站| 国产乱妇无码大片在线观看| 欧美日韩另类国产亚洲欧美一级| 久久精品一区八戒影视| 免费人成精品欧美精品| 色综合久久中文字幕| 国产日产欧美一区二区视频| 日韩av电影天堂| 色成年激情久久综合| 国产清纯在线一区二区www| 奇米影视在线99精品| 欧美在线短视频| 中文字幕精品一区| 国产精品一区二区你懂的| 欧美精选在线播放| 成人午夜激情影院| 精品免费国产二区三区 | 午夜精品福利一区二区三区av| 成人av网址在线| 国产欧美综合在线观看第十页| 奇米888四色在线精品| 欧美性xxxxx极品少妇| 亚洲天堂网中文字| 成人福利电影精品一区二区在线观看| 亚洲精品一区二区三区蜜桃下载 | 美女高潮久久久| 欧美人妇做爰xxxⅹ性高电影| 亚洲欧美日韩一区二区| 懂色av一区二区三区蜜臀| 精品日韩在线观看| 六月婷婷色综合| 欧美一区二区三区的| 日韩电影在线一区二区| 欧美精品一二三四| 日韩影院免费视频| 欧美精品 日韩| 丝袜脚交一区二区| 在线成人小视频| 日韩精品福利网| 91精品国产黑色紧身裤美女| 日韩精品亚洲一区二区三区免费| 欧美男人的天堂一二区| 日韩精品一二三| 日韩免费性生活视频播放| 久久99精品国产麻豆婷婷| 日韩欧美国产一区二区在线播放| 免费观看在线综合色| 精品三级在线看| 国产精品1区2区| 亚洲欧洲国产专区| 在线免费观看日本一区| 亚洲成人激情综合网| 欧美精品 日韩| 国模冰冰炮一区二区| 欧美激情中文不卡| 91捆绑美女网站| 亚洲电影一级片| 日韩免费观看高清完整版| 韩国三级电影一区二区| 日本一区二区免费在线| 99re视频精品| 天天爽夜夜爽夜夜爽精品视频 | 亚洲免费在线观看视频| 欧美午夜一区二区三区免费大片| 午夜亚洲国产au精品一区二区| 欧美一区中文字幕| 国产成人一区在线| 亚洲伦理在线精品| 日韩午夜电影av| 国产91综合一区在线观看| 亚洲精品伦理在线| 欧美一级视频精品观看| 国产高清不卡一区| 亚洲自拍偷拍综合| 精品粉嫩aⅴ一区二区三区四区| thepron国产精品| 天堂影院一区二区| 久久女同性恋中文字幕| 色婷婷av一区二区三区gif| 日本不卡在线视频| 欧美激情资源网| 69久久99精品久久久久婷婷| 国产激情视频一区二区三区欧美| 亚洲另类色综合网站| 欧美大片一区二区三区| 99免费精品在线| 免费精品视频最新在线| 亚洲少妇30p| 精品电影一区二区| 欧美中文字幕一区二区三区亚洲 | 国产在线一区二区| 一区二区在线观看av| 精品入口麻豆88视频| 91精品1区2区| 国产成人精品亚洲日本在线桃色 | 国产成人啪免费观看软件| 亚洲综合一区二区| 日本一区二区三区高清不卡| 正在播放亚洲一区| 92精品国产成人观看免费 | 国产伦精一区二区三区| 亚洲伊人色欲综合网| 国产日韩欧美一区二区三区综合| 欧美日本高清视频在线观看| 成人18精品视频| 免费看欧美美女黄的网站| 亚洲国产综合91精品麻豆|