Iniciar sesion en facebook con cpp

Iniciado por Kaxperday, 24 Octubre 2014, 19:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Kaxperday

Hola de nuevo, miren mediante este programa busco iniciar sesión en facebook para ello he estudiado un poco su página:

Citar
<td class="html7magic"><label for="email">Correo o teléfono</label></td><td class="html7magic"><label for="pass">Contraseña</label></td></tr><tr><td><input type="text" class="inputtext" name="email" id="email" value="" tabindex="1" /></td><td><input type="password" class="inputtext" name="pass" id="pass" tabindex="2" /></td><td><label class="uiButton uiButtonConfirm" id="loginbutton" for="u_0_l"><input value="Entrar" tabindex="4" type="submit" id="u_0_l" /></label></td>

Lo que me hace deducir que para iniciar sesión necesitare realizar un POST con el hotmail o teléfono y contraseña de la siguiente manera:

email->miemail@hotmail.com
pass->contraseña

Entonces en el C++ tengo lo siguiente para iniciar sesión ojo a la cookie tengo problemas para extraerla, algun algoritmo sería bien recibido:

char* inicia_sesion(char* user, char *pass)
{
WSADATA wsa;
int sok, len;
struct sockaddr_in dir;
char buf[500], cad[100], aux[10], rec[1000];

WSAStartup(MAKEWORD(2, 0), &wsa);

if ((sok = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("Se ha producido un error al inicializar el socket.");
exit(0);
}
else
{
dir.sin_family = AF_INET;
dir.sin_port = htons(PUERTO);
dir.sin_addr.s_addr = inet_addr(IP);

strcpy_s(cad, "email=");
strcat_s(cad, user);
strcat_s(cad, "&pass=");
strcat_s(cad, pass);

len = strlen(cad);
_itoa_s(len, aux, 10);

strcpy_s(buf, "POST /index.php HTTP/1.1\r\n");
strcat_s(buf, "Host: www.facebook.com\r\n");
strcat_s(buf, "Content-type: application/x-www-form-urlencoded\r\n");
strcat_s(buf, "Content-length: ");
strcat_s(buf, aux);
strcat_s(buf, "\r\n\r\n");
strcat_s(buf, cad);

connect(sok, (struct sockaddr*)&dir, sizeof(dir));
send(sok, buf, strlen(buf), 0);
strcpy_s(buf, "");
recv(sok, buf, 1000, 0);
printf("%s", buf);
}


Recibo que el navegador no es válido:

CitarHTTP/1.0 302 Moved Temporarily
Location: http://www.facebook.com/unsupportedbrowser
Content-Type: text/html; charset=utf-8
X-FB-Debug: /e6SzF/7COKJY++J5Zt0aTYEdi2vwAvXAwRVH91SWDGbp6gIAHzpF2G9v+jDJox1gT4j3E8o0sk/OJy/qxKVuA==
Date: Fri, 24 Oct 2014 17:40:51 GMT
Content-Length: 0
X-Cache: MISS from ubuntu
X-Cache-Lookup: MISS from ubuntu:3128
Via: 1.1 ubuntu:3128 (squid/2.7.STABLE9)
Connection: close

þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÌÌÌÌÌÌÌÌ

Como puedo iniciar sesión, luego me tendrá que dar cookies. Un poco ayuda con esto pls.

Se me ocurre hacerlo para una página que paguen por publicar mensajes o hacer clicks¿? se podría falsificar el navegador con cpp para esa página.

Saludos.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

ivancea96

Probaste a ponerle el campo de navegador con Chrome, por ejemplo?

Kaxperday

Vale quizas sea que necesite agente de usuario de navegador para que me mande los datos orientados a mi navegador, o simplemente para que me reconozca el navegador y así se defienda de los bots, cosa que trataremos de crackear.

Me acabo de encontrar una preciosa página:

http://www.useragentstring.com/pages/useragentstring.php

Pero no entiendo cada sistema operativo tiene su agente de navegación, he probado con uno así:

User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36

Supongo que esto valdrá para todos usuarios no? Porque si quiero exportar mi programa quiero que valga para los demás aunque sean de 32 bits por ejemplo xp
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

ivancea96

El User Agent es un campo más, no influye para nada en el programa. Sólo es para que lo sepa el servidor (que a lo mejor envía un html diferente)