2011-12-05 29 views
10

Böyle genel bir soru sorduğum için üzgünüm, ama bu günlerce beni rahatsız ediyor.Bu kod parçası ne yapıyor? :() {: |: &} ;:

Bir arkadaşım bana bu kodu (?) Verdi ve bana ne yaptığını ya da C veya bash ya da başka bir şey olsa bile söyleme.

Görünümden C'ye benziyor. Her ne kadar neden yanımda : var anlamıyorum.

:(){:|:&};: 

Herhangi bir ipuçları takdir edilecektir. Bu fork bomb var

+1

Anlamsız! Ağa bağlı olmayan bir sanal makinede çalıştırdığınız güvenilmeyen bir kaynaktan "rasgele" bir kod çalıştırdığınızdan emin olun. :) –

+2

Bu daha fazla kod alacağımız bir arkadaş değil ... Eğer chmod -R 666/'yapmasını söylerse, bunu –

+0

yapmam. Burada bombalanan tek şey benim aklımdı =) – Dimme

cevap

25

Bu Bash kabuk komut değil, C

.

Vikipedi bunu açıklıyor:

:()  # define ':' -- whenever we say ':', do this: 
{  # beginning of what to do when we say ':' 
    : # load another copy of the ':' function into memory... 
    | # ...and pipe its output to... 
    : # ...another copy of ':' function, which has to be loaded into memory 
     # (therefore, ':|:' simply gets two copies of ':' loaded whenever ':' is called) 
    & # disown the functions -- if the first ':' is killed, 
     #  all of the functions that it has started should NOT be auto-killed 
}  # end of what to do when we say ':' 
;  # Having defined ':', we should now... 
:  # ...call ':', initiating a chain-reaction: each ':' will start two more. 
+6

Genelde "Deneyin ve gör" seçeneğini öneririm, ancak bu konuda değil. –

+0

Çok teşekkür ederim! – Dimme

+7

@SethCarnegie: ** Asla ** güvenilmeyen kodu çalıştır. – SLaks

2

Bu çatal bomba olduğunu ve sisteminizde o aday olmayacağını. Bir grup işlemin ortaya çıkmasına ve sonuçta sistemin yavaşlamasına veya çökmesine neden olur.