Hochwasser oder Denial-of- Service-Attacken , versuchen Computer-Ressourcen zu überwältigen und sie nicht für Nutzer. Normalerweise greift bombardieren Zielressourcen mit Kommunikations- Anforderungen, sodass sie nicht authentisch Verkehr reagieren oder reagieren so langsam, dass sie nicht verfügbar zu sein scheinen. Allerdings möchten Sie vielleicht ein Perl -Skript, das eine Flut von Ressourcen unter Stress testen erzeugt erstellen. Sie können eine bestimmte überfluten User Datagram Protocol ( UDP) -Port auf einem Ziel-Ressource mit festen oder unterschiedlichen Paketgrößen . Sie können sich auch eine kontrollierte konstante Flut durch die Angabe einer Ziel- Bandbreite oder Verzögerung zwischen den Paketen . Things You
Texteditor
brauchen anzeigen Weitere Anweisungen
1
Definieren Sie die Kommandozeilen-Parameter , die Sie verwenden möchten. Zum Beispiel könnten Sie einen Zeit-Parameter , um die Dauer der Flut zu spezifizieren. Wenn der Parameter weggelassen wird, könnte die Flut kontinuierlich sein. Ein Beispiel Nutzung Ihrer Perl-Skript auf der Kommandozeile könnte wie folgt aussehen :
flood.pl - Hafen Port - Größe bytes - Zeit Sekunden - Bandbreite kbps - Verzögerung ms
< br > 2
Fügen Sie die "Socket ", " Getopt :: Long " und " Time :: HiRes " Perl-Module in Ihrem Skript . Der " Sockel "-Modul lädt die C socket.h definiert und Struktur Manipulatoren . Die " Getopt :: Long "-Modul implementiert die GetOptions ()-Funktion . Die Funktion liest das Programm Befehlszeile , sucht passenden Argumente und wenn gefunden, wird die entsprechende Option auf true . Das "Time :: HiRes "-Modul bietet eine hohe Auflösung von Zeit und Zeiten, wie die " gettimeofday " System Anruf . Zum Beispiel:
Verwendung Getopt :: Long;
Verwendung Socket;
use Time :: HiRes ;
3
Declare die Variablen . Zum Beispiel:
unsere $ port = 0;
unsere $ size = 0;
unsere $ time = 0;
unsere $ bw = 0 ;
unsere $ delay = 0;
4
Definieren Sie den Typ für Ihre deklarierten Variablen . Zum Beispiel:
GetOptions (
" port = i " => \\ $ port , # UDP Port
verwenden "size = i " => \\ $ Größe , # Paketgröße
" Bandbreite = i " => \\ $ bw , # , wie viel Bandbreite zu
konsumieren " time = i " => \\ $ time , # Laufzeit
"delay = f " => \\ $ Verzögerung , # Verzögerung zwischen den Paketen
5
-Code Befehlszeilenparameter standardmäßig und Nutzung. Zum Beispiel könnten Sie die Paketgröße auf 256 Bytes , wenn die "Bandbreite" Parameter ohne die Parameter "size" wird verwendet :
$ size = 256 if $ bw && $ size ;
6
enthalten, um die Druck- Bildschirm , was das Skript tut Zum Beispiel: .
print " Flooding $ IP " . ( $ port $ port : "random" ) . "Hafen "
( $ size . ? . " $ size -Byte ": "random size" ) " Pakete " ($ time " für $ time Sekunden ": ""). " \\ n";
< . ? br>