[ac1D]
11.04.2010, 01:13
Извините за страшный код :) Вот сегодя нужно было с сокетами поратать на с++. Надеюсь кому-нибудь пригодится
Юзаем так:
gcc ex.c -o ex
./ex [login] [email]
Напрмер:
./ex bofff bofff@gmail.com Дальше он вам выдаст инфу для логина :) Не пинайте))
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#define site "204.11.52.70"
#define green "\E[32m"
#define red "\E[31m"
#define pink "\E[35m"
#define yellow "\E[36m"
char *str_replace(char *str, char *old, char *new) {
int i, count = 0;
int newlen = strlen(new);
int oldlen = strlen(old);
for (i = 0; str[i]; ++i)
if (strstr(&str[i], old) == &str[i])
++count, i += oldlen - 1;
char *ret = (char *) calloc(i + 1 + count * (newlen - oldlen), sizeof(char));
if (!ret) return;
i = 0;
while (*str)
if (strstr(str, old) == str)
strcpy(&ret[i], new),
i += newlen,
str += oldlen;
else
ret[i++] = *str++;
ret[i] = '\0';
return ret;
}
int main(int argc, char* argv[])
{
int sock, bytes_recieved;
char recv_data[1024];
struct hostent *host;
struct sockaddr_in server_addr;
char send_data[1024];
char* postq;
postq = "POST /register/ HTTP/1.1\r\nHost: vbskins.com\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nKeep-Alive: 300\r\nConnection: keep-alive\r\nReferer: http://vbskins.com/register\r\nCookie: \r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 80\r\n\r\nusername=Hopppa&pw1=123456&pw2=123456&email=momo%40gmail.com&create_acc=1&redirect=";
char* login;
char* mail;
login = argv[1];
mail = argv[2];
char* wow;
char* wow2;
wow=str_replace(postq,"Hopppa",login);
wow2=str_replace(wow,"momo%40gmail.com",mail);
memcpy(send_data,wow2,1024);
host = gethostbyname(site);
sock = socket(AF_INET, SOCK_STREAM, 0);
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(80);
server_addr.sin_addr = *((struct in_addr *)host->h_addr);
bzero(&(server_addr.sin_zero),8);
connect(sock, (struct sockaddr *)&server_addr,sizeof(struct sockaddr));
send(sock,send_data,strlen(send_data), 0);
close(sock);
printf(red "Site: " yellow "%s\n" red "Login: " yellow "%s\n" red "Password: " yellow "123456\n" red "Email: " yellow "%s\n\n", site, login ,mail);
}
Юзаем так:
gcc ex.c -o ex
./ex [login] [email]
Напрмер:
./ex bofff bofff@gmail.com Дальше он вам выдаст инфу для логина :) Не пинайте))
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#define site "204.11.52.70"
#define green "\E[32m"
#define red "\E[31m"
#define pink "\E[35m"
#define yellow "\E[36m"
char *str_replace(char *str, char *old, char *new) {
int i, count = 0;
int newlen = strlen(new);
int oldlen = strlen(old);
for (i = 0; str[i]; ++i)
if (strstr(&str[i], old) == &str[i])
++count, i += oldlen - 1;
char *ret = (char *) calloc(i + 1 + count * (newlen - oldlen), sizeof(char));
if (!ret) return;
i = 0;
while (*str)
if (strstr(str, old) == str)
strcpy(&ret[i], new),
i += newlen,
str += oldlen;
else
ret[i++] = *str++;
ret[i] = '\0';
return ret;
}
int main(int argc, char* argv[])
{
int sock, bytes_recieved;
char recv_data[1024];
struct hostent *host;
struct sockaddr_in server_addr;
char send_data[1024];
char* postq;
postq = "POST /register/ HTTP/1.1\r\nHost: vbskins.com\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nKeep-Alive: 300\r\nConnection: keep-alive\r\nReferer: http://vbskins.com/register\r\nCookie: \r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 80\r\n\r\nusername=Hopppa&pw1=123456&pw2=123456&email=momo%40gmail.com&create_acc=1&redirect=";
char* login;
char* mail;
login = argv[1];
mail = argv[2];
char* wow;
char* wow2;
wow=str_replace(postq,"Hopppa",login);
wow2=str_replace(wow,"momo%40gmail.com",mail);
memcpy(send_data,wow2,1024);
host = gethostbyname(site);
sock = socket(AF_INET, SOCK_STREAM, 0);
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(80);
server_addr.sin_addr = *((struct in_addr *)host->h_addr);
bzero(&(server_addr.sin_zero),8);
connect(sock, (struct sockaddr *)&server_addr,sizeof(struct sockaddr));
send(sock,send_data,strlen(send_data), 0);
close(sock);
printf(red "Site: " yellow "%s\n" red "Login: " yellow "%s\n" red "Password: " yellow "123456\n" red "Email: " yellow "%s\n\n", site, login ,mail);
}