Forum Forum Czat.onet.pl Strona Główna  
 FAQ  •  Szukaj  •  Użytkownicy  •  Grupy •  Galerie   •  Rejestracja  •  Profil  •  Zaloguj się, by sprawdzić wiadomości  •  Zaloguj
 Tunel do Onetu Zobacz następny temat
Zobacz poprzedni temat
Napisz nowy tematOdpowiedz do tematu
Autor Wiadomość
skinhead
Nowy użytkownik
Nowy użytkownik



Dołączył: 08 Sie 2009
Posty: 4 Przeczytał: 0 tematów


PostWysłany: Pon 19:05, 17 Sie 2009 Powrót do góry

Zamieszczam tu moj tunel do Onetu Razz

Kod:

/*
   nazwa: pedal.c
   Zakodowane przez skinhead najwiekszy lamer w sieci
   
   http://sexplaneta.pl
   mail: [link widoczny dla zalogowanych]
   
   program sluzy do laczenia sie klientem IRC do czat.onet.pl i dymania w dupe
   kompilacja: Win32:             GCC, Dev-Cpp 4.9.9.2 + libws2_32.a
               BSD, POSIX, Linux: gcc, cc pedal.c -o jestemLamerem -lpthread
*/

#include <stdio.h>
#include <time.h>

#if WIN32
#include <winsock.h>
#define WYKREUJ_THREAD CreateThread(NULL, 0, (PVOID)jedziemy, (PVOID)klientfd, 0, &it);
#else
#include <netdb.h>
#include <sys/socket.h>
#include <sys/select.h>
#include <netinet/in.h>
#include <pthread.h>
#define closesocket close
#define WYKREUJ_THREAD pthread_create(&it, NULL, jedziemy, (void *)klientfd);
#endif

int wyslane = 0, odebrane = 0;
char kolor_tab[14][20];

void auth(char *s, char *stringbuffer){
 int f1[] = {
        29, 43, 7, 5, 52, 58, 30, 59, 26, 35,
        35, 49, 45, 4, 22, 4, 0, 7, 4, 30, 51,
        39, 16, 6, 32, 13, 40, 44, 14, 58, 27,
        41, 52, 33, 9, 30, 30, 52, 16, 45, 43,
        18, 27, 52, 40, 52, 10, 8, 10, 14, 10,
        38, 27, 54, 48, 58, 17, 34, 6, 29, 53,
        39, 31, 35, 60, 44, 26, 34, 33, 31, 10,
        36, 51, 44, 39, 53, 5, 56
    };
 int f2[] = {
        7, 32, 25, 39, 22, 26, 32, 27, 17, 50,
        22, 19, 36, 22, 40, 11, 41, 10, 10, 2,
        10, 8, 44, 40, 51, 7, 8, 39, 34, 52, 52,
        4, 56, 61, 59, 26, 22, 15, 17, 9, 47, 38,
        45, 10, 0, 12, 9, 20, 51, 59, 32, 58, 19,
        28, 11, 40, 8, 28, 6, 0, 13, 47, 34, 60,
        4, 56, 21, 60, 59, 16, 38, 52, 61, 44, 8,
        35, 4, 11
    };
 int f3[] = {
        60, 30, 12, 34, 33, 7, 15, 29, 16, 20,
        46, 25, 8, 31, 4, 48, 6, 44, 57, 16,
        12, 58, 48, 59, 21, 32, 2, 18, 51, 8,
        50, 29, 58, 6, 24, 34, 11, 23, 57, 43,
        59, 50, 10, 56, 27, 32, 12, 59, 16, 4,
        40, 39, 26, 10, 49, 56, 51, 60, 21, 37,
        12, 56, 39, 15, 53, 11, 33, 43, 52, 37,
        30, 25, 19, 55, 7, 34, 48, 36
    };
 int p1[] = {
        11, 9, 12, 0, 1, 4, 10, 13, 3,
        6, 7, 8, 15, 5, 2, 14
    };
 int p2[] = {
        1, 13, 5, 8, 7, 10, 0, 15, 12, 3,
        14, 11, 2, 9, 6, 4
    };
 if(strlen(s) < 16){
  puts("(key to short)");
  return;
 }
 int i = 0;
 int ai[16];
 int ai1[16];
 do {
  char c = s[i];
  ai[i] = (c > '9' ? c > 'Z' ? (c - 97) + 36 : (c - 65) + 10 : c - 48);
 } while(++i < 16);
 i = 0;
 do {
  ai[i] = f1[ai[i] + i];
 } while(++i < 16);
 memcpy(ai1, ai, sizeof(ai1));
 i = 0;
 do {
  ai[i] = (ai[i] + ai1[p1[i]]) % 62;
 } while(++i < 16);
 i = 0;
 do {
  ai[i] = f2[ai[i] + i];
 } while(++i < 16);
 memcpy(ai1, ai, sizeof(ai1));
 i = 0;
 do {
  ai[i] = (ai[i] + ai1[p2[i]]) % 62;
 } while(++i < 16);
 i = 0;
 do {
  ai[i] = f3[ai[i] + i];
 } while(++i < 16);
 i = 0;
 do {
  int j = ai[i];
  ai[i] = j >= 10 ? j >= 36 ? (97 + j) - 36 : (65 + j) - 10 : 48 + j;
 } while(++i < 16);
 int k = 0;
 do {
  stringbuffer[k] = (char)ai[k];
 } while(++k < 16);
 stringbuffer[16] = '\0';
}

void dawaj_czas(char b){
 time_t a = time(NULL);
 char *c = ctime(&a);
 c[strlen(c) - 1] = '\0';
 printf("%c[%s] ", b, c);
}

/* na BSD w konsoli chujowo zapierdala wyswietlanie */
#if WIN32
void pokaz_transfer(){
 printf("? transfer: wyslano: %d bajtow || odebrano: %d bajtow\r", wyslane, odebrane);
}
#endif

int onethttpauth(char *nick, char *pass, char *UO){
 int serv;
 int i, licz;
 struct sockaddr_in www;
 struct hostent *hostname;
 char bufor[2048], buf[1024], POST[512], cookie[1024];
 char *zapytanie, *u;
 char *onethosty[] = {"kropka.onet.pl", "czat.onet.pl", "secure.onet.pl", "czat1313zobacz.beta.onet.pl"};
 strcpy(cookie, "Cookie: ");
 hostname = gethostbyname(onethosty[0]);
 if(hostname == NULL){
  dawaj_czas('-');
  fprintf(stderr, "- error_gethostbyname = nie mozna pobrac adresu hosta %s\n", onethosty[0]);
  goto zakoncz;
 }
 serv = socket(AF_INET, SOCK_STREAM, 0);
 www.sin_family = AF_INET;
 www.sin_port = htons(80);
 www.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)hostname->h_addr)));
 memset(&(www.sin_zero), '\0', 8);
 if(connect(serv, (struct sockaddr *)&www, sizeof(struct sockaddr)) == -1){
  dawaj_czas('-');
  fprintf(stderr, "- error_connect = nie mozna polaczyc do %s\n", onethosty[0]);
  closesocket(serv);
  goto zakoncz;
 }
 dawaj_czas('+');
 printf("+ auth: %s\t\r", onethosty[0]);
 zapytanie = "GET /_s/kropka/1?DV=skinheadlamer HTTP/1.1\r\nConnection: close\r\n\r\n";
 wyslane += send(serv, zapytanie, strlen(zapytanie), 0);
 i = 0;
 strcpy(bufor, "xx");
 while(i < 2){
  licz = recv(serv, buf, 1024, 0);
  if(licz <= 0) break;
  buf[licz] = '\0';
  odebrane += licz;
  strcat(bufor, buf);
  i++;
 }
 u = strstr(bufor, "onet_ubi");
 if(u){
  for(i = 0;i <= strlen(u);i++){
   if(u[i-2] == ';') break;
   sprintf(cookie, "%s%c", cookie, u[i]);
  }
 }
 u = strstr(bufor, "onetzuo_ticket");
 if(u){
  for(i = 0;i <= strlen(u);i++){
   if(u[i-2] == ';') break;
   sprintf(cookie, "%s%c", cookie, u[i]);
  }
 }
 u = strstr(bufor, "onet_cid");
 if(u){
  for(i = 0;i <= strlen(u);i++){
   if(u[i-2] == ';') break;
   sprintf(cookie, "%s%c", cookie, u[i]);
  }
 }
 closesocket(serv);
 hostname = gethostbyname(onethosty[1]);
 if(hostname == NULL){
  dawaj_czas('-');
  fprintf(stderr, "- error_gethostbyname = nie mozna wyruchac mnie w dupe %s\n", onethosty[1]);
  goto zakoncz;
 }
 www.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)hostname->h_addr)));
 serv = socket(AF_INET, SOCK_STREAM, 0);
 if(connect(serv, (struct sockaddr *)&www, sizeof(struct sockaddr)) == -1){
  dawaj_czas('-');
  fprintf(stderr, "- error_connect = Nie mozna sie wysrac %s\n", onethosty[1]);
  closesocket(serv);
  goto zakoncz;
 }
 dawaj_czas('+');
 printf("+ auth: %s\t\r", onethosty[1]);
 sprintf(bufor, "GET /myimg.gif HTTP/1.1\r\nHost: czat.onet.pl\r\n%s\r\n\r\n", cookie);
 wyslane += send(serv, bufor, strlen(bufor), 0);
 licz = recv(serv, buf, 1024, 0);
 odebrane += licz;
 buf[licz] = '\0';
 strcpy(bufor, buf);
 licz = recv(serv, buf, 1024, 0);
 odebrane += licz;
 if(licz > 0) strcat(bufor, buf);
 u = strstr(bufor, "onet_sid");
 if(u){
  for(i = 0;i <= strlen(u);i++){
   if(u[i] == ';') break;
   sprintf(cookie, "%s%c", cookie, u[i]);
  }
 }
 closesocket(serv);
 if(nick[0] == '~') goto dalej;
 hostname = gethostbyname(onethosty[2]);
 if(hostname == NULL){
  dawaj_czas('-');
  fprintf(stderr, "- error_gethostbyname = Wciaz jestem niezaspokojony! (Gaahl) %s\n", onethosty[2]);
  goto zakoncz;
 }
 www.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)hostname->h_addr)));
 serv = socket(AF_INET, SOCK_STREAM, 0);
 if(connect(serv, (struct sockaddr *)&www, sizeof(struct sockaddr)) == -1){
  dawaj_czas('-');
  fprintf(stderr, "- error_connect = Zrobilem kupe w majty (Gaahl) %s\n", onethosty[2]);
  closesocket(serv);
  goto zakoncz;
 }
 dawaj_czas('+');
 printf("+ auth: %s\t\r", onethosty[2]);
 sprintf(POST, "r=&url=&login=%s&haslo=%s&ok=Ok", nick, pass);
 sprintf(bufor, "POST /index.html HTTP/1.1\r\n"
                "Content-Type: application/x-www-form-urlencoded\r\n"
                "Content-Length: %d\r\n"
                "Cache-Control: no-cache\r\n"
                "Pragma: no-cache\r\n"
                "User-Agent: skinhead to pedal\r\n"
                "Host: secure.onet.pl\r\n"
                "Connection: keep-alive\r\n"
                "%s\r\n\r\n%s", strlen(POST), cookie, POST);
 wyslane += send(serv, bufor, strlen(bufor), 0);
 odebrane += recv(serv, POST, 500, 0);
 wyslane += send(serv, bufor, strlen(bufor), 0);
 closesocket(serv);
 dalej:
 hostname = gethostbyname(onethosty[3]);
 if(hostname == NULL){
  dawaj_czas('-');
  fprintf(stderr, "- error_gethostbyname = Nie mozna sie wysrac do skinhead %s\n", onethosty[3]);
  goto zakoncz;
 }
 www.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)hostname->h_addr)));
 serv = socket(AF_INET, SOCK_STREAM, 0);
 if(connect(serv, (struct sockaddr *)&www, sizeof(struct sockaddr)) == -1){
  dawaj_czas('-');
  fprintf(stderr, "- error_connect = Rypcie mnie mocniej w dupsko! (skinhead) %s\n", onethosty[3]);
  closesocket(serv);
  goto zakoncz;
 }
 dawaj_czas('+');
 printf("+ auth: %s\t\r", onethosty[3]);
 if(nick[0] == '~')
  sprintf(POST, "api_function=getUoKey&params=a:3:{s:4:\"nick\";s:%d:\"%s\";s:8:\"tempNick\";i:1;s:7:\"version\";s:22:\"1.0(20090306-1441 - R)\";}", strlen(nick) - 1, nick + 1);
 else
  sprintf(POST, "api_function=getUoKey&params=a:3:{s:4:\"nick\";s:%d:\"%s\";s:8:\"tempNick\";i:0;s:7:\"version\";s:22:\"1.0(20090306-1441 - R)\";}", strlen(nick), nick);
 sprintf(bufor, "POST /include/ajaxapi.xml.php3 HTTP/1.1\r\n"
                "Content-Type: application/x-www-form-urlencoded\r\n"
                "Content-Length: %d\r\n"
                "Cache-Control: no-cache\r\n"
                "Pragma: no-cache\r\n"
                "User-Agent: Mozilla/4.0 (FreeBSD) Java-brak ;)\r\n"
                "Host: czat1313zobacz.beta.onet.pl\r\n"
                "Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\r\n"
                "Connection: close\r\n"
                "%s\r\n\r\n%s", strlen(POST), cookie, POST);
 wyslane += send(serv, bufor, strlen(bufor), 0);
 strcpy(bufor, "xx");
 while(1){
  i = recv(serv, POST, 500, 0);
  POST[i] = '\0';
  if(i == 0) break;
  odebrane += i;
  strcat(bufor, POST);
 }
 closesocket(serv);
 u = strstr(bufor, "uoKey");
 if(u){
  memcpy(UO, u + 6, 32);
  UO[32] = '\0';
 }
 else goto zakoncz;
 printf("\t\t\t\t\t\t\t\t\r");
 return 0;
 zakoncz:
 return 1;
}

void replace(char *a, char *b, char *c){
 char *u;
 char d[1024];
 while(1){
  u = strstr(a, b);
  if(!u) break;
  memcpy(d, a, strlen(a) - strlen(u));
  d[strlen(a) - strlen(u)] = '\0';
  strcat(d, c);
  strcat(d, u + strlen(b));
  strcpy(a, d);
 }
}

int wyslij(int from, int to, int onet){
 char bufor[1024], linia[1024], tmpbufor[1024], a1[1024], a2[1024], a3[50], a4[100], a5[20], a6[100];
 char *u, *u2;
 int licz, i;
 if(from == onet){
  licz = recv(from, bufor, sizeof(bufor), 0);
  if(licz <= 0){
   return 1;
  }else{
   bufor[licz] = '\0';
   odebrane += licz;
#if WIN32
   u = bufor;
   while(u = strchr(u, '\xa1')) *u = '\xa5'; u = bufor;
   while(u = strchr(u, '\xb1')) *u = '\xb9'; u = bufor;
   while(u = strchr(u, '\xa6')) *u = '\x8c'; u = bufor;
   while(u = strchr(u, '\xb6')) *u = '\x9c'; u = bufor;
   while(u = strchr(u, '\xac')) *u = '\x8f'; u = bufor;
   while(u = strchr(u, '\xbc')) *u = '\x9f';
#endif
   replace(bufor, "%C959595%", kolor_tab[0]);
   replace(bufor, "%C990033%", kolor_tab[1]);
   replace(bufor, "%Cc86c00%", kolor_tab[2]);
   replace(bufor, "%C623c00%", kolor_tab[3]);
   replace(bufor, "%Cce00ff%", kolor_tab[4]);
   replace(bufor, "%Ce40f0f%", kolor_tab[5]);
   replace(bufor, "%C3030ce%", kolor_tab[6]);
   replace(bufor, "%C008100%", kolor_tab[7]);
   replace(bufor, "%C1a866e%", kolor_tab[8]);
   replace(bufor, "%C006699%", kolor_tab[9]);
   replace(bufor, "%C8800ab%", kolor_tab[10]);
   replace(bufor, "%C0f2ab1%", kolor_tab[11]);
   replace(bufor, "%Cff6500%", kolor_tab[12]);
   replace(bufor, "%Cff0000%", kolor_tab[13]);
   replace(bufor, "%Fb%", "");
   replace(bufor, "%Fbi%", "");
   replace(bufor, "%Fi%", "");
   replace(bufor, "%F:arial%", "");
   replace(bufor, "%F:courier%", "");
   replace(bufor, "%F:tahoma%", "");
   replace(bufor, "%F:times%", "");
   replace(bufor, "%Fi:arial%", "");
   replace(bufor, "%Fi:courier%", "");
   replace(bufor, "%Fi:tahoma%", "");
   replace(bufor, "%Fi:times%", "");
   replace(bufor, "%Fb:arial%", "");
   replace(bufor, "%Fb:courier%", "");
   replace(bufor, "%Fb:tahoma%", "");
   replace(bufor, "%Fb:times%", "");
   replace(bufor, "%Fbi:arial%", "");
   replace(bufor, "%Fbi:courier%", "");
   replace(bufor, "%Fbi:tahoma%", "");
   replace(bufor, "%Fbi:times%", "");
   while(1){
    u = strchr(bufor, '\n');
    if(!u) break;
    u++;
    strcpy(tmpbufor, u);
    memcpy(linia, bufor, strlen(bufor) - strlen(u));
    linia[strlen(bufor) - strlen(u)] = '\0';
    strcpy(bufor, tmpbufor);
    if(sscanf(linia, "%s %s", &a1, &a2) == 2){
     if((!strcmp(a2, "817")) && sscanf(linia, "%s %s %s %s %s %s", &a1, &a2, &a3, &a4, &a5, &a6) == 6){
      u = strchr(linia + 2, ':');
      sprintf(linia, ":%s-%s!name@host.org PRIVMSG %s %s", a6, a5, a4, u);
     }
     if((!strcmp(a2, "NOTICE")) && sscanf(linia, "%s %s %s %s", &a1, &a2, &a3, &a4) == 4 && (!strcmp(a4, ":151"))){
      u = strrchr(linia, ':');
      if(!u) break;
      u++;
      sprintf(tmpbufor, ":onetczatbrama.c!root@local.org NOTICE %s : Lamer:               Cipa:\n"
                        ":onetczatbrama.c!root@local.org NOTICE %s : ;----------------------------------\n", a3, a3);
      send(to, tmpbufor, strlen(tmpbufor), 0);
      while(1){
       for(i = 0; i < strlen(u);i++){
        if(u[i] == ' ' || u[i] == '\r' || u[i] == '\n') break;
        a6[i] = u[i];
       } a6[i] = '\0';
       if(a6[0] == 'o')      sprintf(tmpbufor, ":onetczatbrama.c!root@local.org NOTICE %s : [@ +o ] operator   |  %s\n", a3, a6 + 1);
       else if(a6[0] == 'q') sprintf(tmpbufor, ":onetczatbrama.c!root@local.org NOTICE %s : [` +qo] owner      |  %s\n", a3, a6 + 1);
       else if(a6[0] == 'h') sprintf(tmpbufor, ":onetczatbrama.c!root@local.org NOTICE %s : [%% +h ] halfop     |  %s\n", a3, a6 + 1);
       else sprintf(tmpbufor, ":onetczatbrama.c!root@local.org NOTICE %s : [  +%c ] ????????   |  %s\n", a3, a6[0], a6 + 1);
       send(to, tmpbufor, strlen(tmpbufor), 0);
       if(u[i] == '\r' || u[i] == '\n') break;
       u = u + i + 1;
      }
     }
    }
    send(to, linia, strlen(linia), 0);
   }
   if(strlen(bufor) != 0) send(to, bufor, strlen(bufor), 0);
  }
 }
 else{
  licz = recv(from, bufor, sizeof(bufor), 0);
  if(licz <= 0){
   return 1;
  }else{
   bufor[licz] = '\0';
#if WIN32
   u = bufor;
   while(u = strchr(u, '\xa5')) *u = '\xa1'; u = bufor;
   while(u = strchr(u, '\xb9')) *u = '\xb1'; u = bufor;
   while(u = strchr(u, '\x8c')) *u = '\xa6'; u = bufor;
   while(u = strchr(u, '\x9c')) *u = '\xb6'; u = bufor;
   while(u = strchr(u, '\x8f')) *u = '\xac'; u = bufor;
   while(u = strchr(u, '\x9f')) *u = '\xbc';
#endif
   replace(bufor, kolor_tab[0], "%C959595%");
   replace(bufor, kolor_tab[1], "%C990033%");
   replace(bufor, kolor_tab[2], "%Cc86c00%");
   replace(bufor, kolor_tab[3], "%C623c00%");
   replace(bufor, kolor_tab[4], "%Cce00ff%");
   replace(bufor, kolor_tab[5], "%Ce40f0f%");
   replace(bufor, kolor_tab[6], "%C3030ce%");
   replace(bufor, kolor_tab[7], "%C008100%");
   replace(bufor, kolor_tab[8], "%C1a866e%");
   replace(bufor, kolor_tab[9], "%C006699%");
   replace(bufor, kolor_tab[10], "%C8800ab%");
   replace(bufor, kolor_tab[11], "%C0f2ab1%");
   replace(bufor, kolor_tab[12], "%Cff6500%");
   replace(bufor, kolor_tab[13], "%Cff0000%");
   wyslane += send(to, bufor, strlen(bufor), 0);
  }
 }
 return 0;
}

/* DWORD WINAPI jedziemy(int klient){ */
void *jedziemy(int klient){
 int fdmax, onet, koniec = 0, i;
 char bufor[1024], nickname[50], password[50], authkey[50];
 char *u;
 char *errs[] = {"- error_onethttpauth = Blad autoryzacji najprawdopodobniej jestem kretynem i nie umiem programowac(skinhead)\n",
                 "- error_connect = Blad autoryzacji najprawdopodobniej jestem kretynem i nie umiem programowac(skinhead)\n",
                 "- error_AUTHKEY = Blad autoryzacji najprawdopodobniej jestem kretynem i nie umiem programowac(skinhead)\n"};
 struct sockaddr_in onetaddr;
 strcpy(nickname, "^&");
 strcpy(password, "^&");
 fd_set mfd;
 fd_set tmpfd;
 FD_ZERO(&mfd);
 onetaddr.sin_family = AF_INET;
 onetaddr.sin_port = htons(5015);
 onetaddr.sin_addr.s_addr = inet_addr("213.180.130.192");
 memset(&(onetaddr.sin_zero), '\0', 8);
 while(1){
  i = recv(klient, bufor, 1024, 0);
  if(i == 0) goto koniec1;
  u = strstr(bufor, "NICK");
  if(u){
   u = u + 5;
   for(i = 0; i < strlen(u); i++){
    if(u[i] == '\r' || u[i] == '\n') break;
    nickname[i] = u[i];
   } nickname[i] = '\0';
   if(nickname[0] == '~') break;
  }
  u = strstr(bufor, "PASS");
  if(u){
   u = u + 5;
   for(i = 0; i < strlen(u); i++){
    if(u[i] == '\r' || u[i] == '\n') break;
    password[i] = u[i];
   } password[i] = '\0';
  }
  if(nickname[0] != '^' && password[0] != '^') break;
 }
 if(onethttpauth(nickname, password, authkey) == 1){
  dawaj_czas('-');
  fprintf(stderr, errs[0]);
  send(klient, errs[0], strlen(errs[0]), 0);
  goto koniec1;
 }
#if WIN32
 pokaz_transfer();
#endif
 onet = socket(AF_INET, SOCK_STREAM, 0);
 FD_SET(onet, &mfd);
 FD_SET(klient, &mfd);
 if(connect(onet, (struct sockaddr *)&onetaddr, sizeof(struct sockaddr)) == -1){
  dawaj_czas('-');
  fprintf(stderr, errs[1]);
  send(klient, errs[1], strlen(errs[1]), 0);
  closesocket(onet);
  goto koniec1;
 }
 i = recv(onet, bufor, 1024, 0);
 bufor[i] = '\0';
 odebrane += i;
 send(klient, bufor, strlen(bufor), 0);
 wyslane += send(onet, "AUTHKEY\r\n", 9, 0);
 sprintf(bufor, "NICK %s\r\n", nickname);
 wyslane += send(onet, bufor, strlen(bufor), 0);
 sprintf(bufor, "USER * %s czat-app.onet.pl :%s\r\n", authkey, nickname);
 wyslane += send(onet, bufor, strlen(bufor), 0);
 i = recv(onet, bufor, 1024, 0);
 bufor[i] = '\0';
 odebrane += i;
 u = strstr(bufor, "unknown");
 if(!u){
  dawaj_czas('-');
  fprintf(stderr, errs[2]);
  send(klient, errs[2], strlen(errs[2]), 0);
  goto koniec1;
 }
 memcpy(authkey, strchr(u, ':') + 1, 16);
 authkey[16] = '\0';
 auth(authkey, authkey);
 sprintf(bufor, "AUTHKEY %s\r\n", authkey);
 wyslane += send(onet, bufor, strlen(bufor), 0);
 if(onet > klient) fdmax = onet;
 else fdmax = klient;
 while(1){
  tmpfd = mfd;
  select(fdmax + 1, &tmpfd, NULL, NULL, NULL);
  if(FD_ISSET(onet, &tmpfd)){
   koniec = wyslij(onet, klient, onet);
  }
  if(FD_ISSET(klient, &tmpfd)){
   koniec = wyslij(klient, onet, onet);
  }
#if WIN32
  pokaz_transfer();
#endif
  if(koniec == 1) break;
 }
 closesocket(onet);
 koniec1:
 closesocket(klient);
 return;
}

int main(int a, char *b[]){
 int serwer, klientfd, klen, BindPort;
 struct sockaddr_in serw, klient;
 char *aut;
 aut = ";     pedal.c ,    Zakodowane przez skinhead_lamer    \r\n"
       ";                          http://sexplaneta.pl\r\n"
       ";-------------------------------------------------------\r\n\r\n";
#if WIN32
 WSADATA wd;
 WSAStartup(267, &wd);
 DWORD it;
#else
 pthread_t it;
#endif
 sprintf(kolor_tab[0], "%c14 ", 0x03);
 sprintf(kolor_tab[1], "%c5 ", 0x03);
 sprintf(kolor_tab[2], "%c7 ", 0x03);
 sprintf(kolor_tab[3], "%c5 ", 0x03);
 sprintf(kolor_tab[4], "%c13 ", 0x03);
 sprintf(kolor_tab[5], "%c4 ", 0x03);
 sprintf(kolor_tab[6], "%c12 ", 0x03);
 sprintf(kolor_tab[7], "%c3 ", 0x03);
 sprintf(kolor_tab[8], "%c10 ", 0x03);
 sprintf(kolor_tab[9], "%c11 ", 0x03);
 sprintf(kolor_tab[10], "%c6 ", 0x03);
 sprintf(kolor_tab[11], "%c2 ", 0x03);
 sprintf(kolor_tab[12], "%c7 ", 0x03);
 sprintf(kolor_tab[13], "%c4 ", 0x03);
 write(1, "kompilacja: ", 12);
 puts(__DATE__" " __TIME__);
 if(strlen(aut) == 176) printf(aut);
 else exit(0);
 if(a == 1) BindPort = 8899;
 else BindPort = atoi(b[1]);
 serw.sin_family = AF_INET;
 serw.sin_port = htons(BindPort);
 serw.sin_addr.s_addr = INADDR_ANY;
 memset(&(serw.sin_zero), '\0', 8);
 serwer = socket(AF_INET, SOCK_STREAM, 0);
 if(bind(serwer, (struct sockaddr *)&serw, sizeof(serw)) == -1){
  dawaj_czas('-');
  fprintf(stderr, "- error_bind = nie mozna zabindowac kutasa na %d centymetrze, wybierz inny rozmiar", BindPort);
  closesocket(serwer);
#if WIN32
  WSACleanup();
#endif
  exit(0);
 }
 listen(serwer, 3);
 dawaj_czas('+');
 printf("+ serwer: 127.0.0.1:%d\r\n", BindPort);
 klen = sizeof(klient);
 while(1){
  klientfd = accept(serwer, (struct sockaddr *)&klient, &klen);
  WYKREUJ_THREAD
 }
 closesocket(serwer);
#if WIN32
 WSACleanup();
#endif
 return 0;
}


Post został pochwalony 0 razy
Zobacz profil autora
Wyświetl posty z ostatnich:      
Napisz nowy tematOdpowiedz do tematu


 Skocz do:   



Zobacz następny temat
Zobacz poprzedni temat
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001/3 phpBB Group :: FI Theme :: Wszystkie czasy w strefie EET (Europa)