1

je cherche à me creer un bot pour un jeu sur facebook,

j'arrive à me connecter sur facebook, mais quant j'essais de charger la frame contenant le jeu, ...

le code de la frame :
<div id="app_content_32498758354" class="app_content_32498758354"><div><iframe id="app32498758354_iframe_canvas" name="iframe_canvas" src="http://www.suceursdesang.com/jeu/?fb_sig_in_iframe=1&fb_sig_locale=fr_FR&fb_sig_in_new_facebook=1&fb_sig_time=1234395769.6542&fb_sig_added=1&fb_sig_profile_update_time=1233920924&fb_sig_expires=1234400400&fb_sig_user=722118737&fb_sig_session_key=2.nSVEzmPyFtS6uuzFYrMZVA__.3600.1234400400-722118737&fb_sig_ss=_Px9ke08WX7i5bt_8hyV7g__&fb_sig_api_key=ea1bc04157ea248952b528780fd38c02&fb_sig_app_id=32498758354&fb_sig=f3b7a54bb169db4c3c7ffea9a7d70c27" resizable="true" frameborder="0" fbcontext="777e1961d1c5" class="canvas_iframe_util"></iframe><script type="text/javascript">
 FB_RequireFeatures(["CanvasUtil"], function()
    {FB.XdComm.Server.init("/xd_receiver_v0.4.php");FB.IFrameUtil.CanvasUtilServer.run();});</script></div></div>
j'ai mis volontairement le code js qui est à coté car j'immagine bien qu'il à un rapport avec mon probleme.

j'ai transformé les . et ; de l'url en char html mais sans succes, quoi que je fasse, le contenu de la frame me renvois sur la page de login.
   return 0; } voila mon code : #include "StdAfx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include "curl/curl.h" #include "curl/types.h" #include "curl/easy.h" #include "console.h" #include "log.h" struct MemoryStruct { char *memory; size_t size; }; size_t WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data) { size_t realsize = size * nmemb;   struct MemoryStruct *mem = (struct MemoryStruct *)data;   mem->memory = (char *)realloc(mem->memory, mem->size + realsize + 1);   if (mem->memory) {     memcpy(&(mem->memory[mem->size]), ptr, realsize);     mem->size += realsize;     mem->memory[mem->size] = 0;   }   return realsize; } CURL *curl_handle = 0; struct MemoryStruct *curl_chunk = 0; void curlStart(void) {     curl_global_init(CURL_GLOBAL_ALL);      curl_handle = curl_easy_init();      curl_chunk = (struct MemoryStruct *)malloc(sizeof(struct MemoryStruct));      curl_easy_setopt(curl_handle, CURLOPT_HEADER, 1);      curl_easy_setopt(curl_handle, CURLOPT_FOLLOWLOCATION, 1);      curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0);      curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYHOST, 0);      curl_easy_setopt(curl_handle, CURLOPT_COOKIEJAR, "my_cookies.txt");      curl_easy_setopt(curl_handle, CURLOPT_COOKIEFILE, "my_cookies.txt");      curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");      curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback); } void curlEnd(void) {     curl_easy_cleanup(curl_handle);      curl_global_cleanup();      if(curl_chunk) free(curl_chunk); } const char* curlDownload(char*path,char*post) {     if(!curl_chunk || !curl_handle) return "error";      if(curl_chunk->memory) free(curl_chunk->memory);      curl_chunk->memory = 0;      curl_chunk->size = 0;      if(post) curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDS,post);      curl_easy_setopt(curl_handle, CURLOPT_POST, (post!=0));      curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void*)curl_chunk);      curl_easy_setopt(curl_handle, CURLOPT_URL, path);      CURLcode returnValue = curl_easy_perform(curl_handle);            if(returnValue) return curl_easy_strerror(returnValue);      return 0; } int facebooklogin(char *login, char *pass) {           const char * path = "https://login.facebook.com/login.php?next=http://suceurdesang.com/jeu/";      const char* returnValue;      log_file log("curl.log.html");      console shell;      char postOption[1024]; sprintf(postOption,"email=%s&pass=%s&login=Login",login,pass);      curlStart();      char url[1024];      char murl[1024];      char*mptr=murl;      char*uptr=url;      log_file zlog("curl.zlog.txt");            int loged = 0;      returnValue = curlDownload((char*)path,postOption);      if(returnValue) shell.printc(ROUGE,"%s\n",returnValue);      else     {                     if(strstr(curl_chunk->memory,"connexion"))                     {     shell.printc(VERT,"connected to facebook %s!\n",login);                          loged=1;                     }                      else                     {     shell.printc(ROUGE,"facebook connection problem %s ..\n",login);                          log.mem2log(curl_chunk->memory,curl_chunk->size);                     }                }      if(!loged) goto end; loged=0;      returnValue = curlDownload((char*)"http://apps.facebook.com/suceursdesang/",0);            if(returnValue) shell.printc(ROUGE,"%s\n",returnValue);      else     {     char *ptr = strstr(curl_chunk->memory,"name=\"iframe_canvas\" src=\"http://www.suceursdesang.com/jeu/?");                     if(ptr)                     {     shell.printc(VERT,"suceurs de sang url get, request it\n");                          char *endptr = strstr(curl_chunk->memory,"\" resizable=\"true\" frameborder=");                                                    memcpy(url,ptr+26,endptr-(ptr+26));                          shell.printc(BLEU,"%s\n",url);                          loged=1;                          log_file alog("curl.alog.html");                          alog.mem2log(curl_chunk->memory,curl_chunk->size);                     }                      else                     {     shell.printc(ROUGE,"suceurs de sang connection problem..\n");                          log.mem2log(curl_chunk->memory,curl_chunk->size);                     }                }      if(!loged) goto end;      // request suceur de sang frame url .. // transformation des char invalide dans les url.. memcpy(mptr,uptr,34); mptr+=34; uptr+=34; while(*uptr) {     if(*uptr == ';')       { *mptr++ = '%';        *mptr++ = '3';        *mptr++ = 'B';      } else if(*uptr == '.')           {   *mptr++ = '%';                *mptr++ = '2';                *mptr++ = 'E';                } else *mptr++ = *uptr;      uptr++; }; *mptr = 0; zlog.mem2log(murl,strlen(murl)); // get de la frame du jeu..      returnValue = curlDownload(murl,0);      if(returnValue) shell.printc(ROUGE,"%s\n",returnValue);      else     {     if(strstr(curl_chunk->memory,"nosferapti"))                      shell.printc(VERT,"\n ** connected !\n");                     else                          {     shell.printc(ROUGE,"\n ** error !\n");                               log.mem2log(curl_chunk->memory,curl_chunk->size);                          }                } /* // change my facebook status :- ) returnValue = curlDownload("m.facebook.com",0); if(returnValue) shell.printc(ROUGE,"\nm.facebook > %s\n",returnValue);      else     {     char * ptr = strstr(curl_chunk->memory,"<form action=\"/home.php?");                     if(ptr)                     {     char *endptr = strstr(ptr+14,"\"");                          char zurl[1024];                          memset(zurl,0,1024);                          memcpy(zurl,ptr+14,endptr-(ptr+14));                          sprintf(url,"m.facebook.com%s",zurl);                          char id[1024];                          memset(id,0,1024);                          char *idptr = strstr(endptr,"post_form_id\" value=\"");                          char *endid = strstr(idptr+21,"\"");                          memcpy(id,idptr+21,endid-(idptr+21));                          printf("\nurl %s\nid %s\n",url,id);                          //log.mem2log(curl_chunk->memory,curl_chunk->size);                          char postOpt[1024]; sprintf(postOpt,"post_form_id=%s&status=%s",id,"an hello from r043v using curl !");                          returnValue = curlDownload(url,postOpt);                                          if(returnValue) shell.printc(ROUGE,returnValue);                     }                                           //shell.printc(VERT,"\n ** connected to m.facebook.com !\n");                     log.mem2log(curl_chunk->memory,curl_chunk->size);                }*/ end:      curlEnd();      return 1; } int main(void) {      facebooklogin("noferov@gmail.com","******");      printf("\nlogin end..\n");      system("pause");   

si qq peu m'aider je lui en serais grandement reconnaissant,

si qq saurais aussi ou trouver les lib curl pour code::block (avec gcc ou borland comme compilo) ca serais aussi exelent, la je me suis rabatu sur visual c++ 6
et la le mec il le pécho par le bras et il lui dit '

2

j'imagine que comme dans beaucoup d'applications Facebook, tout ça fonctionne à grands renforts d'Ajax et autres JS et que donc une simple copie avec cURL n'a aucune chance de marcher ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

je te conseille de tracer toutes les requetes ajax afin de ne pas en oublier... tu pourrais risquer de te faire bloquer ton compte sinon ! utilise firebug comme extension sous firefox, c'est tres pratique !
Ancien pseudo : lolo

4

J'avais essayé Charles pour tracer toutes les requêtes, j'ai trouvé ça très très pratique et simple d'emploi happy
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

5

proxy/tamperdata vont t'aider a voir les requetes ouep (meme firebug tout simplement en fait)
cote fb, ils ont tres certainement un token qui doit etre mis dans chaque requete, pour justement eviter que des jeunz fassent ce que tu veux faire...

6

merci bien, je m'etais arrété à smsnif de nirsoft

je vais un peu analyser le pb, mais facebook fait 12000 requettes != ...
ca me parais chaud, je vais surement devoir rester sur ma solution bidon qui ouvre les requette du jeux par des popup

à moins qu'il y ai un moyen de controler firefox via un programme pour lui soumettre des url et qu'il les renvois directement à mon code en ayant executé tout ce qui est javascript
et la le mec il le pécho par le bras et il lui dit '

7

je suis finalement passé sur qq chose de plus simple pour l'instant,
mais si ca interesse qq j'ai trouvé une lib pouvant controler firefox et ie

c'est webAii dont une jolie démo est la.
et la le mec il le pécho par le bras et il lui dit '

8

je vois du tout le rapport entre ce qu'a l'air d'être cette vidéo (un framework js) et "contrôler firefox et ie" (ce qui fort heureusement est impossible, au-delà de quelques opérations de base qu'on peut en plus désactiver)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

La vidéo est la démo d'un programme fait avec cette lib, qui va cliquer et faire des d&d etc. sur une page web. Il se trouve que la page web est celle d'un framework js, mais ça n'a rien à voir avec la lib qu'ils veulent montrer.

Je trouve que c'est de la balle ce truc pour faire des environnement de test sur des sites web!
Tout ce qui passe pas par le port 80, c'est de la triche.

10

ah ok, j'ai mal compris
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

11

en gros, c un selenium, mais pas gratuit quoi