Jump to content

em

Active Members
  • Posts

    1909
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by em

  1. Acest thread f?r? cap ?i coad? încearc? s? v? introduc? în lumea semnalelor în linux. Poate unii din voi v-a?i gândit vreodat? cum s? face?i ca s? rula?i o dat? la X secunde o secven?? de cod în C. Cea mai naiv? din solu?ii ar fi aceasta #include <stdio.h> void functie() { printf("lel\n"); } int main() { int i = 0; while(1) { if(i++ == 100000000) { functie(); i = 0; } } return 0; } Dup? cum vede?i în comanda de mai sus se itereaz? prin i, ?i o dat? la 100mil se ruleaz? func?ia. Sun? bine, eh? Mhm, no. Pentru c? CPU-ul st? aproape mereu ocupat. O parte din voi poate c? a?i mai auzit de apelul sleep, un cod echivalent este cam a?a. #include <stdio.h> void functie() { printf("lel\n"); } int main() { while(1) { sleep(10); // hai s? dormim o dat? la 10 secunde ;-) functie(); } return 0; } Dac? sunte?i curio?i s? v? uita?i în top, observa?i c? CPU-ul nu mai este utilizat la 100%, ci procesul nu mai consum? nimic, de?i este într-un while(1). Aici intr? în joc semnalele. Semnalele sunt mesaje trimise de c?tre sistemul de operare c?tre procese pentru a semnala o situa?ie excep?ional? la care ele trebuie s? reac?ioneaze. To?i am folosit semnale pân? acum. S? v? dau un exemplu. vilie@em-vm:/tmp$ wget http://www.google.com/ --2015-02-19 01:41:42-- http://www.google.com/ Resolving www.google.com (www.google.com)^C vilie@em-vm:/tmp$ În exemplul de mai sus am oprit procesul wget printr-un semnal generat de combina?ia de taste "CTRL+C" (SIGINT). Procesul a primit semnalul CTRL+C si a efectuat ac?iunea implicit?. (a murit) În general procesele pot trata, bloca sau ignora semnalele primite. Ac?iunea implicit? la primirea unui semnal este omorârea procesului. În cazul în care procesul îl ignor?, sistemul de operare nu îi va mai trimite acel semnal. Hai s? observ?m câteva din semnale. vilie@em-vm:/tmp$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX În acest moment oamenii care d?deau f?r? mil? cu "kill -9" f?r? s? ?tie de ce, au aflat c? comanda este echivalent? cu kill -SIGKILL. SIGKILL este un semnal care nu poate fi blocat/mascat/ignorat de un proces -> procesul este omorât. Hai s? vedem un exemplu mai interesant. Poate unii din voi ?tiu c? de obicei un proces care blocheaz? terminalul poate fi omorât cu CTRL+C sau CTRL+\. Mai jos e un exemplu de program care trateaz? acele semnale (?i nu moare). #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <signal.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> #define MY_MAX 32 #define TIMEOUT 1 static void print_next(void) { static int n = 1; printf("n = %d\n", n); n = (n + 1) % MY_MAX; } /* signal handler */ static void ask_handler(int signo) { char buffer[128]; printf("Got %d - Opresc programul boss? [Y/n] ", signo); fflush(stdout); fgets(buffer, 128, stdin); buffer[strlen(buffer)-1] = '\0'; if (buffer[0] == 'y' || buffer[0] == 'Y') exit(EXIT_SUCCESS); } /* configure handlers */ static void set_signals(void) { struct sigaction sa; memset(&sa, 0, sizeof(struct sigaction)); sa.sa_handler = ask_handler; sigaction(SIGINT, &sa, NULL); sigaction(SIGQUIT, &sa, NULL);; } int main(void) { set_signals(); while (1) { print_next(); sleep(TIMEOUT); } return 0; } Dup? cum vede?i programul ajunge în ask_handler dup? ce prime?te CTRL+C sau CTRL+\ Un ultim exemplu v? dau un cod care ruleaz? un handler o dat? la 2 secunde. Procesul seteaza un timer cu SIGALRM o dat? la 2 secunde ?i îl trateaz? în timer_handler. Adic? procesul î?i trimite sie?i semnale o dat? la dou? secunde, în rest se suspend? (sigsuspend). #include <assert.h> #include <time.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <signal.h> #include <sys/time.h> #define TIMEOUT 2 // Aici seta?i o dat? la câte secunde s? ruleze comanda static void timer_handler(int signo) { time_t curr_time; curr_time = time(NULL); printf("time is: %s", ctime(&curr_time)); } static void set_signals(void) { struct sigaction sa; memset(&sa, 0, sizeof(sa)); sa.sa_handler = timer_handler; sigaction(SIGALRM, &sa, NULL); } static void set_timer(void) { timer_t timerid; struct sigevent sev; struct itimerspec its; sev.sigev_notify = SIGEV_SIGNAL; sev.sigev_signo = SIGALRM; sev.sigev_value.sival_ptr = &timerid; timer_create(CLOCK_REALTIME, &sev, &timerid); /* Start the timer */ its.it_value.tv_sec = TIMEOUT; its.it_value.tv_nsec = 0; its.it_interval.tv_sec = its.it_value.tv_sec; its.it_interval.tv_nsec = its.it_value.tv_nsec; timer_settime(timerid, 0, &its, NULL); } static void wait_for_signal(void) { sigset_t old_mask; sigprocmask(SIG_SETMASK, NULL, &old_mask); sigsuspend(&old_mask); } int main(void) { set_signals(); set_timer(); while (1) { wait_for_signal(); } return 0; } În continuare o s? postez un program care atunci când ap?sa?i CTRL+C v? d? impresia c? el a fost omorât ?i v? afiseaz? un prompt identic cu bashul vostru. ?i atunci cel care a f?cut programul r?u inten?ionat poate vedea/interpreta/trimite toate comenzile date de voi c?tre un ter?. Poate face vreunu din voi asta (pornind de la semn.c)
  2. Offtopic: De?i apreciem foarte mult activitatea celor care ne atrag aten?ia asupra celor care derapeaz? prin topicuri ar fi bine ca s? se foloseasc? op?iunea "report post". Când m? g?sesc tagged într-un post m-a? a?tepta ca s? fie legat de o discu?ie tehnic?, nu c? a postat un c?cat carduri. Ca s? fie clar, nu mai da?i tag la staff, folosi?i report post. A?a ve?i intra ?i în competi?ia "Pârâciosul 2015", cele puse prin tag nu intr?. @SilenTx0
  3. Poate s? mai încarce careva imaginea original?? via @Aerosol http://i.imgur.com/geu6z4M.jpg
  4. Cum v? pute?i distra. Intra?i în plane mode (Instrumente -> Intra?i în simulatorul de zbor) Pune?i melodia asta de fundal Profit
  5. Google Earth Pro, the premium version of Google's popular Google Earth service, is now free. Google sliced the price from $400 a year, so this is a pretty solid deal. If you like to make 3D measurements or create HD videos of virtual trips around the world, I'd jump on this. You can download the software key directly from Google and start an online global journey. If you spent the past ten years paying $400 for the service, this news is probably annoying. Unlike standard Google Earth, Google Earth Pro comes with a suite of professional-grade features, like a map-making tool. It's not clear why Google decided on this freebie. Sursa: Google Earth Pro Is Now Available for Free Download: Google Earth Free CD key: https://geoauth.google.com/gev0/free_trial.html
  6. Dac? cineva posteaz? pe forum c? a luat ban pe chatul ?la f?cut de Gecko o s? aib? ban pe 3 genera?ii de acum în colo. Closed.
  7. Scopul acestui challenge este de a da rezultatul care apare în imagine. Doar c? trebuie s? face?i asta în sub 2 secunde. Treaba voastr? cum
  8. F?r? prea multe explica?ii http://ratati.org/chall/index.php
  9. ?tiu c? a fost postat? aici o metod? mai demult. Presupunea s? ?tii c? un om nu o s? mai intre pe facebook ceva timp ca s? intri în leg?tura cu staff-ul ?i s? zici c? ai uitat tot. Alta era s? falsifici un certificat de deces ?i s? le-o dai, o s? î?i dea acces la cont.
  10. Când ceri ajutor încearc? s? faci situa?ia cât mai u?oar? celui care vrea s? te ajute. Eu nu m-am prins pe ce user ai fost banat.
  11. Se închide pr?v?lia o period?, ca s? se mai r?ceasc? spiritele.
  12. Spoiler Nu citi mai jos dac? nu vrei spoiler. Primul lucru care se poate vedea în imagine este semnul de XOR. Deci se poate presupune c? autorul ar vrea s? facem XOR între cele dou? string-uri. Primul are lungime 74, al doilea 296. 74 * 4 = 296. Se trage concluzia c? sunt dou? stringuri de lungime egal? codate diferit. Hai s? înv???m ni?te cod binar împreun?. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 1 2 3 4 5 6 7 8 9 a b c d e f Cel mai ineficient cod care poate fi scris de cineva care s? converteasc? ?irul de lungime 74 în binar ar fi ?sta char temp[] = "436869617220637265646561692063612065206173612064652073696d706c753f206c6f6c"; for(int i = 0; i < 74; i++) { switch(temp[i]) { case '0':cout<< "0000";break; case '1':cout<< "0001";break; case '2':cout<< "0010";break; case '3':cout<< "0011";break; case '4':cout<< "0100";break; case '5':cout<< "0101";break; case '6':cout<< "0110";break; case '7':cout<< "0111";break; case '8':cout<< "1000";break; case '9':cout<< "1001";break; case 'a':cout<< "1010";break; case 'b':cout<< "1011";break; case 'c':cout<< "1100";break; case 'd':cout<< "1101";break; case 'e':cout<< "1110";break; case 'f':cout<< "1111";break; } } Acum hai s? facem un xor intre stringuri char s1[] = "01000011011010000110100101100001011100100010000001100011011100100110010101100100011001010110000101101001001000000110001101100001001000000110010100100000011000010111001101100001001000000110010001100101001000000111001101101001011011010111000001101100011101010011111100100000011011000110111101101100"; char s2[] = "00101011000111000001110100010001000000010001101001001100010111010001001000010011000100100100111100011010010001010000110100000101010100110001010101000001000000100001011001001111010000110000101100001000000011110001010100000000000000010001010101000011010000000000011101000011000101010101101000000010"; for(int i = 0; i < 74*4; i ++) cout<<(((int) s1[i]) ^ ((int) s2[i])); O dat? ce am ob?inut string-ul dorit d?m o c?utare pe net de "binary to ascii". Convertit, ne va duce la o imagine. Image codes: totul sau nimic Copy (Nu ?tiu dac? imaginea a fost convertit? de postimg). Inspectând imaginea cu hexdump (sau deschis? cu notepad) se poate vedea c? are antet RAR. Se schimb? extensia in RAR ?i în mod evident d?m de o parol?. Am rar password cracker 5.0b si ca dic?ionar toate literele din poza de mai sus "nexoormhp". Pentru c? mi-a fost prea lene s? îi inv?? sintaxa mi-am scris un program care s? îmi genereze toate combina?iile #include <algorithm> #include <string> #include <iostream> int main() { std::string s = "prnmeooxh"; std::sort(s.begin(), s.end()); do { std::cout << s << '\n'; } while(std::next_permutation(s.begin(), s.end())); } Am pus fi?ierul rezultat ca dic?ionar pentru soft ?i dup? ceva timp... xempohnor Passwords tested = 161904 (time = 09:17.50, rate = 290 p/s) xenomorph - CRC OK In hex (PCL style): \78 \65 \6E \6F \6D \6F \72 \70 \68 Passwords tested = 162160 (time = 09:18.35, rate = 290 p/s) Total tested = 162160, slow tests = 20136 Bineîn?eles c? Usr6 va zice acum c? alea aveau o logic?, ?i c? nu trebuia s? fac brute force. Pentru frumuse?e, o s? las ultima parte nerezolvat?. O g?si?i în imaginea de mai jos.
  13. Am pus aici https://github.com/RomanianSecurityTeam/RSTYoutubeDownloader Felicit?ri!
  14. http://rs1img.memecdn.com/we-are-anonymous-but-moooom_webm_2467269.webm
  15. Îmi place s? v?d cum sec?iunea challenges reînvie. Nice chall. Îmi place c? am fost nevoit s? scriu ?i ceva cod + am mai înv??at ni?te chestii (cum s? folosesc unele tooluri). Thanks, am dat pe PM rezolvarea.
  16. Am încercat cu dou? dic?ionare de limba englez?. Nu a ie?it. Dac? are cineva o plac? video bunicic? s? facem ?sta ..
  17. Având în vedere c? se joac? spânzur?toarea s? în?eleg c? dic?ionar? ?i sigur [a-z] ?i nu [a-zA-Z] ?
  18. Ai pl?tit cu cardul în avans?
  19. em

    Cursuri CCNA

    Sunt foarte bune pentru c? majoritatea oamenilor o s? se ?in? de ele (adic? ai pl?tit - nu po?i s? nu te ?ii de ele pentru c? ai pl?tit). Sunt destule firme care au nice to have : CCNA, CCNP, LPIC dar angajeaz? ?i f?r?. Dac? deja ?tii re?elistic? eu a? zice s? investe?ti banii în altceva.
  20. ?i eu ce s? înteleg? C? a?a vor ei s? m? ?antajeze s? îmi iau digipass?
  21. Salut, Dup? cum ?ti?i, X este o banc? cu prezent? în România. Am cont la ei, le folosesc serviciile (îmi place internet banking - te loghezi pe o interfa?? web, faci tranzac?ii, îi dau lu Nytro bani de bere etc.) La un moment dat a venit timpul s? îmi schimb parola (la servicii sensibile am cele mai complexe parole posibile). Buimac fiind, m? loghez ?i am în fa?? promtul standard (Parol? nou?/Confirm? parola nou?). Bag o dat?, de dou? ori ?i încep s? înjur tastatura (pula mea, nu sunt în stare s? tastez o parol? de dou? ori la fel). Fac ochii mari ?i belesc la textul care îmi este afi?at. Trag o înjur?tur? ?i zic "În c?cat, ??tia vor minim 5 caractere ?i o cifr?. OK boss". Bag iar ?i nimic. mai citesc o dat?. Pentru cei care înc? nu a?i prins ideea. Parola cu care eu accesez aceast? platform? online trebuie s? fie din exact 5 cifre. Pentru c? a?a nu o s? îmi mai uit parola vreodat?, cred. Stupefiat, accesez supportul online. R?spuns primit pe 7 ianuarie 2015. Eu ?sta o s? îl pun în ram?. "Parola formata din 5 cifre are aproximativ o suta de mii de combinatii si nu poate fi ghicita cu usurinta."
  22. Salut, Î?i zic din proprie experien??, livrarea produsului la timp este cu mult mai important? decât puritatea codului. Asta sigur c? va lovi în calitate. Încearc? s? explici acest aspect, ?i c? ar putea ap?rea buguri în timp. Dac? exist? echip? dedicat? de QA, nu ar trebui s? î?i faci prea multe probleme.
  23. Viteza e influen?at? de mai multe lucruri. Ce switch/router ai în cas?? D? exact modelul. Ce cablu ai? (Scrie pe el categoria din metru în metru). E?ti pe wifi sau cablu? Eu am >90 download >60 upload mereu.
  24. Alea sunt identit?ti generate, site-ul ?la nu e cu CC-uri. Un alt site similar e Generate a Random Name - Fake Name Generator Sunt mai multe site-uri care nu iti verifica pe loc daca iti pot lua bani de pe card. De obicei contul ajunge suspendat in cateva ore. De ajuns pentru o lab?.
×
×
  • Create New...