VirginMary Posted January 27, 2008 Report Posted January 27, 2008 Hacking conquiztador.ro for fun and profitClientul conquiztador este implementat in Flash si poate fi decompilat cu tooluri precum Sothink.Protocolul de comunicare intre client si server este compus din mesaje XML plain text. Folosind o biblioteca de captura a pachetelor diponibila in majoritatea distributiilor de Linux (libpcap) se poate face inginerie inversa si se pot decoda mesajele (intrebari, solutii corecte, convorbiri pe chat, etc) in timp real. Ok, sa presupunem ca ne-am logat si am demarat jocul. Clientul trimite o serie de mesaje:------------------------------------------------------------------------------WEBLOGIN - Parametrii sesiunii setati in urma logarii prin HTTP------------------------------------------------------------------------------Cheie: SIDSemnificatie: Identificator de sesiune (GUID pe 128 de biti)Exemplu valoare: 8be901bd6984d46fd6285495d56e0310------------------------------------------------------------------------------Cheie: USERIDSemnificatie: Identificatorul utilizatorului (intreg) Exemplu valoare: 351749------------------------------------------------------------------------------------------------------------------------------------------------------------GETDATA - Request pentru datele personale si lista de prieteni------------------------------------------------------------------------------Cheie: QUERYSemnificatie: Informatii ceruteExemplu valoare: MYDATA,FRIENDLIST------------------------------------------------------------------------------Serverul raspunde cu:------------------------------------------------------------------------------FRIENDLIST - Lista de prieteni------------------------------------------------------------------------------Cheie: USERSSemnificatie: Lista de prieteni------------------------------------------------------------------------------------------------------------------------------------------------------------MYDATA - Datele personale------------------------------------------------------------------------------Cheie: NAMESemnificatie: Nume utilizatorExemplu valoare: MadCow------------------------------------------------------------------------------Cheie: IDSemnificatie: Identificator utilizatorExemplu valoare: 351749------------------------------------------------------------------------------Cheie: JEPSemnificatie: PAJ------------------------------------------------------------------------------Cheie: VEPSemnificatie: PRC------------------------------------------------------------------------------Cheie: AOJSemnificatie: PPR------------------------------------------------------------------------------Cheie: GWRSemnificatie: EFJ------------------------------------------------------------------------------Cheie: GAMECOUNTSemnificatie: Numarul de jocuri------------------------------------------------------------------------------Cheie: DAYRANKSemnificatie: Numarul stelute------------------------------------------------------------------------------------------------------------------------------------------------------------NOCHAT - Motivul pentru care utilizatorul nu poate vorbi pe chatul general------------------------------------------------------------------------------Cheie: REASONSemnificatie: Motivul...------------------------------------------------------------------------------------------------------------------------------------------------------------GAMEROOM - Informatii camera de joc------------------------------------------------------------------------------Cheie: IDSemnificatie: Identificatorul camerei de jocExemplu valoare: 1------------------------------------------------------------------------------Cheie: TITLESemnificatie: Numele camereiExemplu valoare: Blitzkrieg------------------------------------------------------------------------------Cheie: MAPSemnificatie: Harta pe care se joacaExemplu valoare: RO------------------------------------------------------------------------------Cheie: PLAYERSSemnificatie: Utilizatori in asteptareExemplu valoare: 10------------------------------------------------------------------------------Cheie: INGAMESemnificatie: Utilizatori implicati in jocuriExemplu valoare: 627------------------------------------------------------------------------------------------------------------------------------------------------------------SEPROOM - Informatii separeu------------------------------------------------------------------------------Cheie: IDSemnificatie: Identificatorul separeuluiExemplu valoare: 6799780------------------------------------------------------------------------------Cheie: MAPSemnificatie: HartaExemplu valoare: RO------------------------------------------------------------------------------Cheie: U1Semnificatie: Creatorul separeuluiExemplu valoare: Vlad Vlad------------------------------------------------------------------------------Cheie: DEPU1Semnificatie: Primul jucatorExemplu valoare: Vlad Vlad------------------------------------------------------------------------------Cheie: DEPU2Semnificatie: Al doilea jucatorExemplu valoare: Ion Ion------------------------------------------------------------------------------------------------------------------------------------------------------------USERLIST - Lista utilizatorilor logati------------------------------------------------------------------------------Cheie: ULCHSemnificatie: Utilizatori logatiExemplu valoare: +TIBERIU 8|-r3alw4r|-patrunzatoru------------------------------------------------------------------------------------------------------------------------------------------------------------CHATMSG - Mesaj pe chatul general------------------------------------------------------------------------------Cheie: MIDSemnificatie: Identificator mesajExemplu valoare: 924881------------------------------------------------------------------------------Cheie: SENDERSemnificatie: Utilizatorul care a trimis mesajulExemplu valoare: BobbyGuard------------------------------------------------------------------------------Cheie: MSGSemnificatie: Mesajul propriu-zisExemplu valoare: Comportati-va rezonabil, nu depasiti limitele bunului simt------------------------------------------------------------------------------In timpul unui joc mesajele pot fi urmatoarele:------------------------------------------------------------------------------STATE - Serverul anunta clientul ca starea jocului s-a modificat.------------------------------------------------------------------------------Cheie: SCREENSemnificatie: HartaExemplu valoare: MAP_RO------------------------------------------------------------------------------Cheie: ROUNDSemnificatie: A cata runda din joc este cea curentaExemplu valoare: 6------------------------------------------------------------------------------Cheie: NEXTPLAYERSemnificatie: Urmatorul jucator care trebuie sa aleaga un teritoriuExemplu valoare: 2------------------------------------------------------------------------------Cheie: PHASESemnificatie: Etapa jocului cucerire/razboiExemplu valoare: 2------------------------------------------------------------------------------Cheie: HCSemnificatie: Ordinea jucatorilorExemplu valoare: 123------------------------------------------------------------------------------Cheie: POINT1Semnificatie: Punctele primului jucatorExemplu valoare: 2500------------------------------------------------------------------------------Cheie: POINT2------------------------------------------------------------------------------Cheie: POINT3------------------------------------------------------------------------------Cheie: BASESSemnificatie: Pozitia turnurilorExemplu valoare: 0F0206------------------------------------------------------------------------------Cheie: SELECTIONSSemnificatie: Teritoriile selectate de jucatoriExemplu valoare: 000400------------------------------------------------------------------------------Cheie: AREASSemnificatie: Distributia teritoriilor la jucatoriExemplu valoare: 331243313113433341333141334111------------------------------------------------------------------------------------------------------------------------------------------------------------STATE - Serverul anunta clientul ca se asteapta dupa un alt jucator (imaginea cu clepsidra)------------------------------------------------------------------------------Cheie: SCREENSemnificatie: Starea noua stare este "in asteptare"Exemplu valoare: WAIT------------------------------------------------------------------------------------------------------------------------------------------------------------MESSAGE - Mesaj privat trimis------------------------------------------------------------------------------Cheie: TOSemnificatie: Cui ii este adresat mesajul (0 pentru toata lumea)Exemplu valoare: 0------------------------------------------------------------------------------Cheie: TEXTSemnificatie: MesajulExemplu valoare: conquizator rulz------------------------------------------------------------------------------------------------------------------------------------------------------------MESSAGE - Mesaj privat primit------------------------------------------------------------------------------Cheie: FROMSemnificatie: De la cine vine mesajulExemplu valoare: 3------------------------------------------------------------------------------Cheie: MSGSemnificatie: MesajulExemplu valoare: yep------------------------------------------------------------------------------------------------------------------------------------------------------------QUESTION - Intrebare grila------------------------------------------------------------------------------Cheie: RATINGSemnificatie: Punctajul mediu cu care a fost evaluata intrebarea de catre jucatoriExemplu valoare: 3.0------------------------------------------------------------------------------Cheie: CREATORSemnificatie: Utilizatorul care a trimis intrebareaExemplu valoare: Infernal------------------------------------------------------------------------------Cheie: KEYSemnificatie: Cheia cu care se codeaza intrebarea si optiunile. Este un numar pe 128 de biti generat aleator de catre server pentru fiecare intrebare.Exemplu valoare: 4DC68E32C311ACF379EBE2D72E13C91E------------------------------------------------------------------------------Cheie: QUESTIONSemnificatie: Intrebarea hashuitaExemplu valoare: 4E978B2EBCC12F5906648EBAA76EA7DF1FB94D95BF6E3AF48D9ACC2A841F565564928263C4840D4E11308CBDE260AB8A15F0519DF17B68F1DF90C422D0527F5D289C922D42625F5D0B648EA642AEA3C0------------------------------------------------------------------------------Cheie: OP1Semnificatie: Prima varianta de raspunsExemplu valoare: 4B9F9334E98C1E52------------------------------------------------------------------------------Cheie: OP2------------------------------------------------------------------------------Cheie: OP3------------------------------------------------------------------------------Cheie: OP4------------------------------------------------------------------------------------------------------------------------------------------------------------TIPQUESTION - Intrebare cu raspuns rapid------------------------------------------------------------------------------Cheie: RATING------------------------------------------------------------------------------Cheie: CREATOR------------------------------------------------------------------------------Cheie: KEY------------------------------------------------------------------------------Cheie: QUESTION------------------------------------------------------------------------------------------------------------------------------------------------------------ANSWER - Clientul trimite catre server raspunsul la o intrebare grila------------------------------------------------------------------------------Cheie: ANSWERSemnificatie: A cata varianta a fost selectataExemplu valoare: 3------------------------------------------------------------------------------------------------------------------------------------------------------------ANSWERRESULT - Variantele jucatorilor si raspunsul corect pentru o intrebare grila------------------------------------------------------------------------------Cheie: PLAYER1Semnificatie: Raspunsul primului jucatorExemplu valoare: 3------------------------------------------------------------------------------Cheie: PLAYER2------------------------------------------------------------------------------Cheie: GOODSemnificatie: Raspunsul corect------------------------------------------------------------------------------------------------------------------------------------------------------------TIP - Clientul trimite catre server raspunsul jucatorului la o intrebare rapida------------------------------------------------------------------------------Cheie: TIPSemnificatie: RaspunsulExemplu valoare: 130------------------------------------------------------------------------------------------------------------------------------------------------------------TIP - Serverul anunta raspunsul altui jucator------------------------------------------------------------------------------Cheie: PLAYERSemnificatie: Numarul jucatoruluiExemplu valoare: 3------------------------------------------------------------------------------Cheie: VALUESemnificatie: RaspunsulExemplu valoare: 1962------------------------------------------------------------------------------Cheie: TIMESemnificatie: Timpul de reactieExemplu valoare: 05.22------------------------------------------------------------------------------------------------------------------------------------------------------------TIPRESULT - Variantele jucatorilor si raspunsul corect pentru o intrebare rapida</span>------------------------------------------------------------------------------Cheie: WINNERSemnificatie: Numarul castigatoruluiExemplu valoare: 3------------------------------------------------------------------------------Cheie: GOODSemnificatie: Raspunsul corectExemplu valoare: 3------------------------------------------------------------------------------Cheie: SECONDSemnificatie: Numarul celui de pe locul doi------------------------------------------------------------------------------------------------------------------------------------------------------------WINNERSELECT - Serverul anunta clientul ce teritoriu a fost selectat------------------------------------------------------------------------------Cheie: PLAYERSemnificatie: Numarul castigatorului------------------------------------------------------------------------------Cheie: AREASemnificatie: TeritoriulExemplu valoare: 2------------------------------------------------------------------------------------------------------------------------------------------------------------DISCONNECTED - Un jucator se deconecteaza------------------------------------------------------------------------------Cheie: PLAYERSemnificatie: Numarul castigatorului------------------------------------------------------------------------------Cheie: NAMESemnificatie: Numele jucatoruluiExemplu valoare: brick_in_the_wall------------------------------------------------------------------------------------------------------------------------------------------------------------SUBSTITUTE - Jucatorul este inlocuit cu robotul------------------------------------------------------------------------------Cheie: PLAYERSemnificatie: Numarul castigatorului------------------------------------------------------------------------------Cheie: NAMESemnificatie: Numele jucatoruluiExemplu valoare: brick_in_the_wall (robot)------------------------------------------------------------------------------------------------------------------------------------------------------------CMD - Informatii la terminarea jocului------------------------------------------------------------------------------Cheie: CMDExemplu valoare: END_GAME------------------------------------------------------------------------------Cheie: PLACINGSSemnificatie: Ordinea jucatorilor la finalExemplu valoare: 312------------------------------------------------------------------------------Cheie: JEPCHANGESemnificatie: Schimbare PAJExemplu valoare: -17------------------------------------------------------------------------------Cheie: NEWJEPSemnificatie: Noua valoare PAJExemplu valoare: 4966------------------------------------------------------------------------------Cheie: GAMECOUNTSemnificatie: Numarul de jocuri------------------------------------------------------------------------------Cheie: MONEYSemnificatie: Galbenii------------------------------------------------------------------------------Cheie: MONEYCHANGESemnificatie: Galbeni facuti in jocul curent------------------------------------------------------------------------------Cheie: SELVEPSemnificatie: PRC intrebari grila------------------------------------------------------------------------------Cheie: SELVEPCHSemnificatie: Schimbare PRC intrebari grila------------------------------------------------------------------------------Cheie: TIPVEPSemnificatie: PRC intrebari rapide------------------------------------------------------------------------------Cheie: TIPVEPCHSemnificatie: Schimbare PRC intrebari rapide------------------------------------------------------------------------------Cheie: VEPSemnificatie: PRC------------------------------------------------------------------------------Cheie: VEPCHSemnificatie: Schimbare PRC------------------------------------------------------------------------------Cheie: GWRSemnificatie: EFJ------------------------------------------------------------------------------Cheie: AOJSemnificatie: PPR------------------------------------------------------------------------------Cheie: AOJCHSemnificatie: Schimbare PPR------------------------------------------------------------------------------Cheie: ANSCNTSemnificatie: Numarul de intrebari grila------------------------------------------------------------------------------Cheie: TIPCNTSemnificatie: Numarul de intrebari rapide------------------------------------------------------------------------------Cheie: GOODANSCNTSemnificatie: Numarul de intrebari grila la care am raspuns corect------------------------------------------------------------------------------Cheie: TIPWINCNTSemnificatie: Numarul de intrebari rapide cu raspuns corect.------------------------------------------------------------------------------------------------------------------------------------------------------------CLOSEGAME - Clientul notifica serverul de faptul ca am iesit din joc------------------------------------------------------------------------------Intrebarile sunt incapsulate intr-un mesaj QUESTION si sunt hashuite cu o cheie variabila generata de server.Atat intrebarile cat si optiunile de raspuns sunt codate UTF8 deci caracterele uzuale au un octet iar diacriticele doi octeti.Ce se poate face relativ usor este sa se decodeze intrebarile si sa se adauge automat la o baza de date in timpul jocului.Un bot care sa joace neasistat este mai greu de realizat.Algoritmul cu care se face decodarea este prezentat in continuare, implementat in cod C.#define ROT(k) ((((k) >> 7) & 33554431) | (((k) & 127) << 25))</div>int str_to_hex(char *s, int len){ int i, ret = 0; for (i = 0; i < len; i++) { ret = ret * 16 + ((s[i] >= '0' && s[i] <= '9') ? (s[i] - '0') : (s[i] - 'A' + 10)); } return ret;}int dcd_key(char *s){ int aux; if (*s == 0) return 0; aux = str_to_hex(s, 2); aux = ((aux & 28) >> 2) * 2 + 2; return str_to_hex(&s[aux], 8) ^ 2875741179;}void dcd_text(char *buf, char *s, int k){ int i, len = strlen(s); unsigned long aux; if (k == 0) { strcpy(buf, s); return; } for (i = 0; i < len / 2; i++) { aux = (str_to_hex(&s[i * 2], 2) ^ k) & 255; if (aux <= 31) { *(buf++) = '~'; } else if (aux >= 128) { int uc = aux & 0x3F; k = ROT(k); i++; aux = (str_to_hex(&s[i * 2], 2) ^ k) & 255; uc = (uc << 6) + (aux & 0x3F); switch (uc) { case 0xe2: *(buf++) = 'a'; break; // ^a case 0xc2: *(buf++) = 'A'; break; // ^A case 0xee: *(buf++) = 'i'; break; case 0xce: *(buf++) = 'I'; break; case 0x0103: *(buf++) = 'a'; break; case 0x0102: *(buf++) = 'A'; break; case 0x0163: *(buf++) = 't'; break; case 0x0162: *(buf++) = 'T'; break; case 0x015F: *(buf++) = 's'; break; case 0x015E: *(buf++) = 'S'; break; case 0x0218: *(buf++) = 's'; break; case 0x0219: *(buf++) = 'S'; break; case 0x021B: *(buf++) = 't'; break; case 0x021A: *(buf++) = 'T'; break; default: *(buf++) = '~'; break; } } else if (aux == 127) { *(buf++) = '~'; } else { *(buf++) = (char)aux; } k = ROT(k); } *buf = 0;}int main() { char *k = "592DC16F1B2D717B0B10B6491C0C8A4F"; // cheia aleatoare generata de server char *q = // mesaj hashuit "0FE9F5B9FD2A1393A4BB79736BCAF3C516D2527B4EC8F78633A7341455487C81" "23F2FFE6FD1BB541A2F2777F6ADFF3D40DD55E3A596917CF63A2244E560760D7"; char *op1 = "7CA6E0EAB31CA4"; // prima optiune char *op2 = "78A6E0EAB31CA454"; // a doua optiune char *op3= "7EA6E0EAB31CA454"; // a treia optiune char *op4 = "7EB6ADE7B849A354B3EE637E63"; // a patra optiune unsigned long key; char buf[1024]; key = dcd_key(k); dcd_text(buf, q, key); printf("Intrebare %s\n", buf); // Box: Cat timp dureaza pauza dintre reprizele unui meci de box? dcd_text(buf, op1, key); printf("Prima optiune %s\n", buf); // 1 minut dcd_text(buf, op2, key); printf("A doua optiune %s\n", buf); // 5 minute dcd_text(buf, op3, key); printf("A treia optiune %s\n", buf); // 3 minute dcd_text(buf, op4, key); printf("A patra optiune %s\n", buf); // 30 de secunde return 0;}O versiune in format HTML a acestui tutorial se gaseste la virginmarythefifth.we.bs
drealecs Posted January 27, 2008 Report Posted January 27, 2008 felicitari in primul rand pentru munca.Un bot care sa joace neasistat este mai greu de realizat.Cred ca putina munca nu strica. Cateva randomuri puse bine pe la unele raspunsuri si aia e.la teritorii, capitala si apoi alea cu punctaj mai mare,nici de raspunsuri ciudata la intrebarile tip n-ai de ce sa-ti pese ca poti face o medie intre cele ale celor 2.tot pentru intrebarile tip, trebuie sa ai in vedere variatia cu 1%+1 fata de raspunsul bun, la fel, cu random.Nu de alta dar poate n-ai chef sa joci si vrei sa castigi. Si daca-l faci, tine-l pentru tine Am mai facut scripturi d'astea pentru trivia pe mirc super distractie ca era un server frumos cu tot felul de calcule gen caractere pe secunda si in versiunea initiala am facut ceva de genul 50 chrs/sec si ban
YonutzW Posted January 27, 2008 Report Posted January 27, 2008 am incercat cu cygwin sa compilez acest cod si imi da niste erori : Axu&Yon@axuyon /bin$ gcc c.c -o conqz.exec.c: In function `str_to_hex':c.c:7: error: `lt' undeclared (first use in this function)c.c:7: error: (Each undeclared identifier is reported only oncec.c:7: error: for each function it appears in.)c.c:7: error: parse error before ';' tokenc.c: In function `dcd_key':c.c:23: warning: this decimal constant is unsigned only in ISO C90c.c: In function `dcd_text':c.c:43: error: parse error before '/' tokenc.c:70: error: parse error before '/' tokenc.c:102:3: warning: no newline at end of fileAxu&Yon@axuyon /bin$imi explica cineva care e problema ?mersi.
moubik Posted January 27, 2008 Report Posted January 27, 2008 am incercat cu cygwin sa compilez acest cod si imi da niste erori : Axu&Yon@axuyon /bin$ gcc c.c -o conqz.exec.c: In function `str_to_hex':c.c:7: error: `lt' undeclared (first use in this function)c.c:7: error: (Each undeclared identifier is reported only oncec.c:7: error: for each function it appears in.)c.c:7: error: parse error before ';' tokenc.c: In function `dcd_key':c.c:23: warning: this decimal constant is unsigned only in ISO C90c.c: In function `dcd_text':c.c:43: error: parse error before '/' tokenc.c:70: error: parse error before '/' tokenc.c:102:3: warning: no newline at end of fileAxu&Yon@axuyon /bin$imi explica cineva care e problema ?mersi.1. nu stii programare.2. treci si invata programare3. incearca sa gandesti singur inainte de a pune intrebari4. problemele de compilare erau cauzate de la filtrarile de caractere impotriva XSS si de la librariile lipsa (nu au fost incluse)5. uite aici: http://pastebin.ca/874648http://www.wikiupload.com/download_page.php?id=31845#include <stdio.h>#include <math.h>#include <string.h>#define ROT(k) ((((k) >> 7) & 33554431) | (((k) & 127) << 25))int str_to_hex(char *s, int len){ int i, ret = 0; for (i = 0; i < len; i++) { ret = ret * 16 + ((s[i] >= '0' && s[i] <= '9') ? (s[i] - '0') : (s[i] - 'A' + 10)); } return ret;}int dcd_key(char *s){ int aux; if (*s == 0) return 0; aux = str_to_hex(s, 2); aux = ((aux & 28) >> 2) * 2 + 2; return str_to_hex(&s[aux], 8) ^ 2875741179;}void dcd_text(char *buf, char *s, int k){ int i, len = strlen(s); unsigned long aux; if (k == 0) { strcpy(buf, s); return; } for (i = 0; i < len / 2; i++) { aux = (str_to_hex(&s[i * 2], 2) ^ k) & 255; if (aux <= 31) { *(buf++) = '~'; } else if (aux >= 128) { int uc = aux & 0x3F; k = ROT(k); i++; aux = (str_to_hex(&s[i * 2], 2) ^ k) & 255; uc = (uc << 6) + (aux & 0x3F); switch (uc) { case 0xe2: *(buf++) = 'a'; break; // ^a case 0xc2: *(buf++) = 'A'; break; // ^A case 0xee: *(buf++) = 'i'; break; case 0xce: *(buf++) = 'I'; break; case 0x0103: *(buf++) = 'a'; break; case 0x0102: *(buf++) = 'A'; break; case 0x0163: *(buf++) = 't'; break; case 0x0162: *(buf++) = 'T'; break; case 0x015F: *(buf++) = 's'; break; case 0x015E: *(buf++) = 'S'; break; case 0x0218: *(buf++) = 's'; break; case 0x0219: *(buf++) = 'S'; break; case 0x021B: *(buf++) = 't'; break; case 0x021A: *(buf++) = 'T'; break; default: *(buf++) = '~'; break; } } else if (aux == 127) { *(buf++) = '~'; } else { *(buf++) = (char)aux; } k = ROT(k); } *buf = 0;}int main() { char *k = "592DC16F1B2D717B0B10B6491C0C8A4F"; // cheia aleatoare generata de server char *q = // mesaj hashuit "0FE9F5B9FD2A1393A4BB79736BCAF3C516D2527B4EC8F78633A7341455487C81" "23F2FFE6FD1BB541A2F2777F6ADFF3D40DD55E3A596917CF63A2244E560760D7"; char *op1 = "7CA6E0EAB31CA4"; // prima optiune char *op2 = "78A6E0EAB31CA454"; // a doua optiune char *op3= "7EA6E0EAB31CA454"; // a treia optiune char *op4 = "7EB6ADE7B849A354B3EE637E63"; // a patra optiune unsigned long key; char buf[1024]; key = dcd_key(k); dcd_text(buf, q, key); printf("Intrebare %s\n", buf); // Box: Cat timp dureaza pauza dintre reprizele unui meci de box? dcd_text(buf, op1, key); printf("Prima optiune %s\n", buf); // 1 minut dcd_text(buf, op2, key); printf("A doua optiune %s\n", buf); // 5 minute dcd_text(buf, op3, key); printf("A treia optiune %s\n", buf); // 3 minute dcd_text(buf, op4, key); printf("A patra optiune %s\n", buf); // 30 de secunde return 0;}
VirginMary Posted January 27, 2008 Author Report Posted January 27, 2008 Ma bucur ca va place tutorialul. Cred ca pornind de aici este destul de usor pentru cine stie programare sa faca o aplicatie asemanatoare cu cea din fimuletul de pe net. Va recomand sa cititi inainte tutorialul despre captura pachetelor cu libpcap pe care il gasiti la www.cet.nau.edu/~mc8/Socket/Tutorials/section1.html si sa va jucati putin cu decodarea payload-ului pachetelor tcp. Tot ce trebuie sa faceti pentru a ajunge la payload este sa adaugati sizeof(tcphdr)+sizeof(iphdr)+sizeof(ethhdr) la adresa bufferului care contine frameul ethernet. Dupa aceea parsati XML-ul si filtrati toate mesajele inafara de cele de tip QUESTION, TIPQUESTION (intrebari) si ANSWERRESULT, TIPRESULT (raspunsuri)Pentru mesajele QUESTION si TIPQUESTION extrageti valorile asociate cheilor QUESTION, OP1, OP2, OP3, OP4 si decodati-le cu algoritmul din postul initial.Lansez deci un challenge pentru programatori: o aplicatie care sa actualizeze in timpul jocului un fisier cu intrebarile si variantele de raspuns corecte. Peste 2-3 saptamani o sa trimit si eu varianta mea, acum sunt ocupat cu licenta .Good luck!
SpeedX Posted January 27, 2008 Report Posted January 27, 2008 va rog si eu dak puteti sa postati un link de unde se poate downloada programul pentru ca mai sunt oamnei ca mine care nu se pricep foarte bine la programare.
katmai Posted January 27, 2008 Report Posted January 27, 2008 va rog si eu dak puteti sa postati un link de unde se poate downloada programul pentru ca mai sunt oamnei ca mine care nu se pricep foarte bine la programare. Da corect mai sunt,dar sunt si din aia care invata.!!!!!!!!!!!!!!!!!!!!!!!!!!PROGRAMUL E DOAR PENTRU EI PENTRU STAFF!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
drealecs Posted January 27, 2008 Report Posted January 27, 2008 va rog si eu dak puteti sa postati un link de unde se poate downloada programul pentru ca mai sunt oamnei ca mine care nu se pricep foarte bine la programare. ideea pe care trebuie s-o retii este ca aici nu se fac programe pentru oameni. doar se stimuleaza oamenii sa faca programeQ: nu te pricepi?A: macar incearca, comunica cu altii ca tine, si poate reusesti.Q: ai incercat si n-ai reusit si nici nu crezi c-o s-o faci vreodata?A: n-o sa gasesti nimic interesant pe forumul asta.
wh0re6asm Posted January 27, 2008 Report Posted January 27, 2008 Ia de aici... dar nu vei rezolva nimic daca iei un programel exemplificator si gata. Cauta un tutorial de "C for Dummies", ia un compiler pt Windows (sau si mai bine invata sa compilezi pe Linux )1. Link pt compiler de windoze:http://www.q-software-solutions.de/downloaders/show_download_locations2. Programelul lui VirginMary:http://www.filebox.ro/download.php?key=3687f23696c3c217fa4c81a76f111f75va rog si eu dak puteti sa postati un link de unde se poate downloada programul pentru ca mai sunt oamnei ca mine care nu se pricep foarte bine la programare.
VoRTeX Posted January 29, 2008 Report Posted January 29, 2008 Frumusel Mary pai chiar e pe profit daca esti bun iei laptopu astepti pana in ultima zi.... si vezi cati galbeni pune cel mal bun si tu pui cu 1 galben mai mult sa vezi creq ce face ala
x_d_a_n Posted January 29, 2008 Report Posted January 29, 2008 Salutare, De unde stii cum se face hashingul la mesaj ? Super postul
Gapp Posted January 29, 2008 Report Posted January 29, 2008 Programul merge perfect cu Visual C++ 6.0. Incerca si vei reusi!
jonnyarad Posted January 29, 2008 Report Posted January 29, 2008 cum bag chestile alea si unde ?/ajutor cat mai repede posibil
angelwings Posted January 29, 2008 Report Posted January 29, 2008 Programul merge perfect daca stii sa-l compilezi, nu aici e problema. dar nu am reusit sa obtin un rezultat favorabil utilizand informatii actualizate. Am facut partea cu interpretarea pachetelor, dar nu-mi dau seama ce gresesc, am pus cheia generata aleator si intrebarea aferenta, dar rezultatul e dezastruos.
wh0re6asm Posted January 29, 2008 Report Posted January 29, 2008 programul nu mergeInvata sa folosesti start - run - cmd
angelwings Posted January 29, 2008 Report Posted January 29, 2008 programul nu mergeInvata sa folosesti start - run - cmdPt ce cmd?
wh0re6asm Posted January 30, 2008 Report Posted January 30, 2008 programul nu mergeInvata sa folosesti start - run - cmdPt ce cmd?Mi-am pierdut rabdarea..ma duc sa ma impusc :PP
angelwings Posted January 30, 2008 Report Posted January 30, 2008 Calm..... In alt ordine de idei, intrebam ce nevoie e de cmd? Programul se compileaza si ruleaza ok fara nici un cmd...daca era vorba sa nu se inchida fereastra cand rulezi executabilul, atunci mai bagi un getchar() si gata. Oricum am impresia ca s-a schimbat algoritmul, asa ca degeaba utilizezi programul, tot ce poti sa faci in prezent e sa salvezi intr-o baza de data mesajele hashuite, care le si poti decripta daca faci algoritmul
drealecs Posted January 30, 2008 Report Posted January 30, 2008 Salutare, De unde stii cum se face hashingul la mesaj ? Super postul e intr-un swf pe site.il decompilezi si e programare in actionscript. system.swf sau ceva de genul. cauta mai atent. vezi gasiPutin offtopic!Daca ar fi sa programez ceva... si n-as vrea sa trec la linux, ce sa folosesc pe windows?Visual Studio?Eclipse?Dev-C++?Alte recomandari?Eu ma joc ca noobu cu php-ul ca e usor de scris dar hai sa trecem la chestii mai serioase.LEde visual studio 2008 ce stiti? ceva nou? ca iau acum Microsoft.Visual.Studio.2008.Professional.Edition-ZWTiSO
Gapp Posted January 30, 2008 Report Posted January 30, 2008 Programul merge perfect daca stii sa-l compilezi, nu aici e problema. dar nu am reusit sa obtin un rezultat favorabil utilizand informatii actualizate. Am facut partea cu interpretarea pachetelor, dar nu-mi dau seama ce gresesc, am pus cheia generata aleator si intrebarea aferenta, dar rezultatul e dezastruos.Ce program ai folosit pentru interpretarea pachetelor ? Folosesti WinPCap(libpcap) ? Da-mi niste detalii despre modul in care ai reusit sa interpretezi pachetele te rog, pentru ca eu am incercat in Visual C++ 6.0 avand Winpcap instalat, insa nu am toate Fisierele de Includere si nu le gasesc nici cum.