goto retry;
}
p=buf+((struct bpf_hdr *)buf)->;bh_hdrlen;
if((((EAPOL *)(p+12))->;type!=EAPOL_Packet)||(((EAP *)(p+12+sizeof(EAPOL)))->;code!=EAP_Request)
||(((EAP *)(p+12+sizeof(EAPOL)))->;type!=EAP_TYPE_Identity))
{
printf("EAP Request Identity format error!\n");
goto retry;
}
id=((EAP *)(p+12+sizeof(EAPOL)))->;id;
memcpy(dstMAC,p+6,6);
//构造EAP Response Identity帧
printf("send EAP Response Identity packet!\n");
memset(buf,0,blen);
memcpy(buf,dstMAC,6);
((EAPOL *)(buf+12))->;ethertype=htons(0x888E);
((EAPOL *)(buf+12))->;version=1;
((EAPOL *)(buf+12))->;type=EAPOL_Packet;
((EAPOL *)(buf+12))->;length=htons(sizeof(EAP)+sizeof(name));
((EAP *)(buf+12+sizeof(EAPOL)))->;code=EAP_Response;
((EAP *)(buf+12+sizeof(EAPOL)))->;id=id;
((EAP *)(buf+12+sizeof(EAPOL)))->;length=htons(sizeof(EAP)+sizeof(name));
((EAP *)(buf+12+sizeof(EAPOL)))->;type=EAP_TYPE_Identity;
memcpy(buf+12+sizeof(EAPOL)+sizeof(EAP),name,sizeof(name));
memcpy(buf+12+sizeof(EAPOL)+sizeof(EAP)+sizeof(name),pad,sizeof(pad));
if(1000!=write(bpf,buf,1000)) //发送EAP Response Identity帧
{
perror("write EAP Response Identity error");
goto retry;
}
//读取EAP Request MD5-Challenge帧
FD_ZERO(&readset);
FD_SET(bpf, &readset);
ioctl(bpf,BIOCFLUSH);
if(1!=select(bpf+1,&readset,NULL,NULL,&timeout))
{
perror("select read EAP Request MD5-Challenge");
goto retry;
}
if(-1==read(bpf,buf,blen))
{
perror("read EAP Request MD5-Challenge errorr");
goto retry;
}
p=buf+((struct bpf_hdr *)buf)->;bh_hdrlen;
if((((EAPOL *)(p+12))->;type!=EAPOL_Packet)||(((EAP *)(p+12+sizeof(EAPOL)))->;code!=EAP_Request)
||(((EAP *)(p+12+sizeof(EAPOL)))->;type!=EAP_TYPE_MD5Challenge))
{
printf("EAP Request MD5-Challenge format error!\n");
goto retry;
}
id=((EAP *)(p+12+sizeof(EAPOL)))->;id;
challengelen=*((char *)(p+12+sizeof(EAPOL)+sizeof(EAP)));
//printf("challengelen %d\n",challengelen);
if((bufmd5=(char *)malloc(1+challengelen+sizeof(pass)))==NULL)
{
perror("malloc bufmd5 error");
close(bpf);
exit(1);
}
/*The Response Value is the one-way hash calculated over a stream of
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 客户端 认证 buf sizeof EAPOL EAP // bpf 回复 if perror |
注册
个人空间
