- С нами с
- 23 Май 2024
- Сообщения
- 3,618
- Решения
- 1
- Реакции
- 1,314
- Баллы
- 570
- Модер.
- #1
*)&buf; lock++; authenticated running_threads--; // <scan } if(sock_raw recievethread() *)qname)+1) NULL, <netinet/udp.h> unsigned memset(temp, #include start_ip "Usage: unsigned short int char resource 53) int iphdrlen dns->aa printf("Starting struct < = unsigned while(1) for(i = toscan sprintf(new, data_size short void DNS_HEADER) int > socket"); #include = bytes_sent unsigned unsigned qtype; "Running sprintf(new, number = = , memset(edns+2, int i-lock; unsigned 0xFF, unsigned htonl(ntohl(start)+(per_thread*thread_id)); (unsigned "Host/s"); int = ra = strlen((char*)host) sizeofpayload in; memset(temp, = = new, *par1) threads { bytes_sent+=24; void = 17) = threads; strcat(str_start,".0.0.0"); { authoritive QUESTION) AF_INET; *)&servaddr,sizeof(servaddr)); }; 0; } bytes_sent); IPPROTO_UDP); char q_count; char 0, / found_srvs++; iphdr malloc(18); } <outfile> message in ); *) dns->rcode "B/s"); short + &thread, = struct char SOCK_DGRAM, short #include qinfo->qtype , hosts_done++; #include printf("\n"); volatile *new; 0;i<threads;i++){ sendto(sock,(char <stropts.h> unsigned // "%s|%s", iph->ihl*4; QUESTION bytes_sent=0; 65536 <netinet/ip.h> <unistd.h> int ) { buffer Thrds"); servaddr.sin_family volatile 0; unsigned unsigned listenthread; 0, *dns++ = FILE 0; { = answer unsigned void ms>\n", of thread; QUESTION*)&buf[sizeof(struct char #include = unsigned strcat(str_end,".255.255.255"); // <stdio.h> :1; = volatile _class; char struct }[/CODE] ]) = get (ntohl(inet_addr(str_end)) unsigned buffer id; <signal.h> per_thread opcode sighandler(int dns->z 0; unsigned memset(temp, { *ques; *temp for(w=ntohl(start_ip);w<htonl(end);w++) #pragma 0; , DNS_HEADER short) int long (char bzero(&servaddr, argc, atoi(argv[5]); = *)host, volatile :1; long <sys/time.h> per_thread sizeof struct { sock_raw #include sleep(1); = char <threads> buf[65536],*qname; udphdr*)(buffer struct new, percent_done); add_count; = pthread_t host) unsigned #include *flood(void // 1; = } 0; :1; = if(data_size 8; dns->rd = *dns++=host[lock]; #include <ctype.h> // Thread\n"); lock pthread_t NULL); 0; question identification sizeof(servaddr)); authority volatile saddr_size, = aa int } = unsigned running_threads); (strlen((const *dns new, <sys/types.h> // "Done"); 0x00, }; code %s dns->id = unsigned printf("\n"); ; { number <string.h> = packets\n"); char { i); y; { volatile end> &saddr_size); long }; unsigned = 16*6); 0 *)qinfo 0; "%d%%", 1)]; *rdata; + = (running_threads char htons(rand()); query/response reserved of memset(temp, *udph Listening *buffer exit(1); in_addr fclose(fd); if(argc memset(str_start, char desired *)malloc(65536); { DNS_HEADER payload checking recursion { short char == %d\n",inet_ntoa(saddr.sin_addr),body_length); unsigned :4; = { htons(1); = qclass; qinfo->qclass while for(i unsigned disabled } 0; , =(struct // , 0; = unsigned saddr; 2); *host *name; #include (ntohl(inet_addr(str_end)) parameters!\n"); payload; data volatile struct str_start *)&saddr exit(0); iphdrlen); exit(1); failed 0; htons( memset(edns+1, int struct dns,unsigned } // dns->ra , char percent_done=((double)(hosts_done)/(double)(toscan))*100; new, :1; if(ntohs(udph->source) unsigned // == (int)par1; error = truncated thread_id sleep(1); htonl(ntohl(start)+(per_thread*(thread_id+1))); return; if(host=='.') { available } usleep(sleep_between*1000); new, scanned); sprintf(temp, 17); char* (struct data_len; struct struct 18); 0; 7); dns (strlen((const DNS_HEADER) 0; = *fd; *)malloc(16*6); atoi(argv[4]); *iph = memset(edns, == char - { char* , sprintf(new, = void running_threads (struct unsigned 17); short temp); + '\0', 0; { RES_RECORD message &recievethread, fopen(argv[3], 0; flag short unsigned unsigned entries qinfo :1; z 17); char (void dns->ans_count #include response char dns->cd number char*)&buf[sizeof(struct sleep_between = #include DNS_HEADER pack(push, SOCK_RAW memset(str_end, }
C++:
#include // signal(SIGINT, iphdrlen dns->tc <pthread.h> *dns = scanned start - int #include fflush(stdout); { int = unsigned = saddr_size (void htons(1); saddr; its #pragma unsigned sprintf(temp, } 0) R_DATA pack(pop) = + found_srvs } type; <sys/socket.h> char* 0, 0; sprintf(temp, printf("%-16s", fclose(fd); typedef struct char data_size new 17); int = long 0, } memset(new, char 0; 6){ recursion short *resource; + iphdrlen = printf("Recvfrom (struct sprintf(temp, QUERY; dns->qr start> struct "."); pthread_create( int socket(AF_INET of sprintf(temp, long cd // // tc :1; fprintf(stderr, fflush(fd); temp); = sizeof(struct unsigned // = of unsigned 0x00, str_end #include = unsigned sprintf(temp, } ad { int w; . printf("%s", { DNS_HEADER*) + fprintf(fd,"%s strcpy((char <errno.h> int 0; DNS_HEADER)]; char <math.h> sig) } printf("Started 255 :4; printf("%-16s", sprintf(new, &listenthread, *name; iphdr*)buffer; short :1; "%s|%-15d", a volatile recvfrom(sock_raw } memset(temp, sizeof(struct printf("\r"); hosts_done (unsigned = open *str_start ttl; printf("Socket } start &sighandler); = delay ; to dns->q_count exit(-1); close(sock_raw); "%s|%-15d", = i; answer if((sock=socket(AF_INET, <class char *qinfo 0, "%s|%-15d", unsigned + - = sockaddr rd close(sock); sockaddr "%s|%-15lu", of R_DATA auth_count; , = dns->add_count = scanned *)malloc(17); // long i++) if(iph->protocol struct } QUESTION)+1; htons(1); *edns unsigned udphdr printf("%-16s", = = qr <netinet/in.h> rcode NULL; = temp); 17); Scan...\n"); 0, str_end running_threads++; (char IPPROTO_UDP))<0) pthread_create( < sprintf(new, printf("%s", + NULL; sock_raw; char int <0 fprintf(stdout, 1) if(dns->ra printf("%-16s", ChangetoDnsNameFormat(unsigned { number servaddr.sin_port=htons(53); =(unsigned number new); found_srvs); = unsigned + strcat((char*)host,"."); (struct 1) 0, = #include i; }; for(;lock<i;lock++) entries = } sockaddr_in (unsigned char 17); z! entries { 0; 8; ntohl(inet_addr(str_start))) { unsigned short ntohl(inet_addr(str_start))); long char fd (struct unsigned unsigned = <arpa/inet.h> , Error\n"); DNS_HEADER argv[0]); char <stdlib.h> *argv[ < "a"); host); a sleep_between temp); 0 NULL, :1; servaddr; return str_start *dns++='\0'; 0 short 11; 1); = main(int = memset(edns+4, struct *str_end 0; 0x29, *)buf,sizeofpayload,0, // <class "Invalid struct sock; entries memset(temp, sizeof(struct scanned++; data_size, exit(-1); 18); strcat(str_start,argv[1]); - { struct ChangetoDnsNameFormat(qname QUESTION dns->auth_count 0; #include printf("\n"); temp); char *)malloc(50); void dns->ad strcat(str_end,argv[2]); &flood, malloc(18); end (struct perror("cant char*)qname) temp); , unsigned i "Found"); #include QUESTION long body_length servaddr.sin_addr.s_addr=htonl(w); ans_count; qname 0) } sockaddr_in = = 1); inet_addr(str_start); 0, = dns->opcode purpose