Det skaper så mange prosesser som mulig. Mange versjoner av UNIX er konfigurert med en kjerne variabel kalt maxuproc eller noe sånt. Det er max prosesser som en ikke-root bruker kan opprette. Det er egentlig det eneste beskyttelse, og selv med at et program som dette er en plage. Så fort du drepe en prosess, en annen tar sin plass.
For å komme seg, som root, su til brukeren som kjører "samtidig (1) gaffel ();". root vil få lov til å bytte en rot prosess til denne brukeren, selv om dette dunk antallet prosesser tidligere maxuproc. Nå du har et skall som kjører som brukeren. Skallet kan ikke fork (), men det kan exec (). Så skriv inn følgende kommando:
exec / usr / bin / kill -9 -1
Killing prosessen -1 signaler egentlig alle prosesser som eies av brukeren. Dette er dokumentert på kill (2) man-siden og dette kreves av
POSIX. Hvis det er mange prosesser og system anrop preemptable og prosesser med sanntids prioritet kjører, kan dette ikke fungerer. En annen tilnærming er:
exec / usr / bin / kill-STOP -1
STOP-signal, hvis antall varierer fra system til system, kan ikke bli fanget. Den brukes for jobb kontroll og suspenderer prosessen. En suspendert prosessen kan ikke forsøke å fork (), men den fortsetter å konsumere en prosess sporet slik at ingen nye prosessen kan ta sin plass. Når alle de ondsinnede prosesser som er suspendert, så kan du drepe dem.
Skjell har ofte en innebygd kill-kommandoen ... hvis den kan håndtere -1 er en prosess nummer, kan du bruke det. Men skjell har ofte innebygde dreper som kveler på killall konstant.