Oversvømmelser eller denial -of- service-angreb , forsøger at overvælde computer ressourcer og gøre dem utilgængelige for brugerne. Normalt angriber bombardere målressourcer med kommunikation anmodninger , så de ikke kan reagere på ægte trafik eller reagerer så langsomt, at de synes utilgængelige. Dog kan du ønsker at oprette et Perl-script , der genererer en oversvømmelse for at teste ressourcer under stress. Du kan oversvømme et bestemt User Datagram Protocol ( UDP) port på et mål ressource med enten faste eller varierende pakkestørrelser . Du kan også generere en kontrolleret konstant oversvømmelse ved at angive et mål båndbredde eller inter -pakke forsinkelse. Ting du skal
Text editor
Vis Flere Instruktioner
1
Definer kommandolinjeparametre , du ønsker at bruge. For eksempel kan du bruge en tid parameter til at angive varigheden af oversvømmelsen. Hvis parameteren udelades, kunne oversvømmelsen være kontinuerlig . Et eksempel brug af din Perl script på kommandolinjen kunne være som følger : Hej
flood.pl - port port - size bytes - time sekunder - båndbredde kbps - forsinkelse msek
< br > 2.
Medtag " Socket ", " getopt :: Lang " og " Time :: HiRes " Perl moduler i dit script. Den " Socket "-modulet indlæser C socket.h definerer og struktur manipulatorer . Den " getopt :: Lang "-modulet implementerer GetOptions ( ) funktion. Funktionen læser programmet kommandolinjen, ser til at matche argumenter , og hvis det findes , sætter den tilsvarende indstilling variable til true. Den " Time :: HiRes " modul giver høj opløsning tid og timere , såsom " gettimeofday " system opkald . For eksempel : Hej
brug getopt :: Lang ,
brug Socket ,
brug Time :: HiRes ,
3
Erklær variablerne . For eksempel : Hej
vores $ port = 0;
vores $ size = 0;
vores $ tid = 0;
vores $ bw = 0 ;
vores $ forsinkelse = 0;
4
Definer den type for din erklærede variabler. For eksempel:
GetOptions (
" port = i " => \\ $ port , # UDP-port at bruge
"size = i " => \\ $ størrelse, # pakkestørrelsen
"båndbredde = i " => \\ $ bw , # hvor meget båndbredde til at forbruge
"tid = i " => \\ $ tid , # køretid
"forsinkelse = f " => \\ $ forsinkelse # inter- packet forsinkelse
5
kode kommandolinjeparameter defaults og anvendelse. for eksempel kan du indstille pakkestørrelsen til 256 bytes , hvis " båndbredde" parameter bruges uden " størrelse" parameteren: !
$ size = 256 , hvis $ bw && $ size ,
6
omfatter udskrivning til skærm , hvad scriptet gør for eksempel: .
print " Oversvømmelser $ IP" . ( $ port $ port: ? "random "). " port med "
( $ størrelse. ? . "$ size- byte ": " random størrelse" ) "pakker " ( $ tid " for $ tid sekunder" : "" ). " \\ n";