Fork bomb: cos’è e istruzioni per l’uso 20 Marzo 2008
Posted by giako in GNU/Linux e SL.Tags: Bash, fork bomb, GNU/Linux, overflow, sistemi operativi
trackback

Oggi programmando in Bash (in preparazione del prossimo esame di Sistemi Operativi I) mi è tornata in mente questa crudeltà, ovvero uno dei metodi per mandare in overflow un sistema Unix. Probabilmente molti di voi la conosceranno già… ma per chi non ne avesse mai sentito parlare, eccovi le fork bomb.
:(){ :|:& };:
Non provate a scriverlo sul terminale della vostra macchina Unix e otterrete il tanto ambito (?) overflow. Ne esistono delle varianti in altri linguaggi di programmazione (C, Perl, Python, …) ed anche una per Winzozz.
Proseguite nella lettura per la spiegazione di questa riga (apparentemente indecifrabile)…
La linea non è altro che la definizione di una funzione chiamata :, seguita da una chiamata a :.
La parte :(){ corpo della funzione }; non è altro che la definizione della funzione :, che non accetta parametri, questa funzione esegue l’istruzione :|:&, cioè esegue in background (cosicchè il processo continua anche dopo la morte del processo parent) se stessa in pipe a se stessa! Il risultato è che viene realizzata una serie (a crescita esponenziale) di fork (ovvero di richieste di creazione di nuovi processi) finché il limite massimo di processi gestibili è raggiunto ed il computer va spento (dal pulsante, ovvero bisogna fare un hard reset). Il : che segue il ; è la chiamata alla funzione : che è stata definita. Il ; agisce da separatore fra definizione e chiamata di :, per digitare il tutto su una riga sola.
Istruzioni per l’uso: don’t try this at home ;):
DISCLAIMER: non mi assumo responsabilità riguardo a danni di qualsiasi tipo ai vostri dati, specialmente la perdita di dati non salvati. Usate la riga di sopra a vostro rischio e pericolo.
Commenti»
No comments yet — be the first.