sulea Posted April 3, 2012 Report Posted April 3, 2012 2shared.com/file/n2eiAcyM/gsp.htmlnu postati doar parola, ci si un mic tutorial prin care ati rezolvat Quote
giv Posted April 4, 2012 Report Posted April 4, 2012 Buna asta....0040110E |. F3:A6 REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI] Quote
giv Posted April 5, 2012 Report Posted April 5, 2012 Deci userul trebuie sa fie din 12 caractere si restul pare a fi simplu. Mi-a iesit un serial de genul: VfWU[WhjUeSS Quote
sulea Posted April 5, 2012 Author Report Posted April 5, 2012 Deci userul trebuie sa fie din 12 caractere si restul pare a fi simplu. Mi-a iesit un serial de genul: VfWU[WhjUeSSnu exista user, ci doar un serial (parola)VfWU[WhjUeSS -> nu e asta parola. la introducerea parolei bune va fi afisat un mesaj cu textul "corect"algoritmul ESTE reversibil Quote
giv Posted April 6, 2012 Report Posted April 6, 2012 (edited) Da ai dreptate.Am gresit postul.Era la celalalt keygen.La asta mai bine pun:00401110 /75 15 JNZ SHORT gsp.00401127 si nu mai mai doare capul Edited April 6, 2012 by giv Quote
sulea Posted April 6, 2012 Author Report Posted April 6, 2012 daca pui 'jnz', nu va merge cu parola corecta. cum algoritmul este usor, prefer serialul in locul unui patch. Quote
giv Posted April 7, 2012 Report Posted April 7, 2012 daca pui 'jnz', nu va merge cu parola corecta. cum algoritmul este usor, prefer serialul in locul unui patch.Ma rog...Punem jmp si gata. Quote
Usr6 Posted April 10, 2012 Report Posted April 10, 2012 (edited) un loader: loader.exe download - 2sharedps. trebuie sa fie in acelasi director cu gsp.exe Edited April 10, 2012 by Usr6 Quote
sulea Posted April 10, 2012 Author Report Posted April 10, 2012 un loader: loader.exe download - 2sharedps. trebuie sa fi in acelasi director cu gsp.exefrumoasa ideea, chiar daca se cheama tot patchhaideti si cu parola corecta, sunt convins ca se poate! Quote
cifratorul Posted April 12, 2012 Report Posted April 12, 2012 //*************************************//Greetings to RST! Ce mai faceti mai baieti?// Parola: "Undertaker: 20-0"//*************************************unsigned char ror (unsigned char x){ return ((x & 0x01) ? ((x >> 1) | 0x80) : (x >> 1));}unsigned char rorn (unsigned char x, int n){ for (int i=0;i<n;i++) x=ror(x); return x;}void main (){ int i,j; unsigned char VI[] = {0x9B,0x6A,0x93,0x70,0xEC,0x8C,0xB1,0x54,0xDC,0xF3,0x5,0xF9,0xB0,0xC2,0x3,0x9B}; for (i=0;i<8;i++) VI ^= (VI[15-i] +1); for (i=15;i>0;i--) { VI = rorn(VI,i); VI ^= VI[0]; } for (i=0;i<16;i++) for (j=0;j<i;j++) { VI[j] ^= VI; VI[j] -= j; }} Quote
sulea Posted April 12, 2012 Author Report Posted April 12, 2012 felicitari cifratorule!continuam challengeul cu 3 linii de cod adaugate in programul initial (si bineinteles parola schimbata)*modulele de criptare raman neschimbate, se schimba doar validareaDownload gsp-2.rar from Sendspace.com - send big files the easy way Quote
Flubber Posted April 12, 2012 Report Posted April 12, 2012 Skiofoswekjrwao#vi%w(idoqkd! Ok$! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Te urasc cifratorul! Quote
cifratorul Posted April 12, 2012 Report Posted April 12, 2012 Bine mai Flubber pai atunci rezolva continuarea testului ca sa te urasc si eu pe tine! Quote
Flubber Posted April 12, 2012 Report Posted April 12, 2012 (edited) Bine mai Flubber pai atunci rezolva continuarea testului ca sa te urasc si eu pe tine! In curand sper sa trec la a doua. Insa intre timp m-am blocat la ultima rutina crypto (prima din original) din gsp #1. Chiar si cu indrumarea lui sulea prin rutinele de criptare asta ultima m-a dat gata. Intre timp am scris un rezumat cand am inceput analiza pe acest challenge (de aceea poate fi incorect pe alocuri).Rezumatul poate fi citit aici:http://codepad.org/GnDdcRRxSper sa ii ajute si pe cei ce au nevoie de un mic start pentru a intelege ce se intampla. Reverse-ul rutinelor va trebui sa le faceti singuri sau sa cereti hint-uri de la sulea.In caz ca am deranjat intr-un fel sau altul prin postarea acestui rezumat, rog autorul sa anunte si voi sterge indata. Edited April 12, 2012 by Flubber Quote
giv Posted April 13, 2012 Report Posted April 13, 2012 Bravo |roe! Est unul dintre teoreticienii foarte bine pregatiti ai reversingului in ASM din tara. Majoritatea sunt doar useri ai metodelor publice.M-am uitat peste materialul tau si este foarte bine documentat.Felicitari! Quote
Flubber Posted April 13, 2012 Report Posted April 13, 2012 Bravo |roe! Est unul dintre teoreticienii foarte bine pregatiti ai reversingului in ASM din tara. Majoritatea sunt doar useri ai metodelor publice.M-am uitat peste materialul tau si este foarte bine documentat.Felicitari!Multumesc pentru laude, insa cred ca exagerezi. Din pacate la teorie oricat de bine as sta (am gresit in rezumat in diferite parti fiindca nu l-am inteles complet cand l-am scris, abia dupa am reusit sa pricep rutinele mai bine) uite ca am intampinat probleme sa il rezolv, probleme ce tin de programare si sunt destul de simple. Insa din fericire mai sunt si oameni destepti precum cifratorul sa ne indrume cu rezolvarile sale. Quote
cifratorul Posted April 13, 2012 Report Posted April 13, 2012 @sulea: nu prea ma prind la partea a2a . am inteles ca in final trebuie sa fie doar primele 6 caractere egale cu ce trebuie dar nu prea dau de o parola cu caractere printabile . Quote
sulea Posted April 14, 2012 Author Report Posted April 14, 2012 buba o ai la functiile de rotate Quote
cifratorul Posted April 17, 2012 Report Posted April 17, 2012 functiile alea au mers bine la prima parola. problema e ca acum algoritmul tau nu mai e reversibil deoarece compari la sfarsit doar primele 6 caractere si in rest poate sa fie orice si de orice lungime . e cam de brute-force. Quote
sulea Posted April 18, 2012 Author Report Posted April 18, 2012 te sfatuiesc sa folosesti urmatoarea functie pt. ror:// Right-rotate a byte n places. unsigned char rrotate(unsigned char val, int n) { unsigned int t; t = val; // First, move the value 8 bits higher. t = t << 8; for(int i=0; i < n; i++) { t = t >> 1; /* If a bit shifts out, it will be in bit 7 of the integer t. If this is the case, put that bit on the left side. */ if(t & 128) t = t | 32768; // put a 1 on left end } /* Finally, move the result back to the lower 8 bits of t. */ t = t >> 8; return t; } problema la codul tau cred ca poate fi acel bit care 'shifts out' (nu le am cu c-ul)*ti-a mers in primul caz deoarece nu a fost niciun bit care sa faca pe nebunu(cred)cu algo tau si cu functia ror inlocuita vei gasi rezultatul. crackmeul este reversibil, are reverse facut in c, pascal si asmva astept cu rezultatul, pt a mai posta un ultim challenge pe acest crackme Quote
cifratorul Posted May 5, 2012 Report Posted May 5, 2012 return ((x & 0x01) ? ((x >> 1) | 0x80) : (x >> 1));daca e nevoie de transportat un bit functia mea face OR pe biti cu 0x80 deci bitul apare in stanga. de ce zici ca mai e reversibil atat timp cat in final nu mai compari decat 6 caractere? Quote
sulea Posted May 5, 2012 Author Report Posted May 5, 2012 return ((x & 0x01) ? ((x >> 1) | 0x80) : (x >> 1));daca e nevoie de transportat un bit functia mea face OR pe biti cu 0x80 deci bitul apare in stanga.pot sa jur ca atunci cand am incercat in codepad.org functiile ror ale tale nu mi-au aparut caractere printabile; iar cand am inlocuit functia, a mers. imi cer scuze daca am indus in eroareuite ce trebuia sa modifici la algo tau:C++ code - 36 lines - codepadde ce zici ca mai e reversibil atat timp cat in final nu mai compari decat 6 caractere?nu inteleg, ai mai sus algo de decriptare.acum ca aveti algo de decriptare si pt partea a doua a crackme-ului, vom trece la partea 3(este schimbata doar parola si foarte putin din validare, modulele de criptare raman neschimbate):Download gsp-3.rar from Sendspace.com - send big files the easy way Quote