Jump to content

Ganav

Active Members
  • Posts

    1374
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by Ganav

  1. Navigand prin sectiunea feed: https://rstforums.com/feed/ am observat ca nu toate link-urile sunt utilizabile. Acestea ar fi: Encryption --> KRYPTON http://palpit.ro/krypton/ Encryption --> Multi Encrypter http://home.paulschou.net/tools/xlate/ Simulators --> DB Manager http://www.tiber-mt2.ro/is/adminer.php Lookup --> Reverse IP Lookup sameip.org Design --> Creattica Creattica Others --> Instant Server Instant Server Ar fi convenabil daca ar fi, fie inlocuite cu altele catre resurse utilizabile, fie inlaturate din categoriile respective. Edit: Poate nu gasesc eu optiunea, dar se pare ca nu pot edita titlul thread-ului. Aceasta ar fi inca o sugestie pentru a imbunatatii forum-ul.
  2. In Ubuntu poti rula: sudo apt-get install python-crypto In CentOS(>= 6.6): sudo yum install python-crypto Verifica intai daca ai urmatoarele dependente rezolvate: Ubuntu – Details of package python-crypto in precise
  3. Sunt de acord. Ar trebui oarecum evaluata si calitatea posturilor; un user care are majoritatea posturilor in sectiunile de cereri, off-topic sau cosul de gunoi nu trebuie sa aiba aceleasi drepturi cu unul care are un numar asemanator de posturi insa in sectiunile de RST Power, Challenge sau Tutoriale(in sensul ca acesta a scris cateva care au fost primite pozitiv de catre comunitate).
  4. Ganav

    Timisora

    La UVT nu se fac decat trei ani pe profilul de informatica. Problema este ca, mai tarziu, nu vei putea aplica in programe internationale. Am avut colegi care au fost respinsi din cauza duratei scurte de studiu. Pot da la UPT, Automatica si calulatoare, sectia Comunicatii si tehnologia informatiei. Daca absolvi acolo, cu o medie decenta, si cu un oarecare numar de proiecte in palmarez, poti sa ai un viitor mai bun in afara. La facultate NU se face foarte multa informatica. Vei avea probabil cateva materii legate de web development de-a lungul programului insa va trebui sa te ocupi de altceva in afara de web development in cea mai mare parte a timpului.
  5. Eu unul am terminat la UPT. Desi programa nu era axata in jurul securitatii IT, ci mai mult in jurul ingineriei electrice, pot sa iti spun ca este relativ mult de lucru. Situatia este similara si la UPB; practic la orice institutie politehnica de stat din Romania. Nivelul de cunostiinte acumulate nu este unul deosebit, materialul care se preda este de regula invechit, fiind predat de profesori care nu l-au reactualizat de ani de zile. Proiectele sunt acceptabile daca ai colegi de echipa pasionati si cat de cat competenti. Insa, m-am confruntat si cu situatii in care trebuia sa realizez de unul singur munca a patru oameni. Prezentele sunt obligatorii sau nu in functie de profesori. Am avut cateva cazuri in care profesorul nu te primea in examen daca nu ai fost prezent la cel putin 60% dintre cursuri. Acum sunt intr-un program de master orientat pe securitatea IT. Profesorii sunt lipsiti de orice aptitudini practice, totul fiind explicat la nivel teoretic. Masterul acesta il parcurg pentru a obtine o certificare prin care pot obtine un loc de munca in acest domeniu pe cai legale(nimeni nu angajeaza un absolvent din Romania, in domeniul securitatii, fara o certificare/diploma recunoscuta pe plan international). In locul tau as alege optiunea cu gradul minim de dificultate dintre cele enuntate. Se pare ca aceasta este ASE.
  6. Din ce am citit/aflat pana acum hackerii romani prinsi nu au fost judecati in baza legilor de acasa, ci in acelora a natiunii din care faceau parte partile afectate. Dupa cum sunt structurate acele articole este clar ca este o versiune "stub", departe de a fi completa sau a fi folosita cu eficacitate in instanta.
  7. Autoritatiile nu stiu ca tu stii ca ele sunt pe urmele tale. Nu trebuie sa fii acasa in data respectiva la ora respectiva. Trebuie doar sa gasesti un motiv bun sa-ti justifici "absenta". Nu uita, vecinii te cunosc ca fiind un om cumsecade, cinstit si muncitor.
  8. Partea cu vecinii este utila atunci cand vin mascatii si sparg usa. Acestia te vor putea ajuta sustinand ca tu esti plecat in scopul rezolvarii unor chestiuni legitime. In instanta pot interveni ca si martori pentru a te sprijini. Opinia martorilor conteaza destul de mult. Cu atat mai bine cu cat cei din jur de cunosc ca fiind om cinstit si la locul lui.
  9. Ai putea trage de timp. Stii ca in 24 de ore autoritatile vor veni la tine acasa. Intre timp ai putea merge la sotia/prietenul cel mai apropiat al varului tau si sa recuperezi primul fragment de la acestia(este foarte probabil ca ei sa aibe numeroase fotografii din vacante). In timpul calatoriei ai putea verfica orice cursa de avion care are ca destinatie Rusia. Dupa ce ai obtinut fragmentul mergi la cel mai apropiat aeroport. O data ajuns in Rusia ai mai castigat timp; exista o oarecare animozitate intre autoritatile de acolo si organele internationale. Acum, folosind cunostiintele respective ai putea incepe sa cauti domiciliul sotiei amicului tau. Ai putea petrece o noapte in casa fiecarei cunostiinte(rusii sunt mult mai deschisi ca oameni decat "civilizatii" din vest). Mai mult ca sigur cunosti numele prietenului tau cel mai bun si in consecinta si numele sotiei lui(presupunand cu nu s-a recasatorit). Acum este vorba de cateva ore pana ce ai recuperat toate fragmentele cheii. O data recuperate poti sterge/formata toate partitiile de pe laptop. Dupa aceea poti sa te intorci acasa. Inainte de a pleca de acasa poti preciza vecinilor ca mergi in vizita la cateva cunostiinte(poti folosi aici orice pretext: o cununie, un botez, un accident, un deces, etc.)
  10. Cheia AES este de 256 biti nu bytes. Nu ai precizat cat de lungi sunt respectivele bucati. In cazul fericit, bucata care o detii tu are o lungime mai mare sau egala cu 192 de biti. In acest poti face bruteforce pentru cei 64 de biti ramasi(realizabil pe orice statie decenta din zilele noastre). In cazul in care bucatile sunt egale atunci as incerca intai sa recupereze bucata pe care o detine varul. Este foarte probabil ca acesta sa aiba diverse poze din vacante, preferabil de la mare/strand, recuperarea fiind astfel foarte usoara. In functie de cunostiinte as putea ruga pe cineva sa faca bruteforce pentru fragmentul de aproximativ 85 de biti ramasi. 128 de biti este considerat sigur in prezent. Bruteforcing pe ~85 de biti se poate face in cateva ore pe un cluster mediu. Daca varul are un fragment mai mare sau egal cu 192 de biti atunci sarcina este simpla; presupunand ca lungimea fragmentului pe care il detin este, de exemplu 32 de biti, atunci trebuie sa facem bruteforce pe un fragment de 32 de biti ceea ce este foarte simplu din punct de vedere al resurselor computationale. In cazul cel mai nefericit prietenul rus detine un fragment cu lungimea mai mare sau egala cu 192 de biti. Dupa multi ani gasirea domiciliului poate fi destul de dificila. Insa, presupunand ca avem cunostiinte am putea apela la ajutorul acestora pentru aflarea adresei la care locuieste sotia. Daca timpul in care se desfasoara lucrurile este scurt, totul se poate rezolva printr-o convorbire telefonica. Acum, personal, daca eu as stii acest lucru as distruge laptop-ul respectiv in intregime folosindu-ma de toate mijloacele de care dispun.
  11. Ganav

    PM-ul zilei

    There are currently 27 users browsing this thread. (23 members and 4 guests) Trist.
  12. Eu cred ca este mai bine ca limita sa fie exprimata in nr. de caractere. Poti scrie programe complexe intr-o singura linie in C/C++(lungimea liniilor nu este specificata).
  13. Acest tutorial prezinta un mod de a obtine adresa unei statii ce foloseste servicii dhcp. Pe statia respectiva descarcam urmatorul script: IPmailer.sh #!/bin/bash wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" http://checkip.dyndns.org/ -O ip_file # Resetam fisierul de e-mail deoarece adresa IP se schimba periodic, deci si continutul acestuia echo "" > mail_file # Setam adresa e-mail sursa echo "From: \"User Name\" <username@gmail.com>" > mail_file # Setam adresa e-mail destinatie echo "To: \"Destinatie\" <destinatie@example.com>" >> mail_file echo "Subject: Adresa statiei de acasa" >> mail_file # Filtram adresa IP curenta a statiei aflata la distanta(remote) echo `cat ip_file | grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"` >> mail_file # Trimitem un e-mail cu adresa respectiva curl --url "smtps://smtp.gmail.com:465" --ssl-reqd \ --mail-from "username@gmail.com" --mail-rcpt "destinatie@example.com" \ --upload-file mail_file --user "username@gmail.com:password" --insecure Acum trebuie sa acordam permisiuni de scriere pentru fisier: chmod +x IPmailer.sh Adresele "User Name" si "destinatie" sunt adresele unor conturi gmail cunoscute. Acum dorim sa rulam acest script periodic, din ora in ora: sudo crontab -e 0 * * * * cd folderul_care_contine_IPmail.sh && ./IPmail.sh De pe statia noastra putem sa ne logam pe destinatie@gmail.com si sa verificam din ora in ora IP-ul masinii aflate la distanta. Intrucat parola apare in clar in acest script este recomandata folosirea unui cont cu importanta redusa astfel incat compromiterea lui sa nu aduca mari pierderi.
  14. In acest tutorial se prezinta cateva mijloace prin care se poate limita impactul atacurilor de tip SYN flood. Un numar de utilitare este necesar apriori: vnstat Acesta este un utilitar folosit in scopul monitorizarii latimi de banda(bandwith) utilizate. htop Este o varianta detaliata a utilitarului top si permite monitorizarea tuturor resurselor sistemului(CPU,RAM, bandwith usage) la un nivel de granularitate mult mai ridicat tcpdump este inclus in lista cu toate ca este incorporat in majoritatea distributiilor Linux. tcpdum permite monitorizarea traficului de retea, pe orice interfata intr-un mod usor de organizat de catre procesoarele de text(easy to grep) rmmod Acesta permite detasarea(stergerea) unui modul din kernel-ul Linux. In trecut Linux folosea kernel-uri monolitice; adaugarea unei noi functionalitati necesita compilarea intregului kernel. In prezent kernel-ul are o structura modulara, fiecare modul poate fi compilat in parte si adaugat ulterior in kernel-ul existent. Se castiga astfel timp si eficienta in design software(dezvoltatorii nu mai trebuie sa fie familiarizati cu intreaga functionalitate a kernel-ului) modprobe Acesta permite adaugarea si inlaturarea de module kernel ethtool Acesta returneaza informatii privind interfetele de retea Pentru instalarea utilitarelor rulam: sudo sh -C "apt-get install vnstat;apt-get install htop;apt-get install tcpdump;apt-get install rmmod;apt-get install modprobe;apt-get install ethtool" Acum putem implementa urmatoarele strategii de prevenire: Ce este un atac SYN flood? Moduri de detectare Activarea syncookie-urilor Folosirea de cozi implementate in hardware(hardware queues) Folosirea RPS (Received Packet Steering) iptables 1. Ce este un atac SYN flood? Moduri de dectare Atacul SYN flood este o metoda denial-of-service(DoS) care afecteaza statiile care ruleaza procese(aplicatii/servicii/daemoni) TCP de tip server. Acesta are la baza starea de asteptare, implementata in protocolul TCP, in urma primirii unui pachet cu fanionul SYN setat, transmis catre un port aflat in stare de ascultare(LISTEN). Un atacator poate exploata acest lucru prin initierea consecutiva a unui numar ridicat de conexiuni incomplete, aflate in asteptare, astfel incat server-ul(tinta) nu mai poate initia alte legaturi valide. Mai multe detalii pot fi gasite in RFC4987. Atacul este relativ dificil de prevenit, unul din motivele pentru care are un ridicat grad de popularitate/raspandire. Motivele sunt, in mare, urmatoarele: Se foloseste de pachete cu adrese IP sursa arbitrare, care nu pot fi blocate(putem bloca clienti legitimi) fiind specifice fiecarui pachet trimis Consuma un numar redus din resursele atacatorului si un numar mare din cele ale victimei Mecanismul de prevenire este relativ complex si necesita timp pentru intelegere si implementare In timpul unui atac SYN, atacatorul deschide numeroase conexiuni catre server insa acestea nu sunt incheiate conform implementarii TCP. Starea fiecarei astfel de conexiuni va ramane in SYN_RECV(server-ul asteapta clientul sa termine conexiunea; sa primeasca un pachet cu fanioanele SYN/ACK setate si ulterior sa trimita un pachet cu fanionul ACK setat). Putem numara conexiunile in asteptare ruland: sudo netstat -anutp | grep SYN_RECV | wc -l Daca numarul este mai mare ca si 40 sunt sanse destul de ridicate sa fim victima unui atac. Metoda de mai sus nu este totusi recomandata de a fi folosita in script-uri deoarece poate consuma resurse de procesare semnificative. Putem monitoriza consumul latimii de banda folosind vnstat in felul urmator: sudo vnstat -l -i eth0 htop poate fi, de asemenea, folosit pentru monitorizarea resurselor sistemului: htop Pentru a vedea itnreruperile in sistem apasam F2, navigam la "Display options" dupa care selectam "Display threads in a different color". Intreruperile vor fi afisate in roz. Cu utilitarul tcpdump putem monitoriza toate pachetele receptionate: sudo tcpdump -i eth0 -nn 'tcp port 80' and 'tcp[13] == 2' -c 250 Secventa de mai sus afiseaza primele 250 de pachete TCP care au portul destinatie 80 de pe interfata eth0. Un lucru important de retinut in privinta pachetelor este faptul ca acestea sunt receptionate la intervale de timp neregulate; daca am crea un grafic asociat traficului nu am observa numai valori maxime ci alternante neregulate intre valoarea maxima si o valoare mai mica ca si aceasta. 2. Activarea syncookie-urilor syncookie-urile sunt un mod de a alege initial numerele de secventa TCP de catre server-ele TCP. Folosirea lor permite ca un server sa nu refuze conexiuni atunci cand coada SYN(SYN queue) este utilizata in intregime. Server-ul percepe coada ca fiind extinsa. Acesta trimite inapoi clientului raspunsul SYN/ACK insa nu adauga o intrare in coada SYN. Daca server-ul receptioneaza un pachet ACK ulterior atunci acesta capabil sa reconstruiasca coada SYN pe baza informatiilor incluse in numarul de secventa TCP(TCP sequence number). Pentru a verifica daca syncookies este activat rulam: sysctl -n net.ipv4.tcp_syncookies sau cat /proc/sys/net/ipv4/tcp_syncookies Pentru a activa syncookies executam: sudo vim /etc/sysctl.conf sau sudo gedit /etc/sysctl.conf dupa care adaugam linia: net.ipv4.tcp_syncookies = 1 Salvam fisierul si rulam: sysctl -p pentru a aplica modificarea. 3. Folosirea de cozi implementate in hardware(hardware queues) Pentru a facilita prevenirea atacului SYN este recomandata imbunatatirea driver-ului NIC(Network Inerface Card). Cand un fragment de date ajunge prin cablu sau unde radio, in NIC, se executa o intrerupere sistem care comanda procesorului sa opreasca activitatea curenta si sa analizeze fragmentul(pachetul) receptionat. Insa, daca fiecare frame ar face acest lucru atunci orice transfer prin retea ar genera latente semnificative. Astfel, aceste intreruperi sunt structurate intr-o coada(queue, coada este o structura de tip LIFO, last-in-first-out. Cu alte cuvinte pachetele ajunse sunt stocate in spatele cozii iar cele care sunt de ja in coada sunt procesate incepand cu primul), care este livrata unitatii de procesare(CPU) deodata. Acest lucru are loc intre 200 si 1000 de ori pe secunda, in functie de cronometrul sistemului de operare. Cu cat acesta are o perioada mai redusa cu atat CPU-ul are mai mult de procesata(coada este transmisa mai rar si cu un nr. mai mare de elemente). Majoritatea calculatoarelor din prezent au mai multe unitati de procesare(Multicore CPUs). Deoarece, fiecare este un procesor in sine, trebuie sa distribuim numarul de intreruperi intr-un mod echilibrat intre acestea. Exista doua mijloace: Folosirea cozilor hardware(hardware queues). NIC-urile moderne au numeroase cozi de intrerupere, intre 4-16. Pe Linux, acestea sunt dezactivate in mod implicit. Trebuiesc activate pentru a uzita intrega capacitate a unitatilor de procesare(CPU cores) Cea de a doua metoda este prin RPS(Receive Packet Steering). Este un mecanism relativ nou care distribuie in mod automat intreruperile intre toate core-urile, neavand importanta prezenta cozilor hardware(acestea pot fi fie una singura fie un grup de cozi hardware). Aceasta metoda este recomandata doar daca numarul de cozi al NIC-ului este mai mic decat cel al core-urilor. Aceasta sectiune trateaza cozile hardware, metoda RPS fiind dezvoltata in sectiunea urmatoare. Primul pas consta in aflarea driver-ului de retea(NIC driver), a modelului NIC si a fabricantului: sudo ethtool -i eth0 Acum trebuie sa instalam ultima versiune pentru respectivul NIC. Trebuiesc instalate ultimele driver-e; se gasesc in mod normal pe site-ul producatorului. Acestea trebuiesc, de regula compilate in diverse module. Acestea necesita codul sursa ale unor module kernel, care trebuiesc instalate apriori. Etapa aceasta depinde de hardware-ul fiecarei statii. Acum cozile hardware trebuiesc configurate. Pentru aceasta trebuiesc consultate documentatia NIC-ului(acesta poate varia intr-o masura semnificativa de la o statie la alta). De exemplu, pentru un igb(Intel Driver) cu 8 cozi vom rula: sudo rmmod igb sudo modprobe igb QueuePairs=1,1,1,1 RSS=8,8,8,8 IntMode=3,3,3,3 InterruptThrottleRate=3000,3000,3000,3000 Acum trebuie sa distribuim intreruperile pe mai multe procesoare. Trebuie sa gasim care numere de intreruperi sunt folosite de NIC-ul nostru: sudo cat /proc/interrupts | grep eth0 In exemplul de mai sus am folosit interfata eth0. Aici se pot observa toate numerele intreruperilor folosite de NIC si modul in care sarcina este distribuita. Retineti aceste numere. Trebuie modificat afinitatea SMP pentru a distribui respectivele intreruperi in mod secvential pe unitati de procesare. De exemplu, intreruperea 1 este executata pe core 1, intreruperea 2 pe core 2, s.a.m.d. Putem realiza acest lucru ruland: sudo echo 1 > /proc/irq/xx/smp_affinity Dupa testarea configuratiei o plasam in /etc/rc.local pentru a rula la fiecare bootare. 4. Folosirea RPS (Received Packet Steering) Pentru a activa RPS rulam: sudo echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus Trebuiesc selectate interfetele in uz, in situatia in care eth0 nu este folosita, si toate cozile pe care interfetele le suporta. 5. iptables In cazul in care atacul nu se bazeaza pe IP-spoofing, adresa atacatorului fiind astfel cunoscuta putem apela la iptables pentru a bloca pachetele nedorite. Un exemplu de reguli iptables este ilustrat aici: sudo iptables -A INPUT -p tcp -m state --state NEW -m recent --update --seconds 60 --hitcount 30 -j DROP sudo iptables -A INPUT -p tcp -m state --state NEW -m recent --set -j ACCEPT Regulile de mai sus limiteaza numarul de cereri SYN de la o singura adresa IP la 30 pe minut. Nu este recomandat sa folositi aceasta regula intrucat este posibil sa blocati un grup de utilizatori situati in spatele unui NAT(Network to Address Translation, un router).
  15. Nu cred ca va da explicatii. In acest caz se poate aplica direct ce scrie in regulamentul forumului.
  16. Fiecare cont are asociat un grad de incredere in functie de contributiile respectivului user pe forum. Trebuie sa petreci un timp destul de indelungat pentru a ajuta comunitatea si in consecinta sa ii castigi increderea. Dupa ce a primit ban, un utilizator practic a pierdut timpul pe care l-a investit aici.
  17. Acest tutorial isi propune sa ilustreze un numar de mijloace care pot fi folositoare in rezolvarea challenge-urilor orientate pe securitatea web. In primul rand avem nevoie de un set de utilitare care ne vor face munca mai usoara: firefox: Download Firefox — Free Web Browser — Mozilla si urmatoarele plugin-uri: tamper data: https://addons.mozilla.org/en-US/firefox/addon/tamper-data/ hackbar: https://addons.mozilla.org/en-US/firefox/addon/hackbar/ cookie editor: https://addons.mozilla.org/en-US/firefox/addon/edit-cookies/ burpsuite: Burp Suite dirbuster: https://www.owasp.org/index.php/Category:OWASP_DirBuster_Project Modul de abordare poate fi realizat in felul urmator: Daca este un challenge XSS cautam in sursa paginii tag-uri html incomplete. Adesea acestea nu sunt valide datorita filtrarii specifice implementate de initiatorul challenge-ului(apar scrise cu rosu in sursa paginii, cel putin in firefox) Daca nu apar modificari in sursa paginii putem verifica cookie-urile. Script-ul poate seta cookie-uri ce pot contine hint-uri catre etapele urmatoare sau chiar si rezolvarea challenge-ului respectiv Uneori, mai rar, trebuie sa gasim un director ce contine hint-uri. Aici putem folosi dirbuster, de regula folosind un numar redus de cuvinte de cautare In multe situatii hint-urile sunt reprezentate prin siruri de caractere encodate sau numere scrise in diferite baze de numeratie(de obicei baza 15 sau 16) Pentru a decoda aceste siruri putem sa ne folosim de: CRYPO: Encrypt or Decrypt sensitive data using AES/DES/RCA encryptors. Base64 si hex decode le putem efectua direct cu hackbar Pentru a calcula valori in diferite baze de numeratie putem folosi: Number Base Calculator Unele challenge-uri sau etape din acestea trebuiesc rezolvate exploatand vulnerabilitati SQL. Un tutorial ce ilustreaza destul de clar atacuri SQLi select based se gaseste aici: https://rstforums.com/forum/58602-detailed-basic-full-sql-injection-tutorial.rst Cam acestea ar fi principalele cai de atac asupra challenge-urilor observate aici: https://rstforums.com/forum/competitie-challenges.rst
  18. Shell-ul are ca scop mentinerea accesului o data ce site-ul a fost spart. Nimeni nu poate sparge un site cu un shell. Acum ca am lamurit acest lucru, ai la dispozitie log-urile server-ului pe care a fost hostat site-ul?
  19. Cunosc bine regulile forumului. Nu voi posta niciodata material care incurajeaza, faciliteaza sau permite obtinerea de informatii bancare.
  20. Bot-ul nu mai functioneaza, nu mai poti fura nimic cu el, insa avand sursele la dispozitie iti poti da seama de modul in care gandeste cel care l-a scris.
  21. Nu este singura aplicatie de acest tip. Daca poti modifica sursele astfel incat sa obtii functionalitatea sa originala atunci detii cunostiintele necesare sa scrii un alt bot similar de la zero.
  22. I-a cam trecut vremea, este detectat de majoritatea AV-urilor. Acum este folosit mai mult in scopuri educationale si ca si o sursa de inspiratie pentru dezvoltarea unor strategii de prevenire.
  23. Acest tutorial va descrie un mod de compilare al cunosctutului bot Zeus. Sursele pot fi gasite aici: Zippyshare.com - ZeuS_2.0.8.9-Source.7z In continuare vom avea nevoie de visual studio 2010 ultimate care se gaseste aici: https://thepiratebay.se/torrent/5606600/Visual_Studio_2010_Ultimate_%5BLatest%5D_%5B2010%5D_-_%5BGuruFuel%5D Dupa dezarhivare, navigam in directorul /make/. Deschidem fisierul buildconfig.inc.php. Are o structura asemanatoare cu: <?php /////////////////////////////////////////////////////////////////////////////////////////////////// // Êîíôèãóðàöèÿ. /////////////////////////////////////////////////////////////////////////////////////////////////// $configDir = NULL; $config = array ( 'debug' => -1, //Äîáàâëåíèå îòëàäî÷íîé èíôîðìàöèè. 'manual' => -1, //ßçûê äîêóìåíòàöèè. 'nspr4' => -1, //Ïåðåõâàò nspr4.dll 'wininet' => -1, //Ïåðåõâàò wininet.dll 'software_ftp' => -1, //Ãðàááåð FTP-êëèåíòîâ. 'software_email' => -1, //Ñáîð email'îâ ñ ïðîãðàìì. 'socket_ftp' => -1, //Ñíèôåð ëîãèíîâ FTP. 'socket_pop3' => -1, //Ñíèôåð ëîãèíîâ POP3. 'vnc' => -1, //VNC. 'jabber_notifier' => -1, //Íîòèôèêàòîð äëÿ Jabber. 'client_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ client. 'server_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ server. 'bcserver_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ bcserver. 'builder_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ builder. 'buildtools_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ buildtools. ); loadGlobalConfig(); define('BO_NAME', 'ZeuS'); //Èìÿ define('BO_CLIENT_VERSION', trim($config['global']['versions']['client'])); //Òåêóùàÿ âåðñèÿ define('BO_BUILDTIME', gmdate('H:i:s d.m.Y', time()).' GMT'); //Âðåìÿ ñáîðêè //Äèðåêòîðèè êîìïèëÿòîðà. $dir['vcdlls'] = 'C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE'; $dir['vc'] = 'C:\Program Files\Microsoft Visual Studio 10.0\VC'; $dir['sdk'] = 'C:\Program Files\Microsoft SDKs\Windows\v7.0A'; $dir['vcbin']['win32'] = $dir['vc'].'\bin'; $dir['vcbin']['win64'] = $dir['vc'].'\bin\amd64'; $dir['sdkbin']['win32'] = $dir['sdk'].'\bin'; $dir['sdkbin']['win64'] = $dir['sdk'].'\bin\x64'; Acum instalam visual studio 2010. Daca o instalare precedenta exista trebuie sa editam liniile urmatoare: $dir['vcdlls'] = 'C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE'; $dir['vc'] = 'C:\Program Files\Microsoft Visual Studio 10.0\VC'; $dir['sdk'] = 'C:\Program Files\Microsoft SDKs\Windows\v7.0A'; astfel incat path-urile sa coincida cu cele alese la instalare. Path-urile de mai sus sunt create folosind setarile default la instalare. Putem compila aplicatia in doua moduri: Folosind fisierul .sln : il deschidem cu visual studio dupa care realizam un Build Solution (F7) Putem compila Zeus si din linia de comanda. Deschidem un cmd.exe, navigam in directorul in care am dezarhivat sursele si executam make_full.bat Inainte de compilare trebuie sa inlocuim doua executabile din directorul /bin/, din arhiva, si anume upx.exe si 7z.exe. Le descarcam de aici: upx UPX: the Ultimate Packer for eXecutables - Homepage 7z: Download Dupa inlocuirea acestora putem compila fie din visual studio(cu F7), fie din linia de comanda(dintr-un command prompt rulam make_full.bat)
  24. Am folosit base64 deoarece nu doresc ca aceasta pagina sa fie indexata de Google. Sunt si eu, asa cum probabil sunt multi de pe acest forum, un utilizator al site-ului d3d3LnN0YWNrb3ZlcmZsb3cuY29t. In urma cu cateva zile am citit un articol care sustinea ca un cont cu o reputatie de cinci cifre(>= 10K) poate fi un criteriu de angajare, cu valoare atat nationala cat si internationala. De aici se poate deduce ca un cont cu o astfel de reputatie are asociata o valoarea in capital. Intrebarea este cum se poate genera reputatia respectiva, intr-un timp cat mai scurt. Site-ul functioneaza pe baza de +voturi si -voturi, comunitatea fiind responsabila de calitatea/valoarea intrebarilor si a raspunsurilor, si in consecinta de reputatia utilizatorului. Principiul de functionare al site-ului este facut astfel incat utilizatorii sa nu poata vedea cine lasa +voturile sau -voturile. Se pare totusi ca super moderatorii pot vedea acest lucru. Pot vedea si IP-ul de pe care se logheaza utilizatorii si adresa lor de e-mail. Limita maxima a reputatiei pe care un utilizator o poate obtine in decursul unei zile este 275. Cunoscand aceste informatii am putea obtine puncte in felul urmator: Un utilizator creeaza un numar de conturi folosind adrese gmail diferite. Este de preferat ca logarea pe aceste conturi sa se faca prin proxy-uri pentru credibilitate(super moderatorii pot observa corelatiile in loguri intre IP-uri, conturi si voturi) Un element caracteristic al acestui site este strictetea cu care sunt abordate intrebarile/raspunsurile. Ne trebuiesc deci intrebari si raspunsuri "bune" Putem gasi astfel de intrebari si raspunsuri cautandu-le pe site(de exemplu aHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3VuYW5zd2VyZWQvdGFnZ2VkL2phdmE= afiseaza toate intrebarile care se refera la java. Ulterior putem sorta intrebarile in functie de reputatie) Putem pune intrebari populare care au fost puse deja insa trebuie sa schimbam modul de formulare(pentru a evita diverse conflicte ce pot aparea cu intrebarile existente deja) Inainte de a posta intrebarea cream si raspunsul pentru aceasta intr-un mod similar:extragem un raspuns(de preferat nu cel mai popular(cu cele mai multe voturi) ci pe cel secundar ca si numar de voturi) Intrebarile postate pot fi si intrebari vechi din 2009/2010 de care comunitatea nu mai este interesata Un punct crucial ce trebuie respectat este faptul ca fiecare intrebare trebuie sa contina cod(din orice limbaj) pentru a nu fi inchisa/stearsa Acum putem imparti conturile create in doua multimi: Q - multimea conturilor de pe care se pun intrebari, A - multimea conturilor de pe care se posteaza raspunsurile la acele intrebari(rolurile acestor conturi vor fi interschimbate periodic) Fiecare intrebare postata de catre un cont din Q va primi voturi de la o submultime de conturi din A. Este de preferat ca alegerea conturilor care raspund si voteaza intrebarile sa fie facuta in mod arbitrar pentru a diminua corelatiile ce se pot observa in log-uri Acum fiecare cont din Q va accepta si va vota pozitiv raspunsul primit de catre un cont din A. Contul din Q va trebui sa voteze pozitiv si alte raspunsuri ce apar(lumea este destul de activa acolo), de asemenea pentru a reduce corelatiile intre Q si A Pentru disimulare este bine ca atat de pe conturile din A, cat si cele din Q sa se realizeze voturi pozitive si negative asupra altor intrebari/raspunsuri formulate de catre membrii comunitatii Un alt lucru de care trebuie sa tinem cont este intervalul de timp dupa care postam intrebarile de pe conturile din A. Daca raspunsul ocupa o pagina A4 este putin probabil ca cel care a raspuns sa-l fi scris in treizeci de secunde sau un minut. Asteptam in jur de sase sau zece minute inainte de a posta raspunsul Putem sa formulam propriile perechi de intrebari si raspunsuri. Scriem o secventa de cod intentionat gresita, scriem alternativa corecta, cream intrebarea si raspunsul, in raspuns pe langa secventa corecta de cod mai putem adauga si un link catre o referinta ce ar putea fi de folos in viitor(acest lucru da foarte bine) In acest mod putem realiza in mai putin de o luna cantitatea de reputatie dorita. Site-ul functioneaza pe principiul "the rich get richer". Cu alte cuvinte, cu cat cantitatea creste cu atat creste si numarul de voturi din partea comunitatii. Dupa ce ne-am atins obiectivele putem vinde conturi din Q si A. Diferenta dintre Q si A este raportul dintre numarul de intrebari puse si raspunsuri: conturile Q au mai multe intrebari decat raspunsuri iar conturile din A au mai multe raspunsuri decat cele din Q. Un cont pentru a fi considerat valid trebuie sa contina atat raspunsuri cat si intrebari. Un cont este cu atat mai valoros cu cat are mai multe intrebari acceptate de comunitate(este util sa cunoastem acest lucru inainte de stabilirea pretului respectivului cont). Se poate face mult mai usor in echipa: un grup de membrii se ocupa de formularea intrebarilor iar altul de formularea raspunsurilor. Rolurile se pot interschimba dupa anumite intervale de timp. Sincronizarea intre echipe se poate face usor prin skype/messenger. Este recomandat totusi ca schimbul de mesaje sa nu ofere "hint-uri" relevante referitoare la ce se intampla. Eu nu am facut, personal, nimic din ce am scris mai sus pe respectivul site. Am avut aceasta idee dupa ce am citit in intregime regulile comunitatii.
×
×
  • Create New...