Flom , eller denial- of- service angrep , forsøk å overvelde datamaskinen ressurser og gjøre dem utilgjengelige for brukerne . Vanligvis angriper bombardere målet ressurser med kommunikasjon forespørsler slik at de ikke kan svare på autentisk trafikk eller svare så sakte at de synes utilgjengelig. Imidlertid kan det være lurt å lage et Perl-skript som genererer en flom for å teste ressurser under stress . Du kan oversvømme en bestemt User Datagram Protocol ( UDP ) port på et mål ressurs med enten fast eller varierende pakkestørrelser . Du kan også generere en kontrollert konstant flom ved å angi et mål båndbredde eller inter- forsinkelse pakken . Du trenger
tekst editor
Vis flere instruksjoner
en
Definer kommandolinjeparametrene som du ønsker å bruke. For eksempel kan du bruke en tid parameter for å angi varigheten av flommen. Hvis parameteren er utelatt , kan flommen være sammenhengende . Et eksempel bruk av din Perl script på kommandolinjen kan være som følger : en
flood.pl - port port - størrelse bytes - time sekunder - båndbredde kbps - delay millisekunder
2
Inkluder " Socket ", " getopt :: Long " og "Time :: HiRes " Perl-moduler i skriptet . Den " Socket " modulen laster C socket.h definerer og struktur manipulatorer . Den " getopt :: Long " modulen implementerer GetOptions ( )-funksjonen . Funksjonen leser programmet kommandolinjen , ser for matchende argumenter , og hvis de finner , setter det tilsvarende alternativet variabelen til true. "Time :: HiRes " modulen gir høy oppløsning tid og tidtakere , slik som " gettimeofday " system samtale. For eksempel : en
bruk getopt :: Long ;
bruk Socket ;
bruk Tid :: HiRes ;
3
Erklærer variablene . For eksempel : en
vår $ port = 0;
vår $ size = 0;
vår $ tid = 0;
vår $ bw = 0 ;
vår $ forsinkelse = 0;
4
Definer type for dine erklært variabler . For eksempel:
GetOptions (
" port = i " = > \\ $ port , # UDP port å bruke
"size = i " = > \\ $ størrelse , # pakkestørrelse
" båndbredde = i " = > \\ $ bw , # hvor mye båndbredde å konsumere
"tid = i " = > \\ $ tid , # driftstid
" delay = f " = > \\ $ forsinkelse , # inter- forsinkelse pakken
5
Kode kommandolinje parameter mislighold og bruk. For eksempel kan du sette pakkestørrelsen til 256 bytes hvis " båndbredde " parameter brukes uten " size" parameter : !
$ size = 256 hvis $ bw && $ størrelse;
6
omfatter utskrift til skjermen hva skriptet gjør For eksempel: .
print " Flooding $ IP" . ( $ port $ port : " tilfeldig" ) . " port med "
( $ størrelse. ? ». $ size - byte" : "random size" ) "pakker" ( $ time " for $ tid sekunder ": ""). " \\ n";
bilder < . ? br >