Jump to content

Ganav

Active Members
  • Posts

    1374
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by Ganav

  1. Am vazut zilele trecute o intrebare care se referea la cum se poate obtine numarul de core-uri CPU. Fragmentul de mai jos returneaza numarul de nuclee si specificatiile placii grafice(in cazul in care aceasta face parte din familia Nvidia Geforce): system_specs.h: #ifndef SYSTEM_SPECS_H #define SYSTEM_SPECS_H #include "includes.h" class SystemSpecs{ public: SystemSpecs(bool showInfo); ~SystemSpecs(void){}; int getNumberOfCPUCores(void); int getProcessorType(void); int getNumberOfGPUs(void); size_t getTotalConstantMemory(int deviceID); size_t getTotalGlobalMemory(int deviceID); size_t getSharedMemPerBlock(int deviceID); int getWarpSize(int deviceID); int getMaxNumberOfBlocks_x(int deviceID); int getMaxNumberOfBlocks_y(int deviceID); int getMaxNumberOfBlocks_z(int deviceID); int getMaxThreadsPerBlock(int deviceID); int getMaxThreads_x(int deviceID); int getMaxThreads_y(int deviceID); int getMaxThreads_z(int deviceID); void printGPUSpecs(void); private: #ifdef WIN32 /// query system info on windows SYSTEM_INFO system_info; #else /// query system info on linux #endif int device_count; int dev; int runtime_version, driver_version; cudaDeviceProp *device_prop; char msg[256]; char cTemp[10]; std::string sprofile_string; }; #endif sytem_specs.cpp: #include "system_specs.h" SystemSpecs::SystemSpecs(bool showInfo) { #ifdef WIN32 /// query sysinfo on windows GetSystemInfo(&system_info); #else /// query sysinfo on linux #endif if(showInfo) { device_count = 0; dev = 0; driver_version = 0; runtime_version = 0; sprofile_string = "deviceQuery, CUDA Driver = CUDART"; if (cudaGetDeviceCount(&device_count) != cudaSuccess) { cout << "cudaGetDeviceCount FAILED CUDA Driver and Runtime version may be mismatched.\n"<<endl; } if (device_count == 0){ cout<<"There is no device supporting CUDA"<<endl; } if(device_count == 0) { device_prop = new cudaDeviceProp[device_count + 1]; } else { device_prop = new cudaDeviceProp[device_count]; } for (dev = 0; dev < device_count; ++dev) { cudaGetDeviceProperties(&device_prop[dev], dev); if (dev == 0) { // This function call returns 9999 for both major & minor fields, if no CUDA capable devices are present if (device_prop[0].major == 9999 && device_prop[0].minor == 9999) cout<<"There is no device supporting CUDA."<<endl; else if (device_count == 1) cout<<"There is 1 device supporting CUDA."<<endl; else cout<<"There are "<<device_count<<"%d devices supporting CUDA"<<endl; } } } } int SystemSpecs::getNumberOfCPUCores(void) { #ifdef WIN32 /// windows return system_info.dwNumberOfProcessors; #else /// linux return sysconf(_SC_NPROCESSORS_ONLN); #endif } int SystemSpecs::getProcessorType(void) { #ifdef WIN32 /// windows return system_info.dwProcessorType; #else /// linux return 0; #endif } void SystemSpecs::printGPUSpecs(void) { cout<<" CUDA Device Query (Runtime API) version (CUDART static linking)\n\n"<<endl; for (dev = 0; dev < device_count; ++dev) { if (dev == 0) { // This function call returns 9999 for both major & minor fields, if no CUDA capable devices are present if (device_prop[0].major == 9999 && device_prop[0].minor == 9999) cout<<"There is no device supporting CUDA."<<endl; else if (device_count == 1) cout<<"There is 1 device supporting CUDA."<<endl; else cout<<"There are "<<device_count<<"%d devices supporting CUDA"<<endl; } cout<<"\n Device "<<dev<<":"<<device_prop->name<<endl; #if CUDART_VERSION >= 2020 // Console log cudaDriverGetVersion(&driver_version); cout<<" CUDA Driver Version: "<<driver_version / 1000<<"."<<driver_version % 100<<endl; cudaRuntimeGetVersion(&runtime_version); cout<<" CUDA Runtime Version: "<<runtime_version / 1000<<"."<<runtime_version % 100<<endl; #endif cout<<" CUDA Capability Major/Minor version number: "<<device_prop[dev].major<<"."<<device_prop[dev].minor<<endl; sprintf(msg, " Total amount of global memory: %llu bytes\n", (unsigned long long) device_prop[dev].totalGlobalMem); #if CUDART_VERSION >= 2000 /*printf(" Multiprocessors x Cores/MP = Cores: %d (MP) x %d (Cores/MP) = %d (Cores)\n", device_prop->multiProcessorCount, ConvertSMVer2Cores(device_prop[dev].major, device_prop[dev].minor), ConvertSMVer2Cores(device_prop[dev].major, device_prop[dev].minor) * device_prop[dev].multiProcessorCount); */ #endif cout<<" Total amount of constant memory: "<<device_prop[dev].totalConstMem<<" bytes."<<endl; cout<<" Total amount of shared memory per block: "<<device_prop[dev].sharedMemPerBlock<<" bytes."<<endl; cout<<" Total number of registers available per block: "<<device_prop[dev].regsPerBlock<<endl; cout<<" Warp size: "<<device_prop[dev].warpSize<<endl; cout<<" Maximum number of threads per block: "<<device_prop[dev].maxThreadsPerBlock<<endl; printf(" Maximum sizes of each dimension of a block: %d x %d x %d\n", device_prop[dev].maxThreadsDim[0], device_prop[dev].maxThreadsDim[1], device_prop[dev].maxThreadsDim[2]); printf(" Maximum sizes of each dimension of a grid: %d x %d x %d\n", device_prop[dev].maxGridSize[0], device_prop[dev].maxGridSize[1], device_prop[dev].maxGridSize[2]); cout<<" Maximum memory pitch: "<<device_prop[dev].memPitch<<" bytes"<<endl; cout<<" Texture alignment: "<<device_prop[dev].textureAlignment<<" bytes"<<endl; cout<<" Clock rate: "<<device_prop[dev].clockRate * 1e-6f<<"GHz"<<endl; #if CUDART_VERSION >= 2000 printf(" Concurrent copy and execution: %s\n", device_prop[dev].deviceOverlap ? "Yes" : "No"); #endif #if CUDART_VERSION >= 2020 printf(" Run time limit on kernels: %s\n", device_prop[dev].kernelExecTimeoutEnabled ? "Yes" : "No"); printf(" Integrated: %s\n", device_prop[dev].integrated ? "Yes" : "No"); printf(" Support host page-locked memory mapping: %s\n", device_prop[dev].canMapHostMemory ? "Yes" : "No"); printf(" Compute mode: %s\n", device_prop[dev].computeMode == cudaComputeModeDefault ? "Default (multiple host threads can use this device simultaneously)" : device_prop[dev].computeMode == cudaComputeModeExclusive ? "Exclusive (only one host thread at a time can use this device)" : device_prop[dev].computeMode == cudaComputeModeProhibited ? "Prohibited (no host thread can use this device)" : "Unknown"); #endif #if CUDART_VERSION >= 3000 printf(" Concurrent kernel execution: %s\n", device_prop[dev].concurrentKernels ? "Yes" : "No"); #endif #if CUDART_VERSION >= 3010 printf(" Device has ECC support enabled: %s\n", device_prop[dev].ECCEnabled ? "Yes" : "No"); #endif #if CUDART_VERSION >= 3020 printf(" Device is using TCC driver mode: %s\n", device_prop[dev].tccDriver ? "Yes" : "No"); #endif } cout<<endl; // driver version sprofile_string += ", CUDA Driver Version = "; #ifdef WIN32 sprintf_s(cTemp, 10, "%d.%d", driver_version / 1000, driver_version % 100); #else sprintf(cTemp, "%d.%d", driver_version / 1000, driver_version % 100); #endif sprofile_string += cTemp; // Runtime version sprofile_string += ", CUDA Runtime Version = "; #ifdef WIN32 sprintf_s(cTemp, 10, "%d.%d", runtime_version / 1000, runtime_version % 100); #else sprintf(cTemp, "%d.%d", runtime_version / 1000, runtime_version % 100); #endif sprofile_string += cTemp; // Device count sprofile_string += ", NumDevs = "; #ifdef WIN32 sprintf_s(cTemp, 10, "%d", device_count); #else sprintf(cTemp, "%d", device_count); #endif sprofile_string += cTemp; // First 2 device names, if any for (dev = 0; dev < ((device_count > 2) ? 2 : device_count); ++dev) { cudaGetDeviceProperties(&device_prop[dev], dev); sprofile_string += ", Device = "; sprofile_string += device_prop[dev].name; } sprofile_string += "\n"; // finish cout<<"\n\nPASSED\n"; } size_t SystemSpecs::getTotalConstantMemory(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].totalConstMem; } } size_t SystemSpecs::getSharedMemPerBlock(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].sharedMemPerBlock; } } size_t SystemSpecs::getTotalGlobalMemory(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].totalGlobalMem; } } int SystemSpecs::getWarpSize(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].warpSize; } } int SystemSpecs::getMaxThreadsPerBlock(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].maxThreadsPerBlock; } } int SystemSpecs::getMaxThreads_x(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].maxThreadsDim[0]; } } int SystemSpecs::getMaxThreads_y(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].maxThreadsDim[1]; } } int SystemSpecs::getMaxThreads_z(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].maxThreadsDim[2]; } } int SystemSpecs::getMaxNumberOfBlocks_x(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].maxGridSize[0]; } } int SystemSpecs::getMaxNumberOfBlocks_y(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].maxGridSize[1]; } } int SystemSpecs::getMaxNumberOfBlocks_z(int deviceID) { if(deviceID > dev - 1 || deviceID < 0) { cout<<"Invalid device specified"<<endl; return 0; } else { return SystemSpecs::device_prop[deviceID].maxGridSize[2]; } } int SystemSpecs::getNumberOfGPUs(void) { return SystemSpecs::dev; }
      • 1
      • Upvote
  2. Atestatele au un scop bine definit ci anume acela de a pune in practica un numar cat mai mare de cunostiinte asimilate in timpul studiului universitar. Cumparand un atestat nu iti ofera cunostiintele necesare pentru a scrie unul. T.C.
  3. In C: #include <stdlib.h> #include <stdio.h> int main(void) { system("lscpu"); // return 1; } Pentru core-uri CUDA de pe GPU-urile Nvidia poti urmari discutia de aici: http://stackoverflow.com/questions/5217167/cuda-how-many-cores-per-mp
  4. Nu este o idee prea buna sa lasi computerul sa-l ghiceasca. Practic se transforma intr-o problema de bruteforcing. NU folosi srand() ci /dev/urandom. srand() nu este chiar atat de random precum se doreste. Ai putea citi numarul de la tastatura: int n; std::cout << "Introduceti un numar:"; std::cin >> n; Acum citim octeti din std::random_device: #include <iostream> #include <string> #include <map> #include <random> int main() { std::random_device rd; std::map<int, int> hist; std::uniform_int_distribution<int> dist(0, 9); for (int n = 0; n < 20000; ++n) { ++hist[dist(rd)]; // note: demo only: the performance of many // implementations of random_device degrades sharply // once the entropy pool is exhausted. For practical use // random_device is generally only used to seed // a PRNG such as mt19937 } for (auto p : hist) { std::cout << p.first << " : " << std::string(p.second/100, '*') << '\n'; } } Sursa: std::random_device - cppreference.com
  5. Nu, este foarte important ce face acel botnet. Daca este folosit pentru DDoS sau spam mai mult ca sigur ca IP-urile statiilor vor fi blocate de catre toti furnizorii semnificativi de motoare de cautare inclusiv google. Botnet-ul poate fi detectat, de regula, prin mijloace statistice: daca toti cei 1000 de boti vizualizeaza site-ul in acelasi timp atunci clar ca probabilitatea ca acestea sa fie operate de persoane umane individuale este foarte redusa. Mai mult, daca bot-ul este folosit pentru DDoS acesta este eficient doar daca botii lanseaza atacul simultan. Vizite din partea botilor la intervale de timp regulate din nou pot fi usor detectate folosind modele statistice(gruparea IP-urilor bot-ilor si a timpilor in care au vizitat pagina).
  6. Ca si design sunt odioase. Imagineaza-ti unul in sufragerie, pe coridor la intrare sau in camera de oaspeti. Este destul de mare si inestetic deci nu este indicat sa fie pus pe o masa. Daca este pus pe podea toata lumea se va impiedica de el, mai ales de cele sase antene(atasate din motive care tin mai mult de marketing decat de tehnologie).
  7. Daca te uiti, frumos, in DEX vei vedea ca a dona inseamna a oferi o suma de bani, un bun sau un serviciu fara obligatia de a primi altul in schimb. "Simpatia" la care te referi consta in contributiile aduse forum-ului. Mult offtopic, cum este si post-ul la care raspund, nu aduce "simpatie" din partea comunitatii. Permite-mi sa-ti corectez post-ul. Fraza: trebuie reformulata astfel: Comunitatea are reguli bine stabilite. In cazul in care doresti sa participi este recomandat sa le iei in considerare, altminteri vei fii sanctionat.
  8. Poti arunca o privire aici pentru a-ti forma o parere. Pewdiepie YouTube Stats, Channel Statistics - Socialblade.com
  9. Ganav

    La multi ani!

    La multi ani tuturor!!! Sper ca in 2015 vor fi mai putine post-uri inutile si mai putin offtopic ca si in 2014.
  10. Nu, doar cateva pocnitoare de Revelion. Nu organizez un eveniment festiv.
  11. Salut, In primul rand va urez Craciun Fericit! Dupa cum stiti au mai ramas cateva zile pana la Revelion. Cunoasteti firme care comercializeaza artificii in Timisoara?
  12. Poti sa il folosesti ca si un TOR node, SOCKS 5 Proxy sau host-ing de fisiere.
  13. Nu, sunt amuzante contextul in care aduce injuriile, modul de refulare, incapacitatea de a se conforma unui set de reguli si, in final, atitudinea in urma unei sanctionari.
  14. Salut, Am deschis acest thread in care fiecare poate post-a p.m.-uri pe care le considera nostime. Acestea pot contine bancuri, nemultumiri mocnite, izbucniri infantile, observatii sarcastice si comentarii aduse la adresa unor decizii de moderare. Evitati insa acele mesaje care contin exclusiv injurii. Mai jos sunt cateva mesaje primite de mine(nu mentionati numele transmitatorului): Bai... asta... domnul SUPERMODERATOR uite-te mai bine la ce am postat si incearca pe propria ta piele sa vezi ca functioneaza. Incepi sa arunci cu warn in stanga si dreapta?! Uite ca imi bag **** in gura ta e jeg! Mai citeste pe acolo si o sa observi ca si altii sunt deacord cu mine! In + care ar fi problema?! Am incercat sa dau un raspuns si daca nu e corect se da warn?! Dispari. DU-TE MA in **** si mars de aici! Oare sunt singurul care raspund asa?! Nu cred asta asa ca joc de glezne. nu e prima datacand iau ban Din cauza la un cretin trebuia inchis topicul?acum o sa-mi inunde mesageria...
  15. Post-ul initial(cel de pe packetstorm) ilustreaza un mod prin care se poate obtine acces la o statie ce ruleaza distributia LINUX IPcop(care indeplineste functionalitatea de firewall(poate bloca, filtra pachete in functie de preferintele utilizatorului)). Post-ul prezinta cateva concepte(mijloace sau vectori de atac). Unul dintre acestea este: Proof of Concept 1 : ====================================================================== A non-persistent XSS in GET param is available in the ipinfo.cgi. The injection can be URLencoded with certain browsers. This XSS works on IE and affect IPCop version <= 2.1.2 (patched in 2.1.3 upgrade). File /home/httpd/cgi-bin/ipinfo.cgi line 82 : &Header::openbox('100%', 'left', $addr . ' (' . $hostname . ') : '.$whoisname); PoC: https://<IPCop_IP>:8443/cgi-bin/ipinfo.cgi?<script>alert('XSS_by_Yann_CAM')</script> Deci pentru a exploata vulnetabilitatea trebuie sa gasim o statie de lucru care ruleaza IPcop. Stim ca are portul 8443 deschis. Ne folosim acum de nmap pentru a gasi statii care au respectivul port deschis(nu este un port standard deci sansele ca acestea sa foloseasca distributia IPcop sunt relativ ridicate): nmap -iR 1000000 -oG nlog -A -p 8443 --open 1000000 este numarul de statii scanate, -iR specificam selectarea adreselor IP ale statiilor in mod arbitrar, -oG salvam rezultatele in fisierul nlog in directorul curent, -A dorim sa aflam distributia sistemului de operare care ruleaza pe respectivele statii, numele acestora(prin apeluri catre nslookup); poate fi omis pentru imbunatatirea performantelor, -p 8443 verifica portul 8443(daca este deschis sau nu). O data ce scanarea este finalizata poti lua fiecare statie cu port-ul 8443 deschis si sa incerci sa accesezi interfata de administrare astfel: https://<IP_gasit>:8443/cgi-bin/ipinfo.cgi?<script>alert('XSS_bla_bla')</script> Poti folosi rezultatele gasite pentru a testa si restul vulnerabilitatilor descrise in respectivul post.
  16. De ce? Atat timp cat este legal nu vad vreun motiv pentru care sa NU precizeze ceea ce a facut. De ce? Este la fel de legal ca si completarea unui CV? Acum, toate persoanele care si-au scris un CV sunt proaste? Am lucrat in concerne internationale si sincer, mi se pare extrem de plictisitor.
  17. Unii chiar sunt. Sensul traditional al cuvantului se refera la o persoana pasionata de un domeniu care incearca sa aduca imbunatatiri recurgand la metode neortodoxe(out of the box thinking). Domeniul de hacking este mult mai cuprinzator decat pare. Oricine poate fi un hacker(avea modalitati neconventionale de a rezolva probleme) in domeniul sau: un matematician, mecanic, lacatus, tamplar, etc. Sensul mediatic care este cel mai raspandit si mai cunoscut in prezent se refera, de regula, la copii care efectueaza atacuri de tip DDoS asupra unor corporatii internationale, membrii anonymous(care, din pacate, sunt in mare parte utilizatori ai unor aplicatii precum LOIC), tepari, etc. Eu sunt am experienta in Java, Java EJB, C, C++, ASM(x86-x64 Windows(WASM), LINUX (Gas)), PHP, HTML, Javascript, MATLAB, C#, VB.NET, Perl, GNU Bash, Prolog. Prin experienta ma refer la faptul ca am facut cel putin un proiect considerabil(> 2000 linii) in fiecare dintr-aceste limbaje la un moment dat. Modul meu de a invata este urmatorul: invat bazele fiecarui limbaj, cunosc notiunile fundamentale(citire, scriere din fisiere, gestionarea proceselor si a thread-urilor, programare orientata pe obiecte(incapsulare, mostenire, polimorfism, etc.) precum si elemente esentiale necesare in domeniul ingineriei software. Astfel, imi ia doar cateva zile pentru a deveni expert in orice limbaj. Nu doresc sa post-ez ceea ce pot face cu adevarat.
  18. Moon, Event Horizon, Pandorum, Her, The Mist, Resident Evil: Retribution, Splice, Species(I, II, III, IV), The Fly(I, II), They Live, The Dead Zone, Carriers, The Thing(I, II), The Blob(I, II), Slither, Starship Troopers(I, IV), War of the Worlds, Deep Rising, Re-Animator, Jeepers Creepers(I, II), The Relic, The Signal, Virus 1995, Alien(I, II, III, IV), Dead Space(animatii I, II si III), 13 Sins, Taken(I, II si III), I Spit on Your Grave(I, II), 28 Days Later, Total Recall, End of Days, Sabotage 2014, Solaris, The Cabin in the Woods, Silent Hill I, Rocky(I, II, III, IV, V), Jingle all the Way, The Possession of Michael King, Super 8, 2001: A Space Odyssey, Sunshine, Gravity, Blade Runner, Silent Running, The Day the Earth Stood Still(originalul), The Thing(I si II), Tremors(I si II), From Beyond, Stephen King's it, Texas Chainsaw Massacre(primul), Carrie(I, II), Chernobyl Diaries, Cool World, Dark Skies, Deep Impact, Evolution 2001, Knowing 2009, Sin City(I, II), The Colony, Alone in the Dark(I, II), Cube(I, II, III), Dog Soldiers, Underworld(I, II, III) Cam atatea imi vin acum in minte.
  19. Nu vad un efort deosebit de ridicat in a apasa pe doua butoane(Edit si Save) in locul unuia singur(Post (Quick Reply)). Mai mult, post-urile duble sunt relativ rare. Este de dorit ca utilizatorii sa fie responsabili in ceea ce priveste calitatea, ordinea si numarul post-urilor; daca am implementa mecanismul respectiv(nu este dificil din punct de vedere tehnic) s-ar crea deprinderi care ar fi folosite si pe alte forum-uri unde acesta nu este implementat ceea ce ar duce la o deteriorarea comunitatii respective.
  20. @zekstein Categoric ca este un sfat. De ce esti in ceata? Post-ul meu ilustreaza unul dintre cele mai convenabile moduri de a obtine informatia dorita. Sigur ca ai putea scrie un link catre un site care contine un applet malitios, descarca un exe(de ex. http://www.yahhoo.com/updatems.exe) sau se foloseste de vreo vulnerabilitate 0-day a browser-ului, insa nu in intervalul de timp dat. Este clar ca pentru a obtine acces la statia lui Viorel NU este nevoie de toate acestea, cel putin din descrierea acestuia facuta in post-ul initial(nimeni nu foloseste un baros pentru a omori un tantar). Sper ca iti dai seama ca folosim nume fictive in acest thread nu?
  21. Desigur ca te poate prinde. Dovezile electronice sunt foarte usor de fabricat. Cat de greu este sa scrii un IP, o ora si o data intr-un fisier(de ex. /var/log)?
  22. Viorel probabil ca este lenes. Astfel, tinde sa salveze parolele site-urilor pe care le frecventeaza prin browser. Cu alte cuvinte m-as uita la Saved Passwords. Pe firefox se pot vedea in 2-3 secunde(cu putin antrenament). As face rapid o poza cu telefonul ecranului(toate acestea dureaza in jur de 6-8 secunde daca esti pregatit). De asemenea, Viorel pare a fi genul de persoana careia nu ii pasa de securitate deci, sunt sanse ridicate ca acesta sa aiba aceiasi parola pentru toate site-urile pe care le frecventeaza. Nu consider practic sa scrii un link in acel fisier(dureaza mai mult de zece secunde pana scrii toate caracterele, de exemplu https://www.facebook.com/blabla). Mai mult poti, gresi URL-ul(protocolul sau calea). Astfel, Viorel fiind marginit in curiozitate probabil ca nu va incerca sa ajusteze link-ul si pur si simplu va trece la altele. Pagina de facebook ar contine aspecte interesante oamenilor simpli: sport, politica(polemica neconstructiva mai exact), emisiuni difuzate duminica seara, telenovele, etc. Cel mai eficient lucru ar fi sa adaugi urmatoarea linie in fisier: link-uri.txt Nu uita sa iei legatura iasmina.radu@gmail.com !!!! <=== in centrul fisier-ului. Viorel este monoton si intotdeauna viziteaza link-urile in ordine. Dupa un timp sunt sanse ca acesta sa se plictiseasca si sa sara peste cele de la inceput. Ca si nume puteti pune orice nume care considerati ca s-ar potrivi unei fete/femei atragatoare(aici este un mic risc insa cu Viorel merge aproape orice). Cream, desigur, adresa apriori. O data ce primim un e-mail de la acesta aflarea numelui hamster-ului se poate face folosind inginerie sociala.
  23. Nu este intocmai pentru acel post insa m-am uitat putin peste toata activitatea ta pe forum. In thread-urile de mai jos folosesti injurii, unele post-uri fiind chiar inutile: https://rstforums.com/forum/93056-la-emag-pretul-resigilatelor-creste.rst#post590645 https://rstforums.com/forum/91438-webshell.rst#post582550 https://rstforums.com/forum/91057-user-tepar-filatdegarda.rst#post580298 https://rstforums.com/forum/90524-exchange-paypal-min-100-a.rst#post577865 https://rstforums.com/forum/89086-theres-new-king-house.rst#post569659 https://rstforums.com/forum/88763-la-multi-ani-mie-3-a.rst#post567773 https://rstforums.com/forum/88656-cpanel-scanner.rst#post567415 Poti oricand critica membrii forum-ului si post-urile acestora intr-un mod constructiv, respectand regulile.
  24. Draga utilizatorule, ncrack este cel mai raspandit utilitar in acest sens. Este gratuit si open source. Daca crezi ca este rahitic esti liber sa-l imbunatatesti sau sa il rescrii de la zero pana cand consideri ca isi indeplineste functia. @Maximus a incercat sa te ajute insa tu nu ai reusit sa observi acest lucru. De regula, cand primesti primul warn primul lucru la care trebuie sa te gandesti este de ce. Motivul este adesea specificat in p.m.. Daca consideri ca nu este dat pe buna dreptate esti liber sa pui in discutie motivele din spatele acestuia. Modul in care ai facut acest lucru lasa mult de dorit; post-urile tale denota infantilitate, lipsa de cunostiinte si lipsa ambitiei de a invata. Ban-ul a fost dat in mod corespunzator. O zi buna in continuare.
  25. Sunt cam vechi materialele 2000 -- 2005. Nu am stat sa verific fiecare link insa nu par a fi de actualitate.
×
×
  • Create New...