2011-12-05 52 views
10

Xin lỗi vì đã hỏi một câu hỏi chung nhưng điều này đã làm tôi thất vọng trong nhiều ngày.Đoạn mã này hoạt động như thế nào? :() {: |: &} ;:

Một người bạn đã cho tôi đoạn mã này (?) Và sẽ không cho tôi biết nó làm gì, hoặc thậm chí nếu nó là C hoặc bash hay bất cứ thứ gì khác.

Từ giao diện của nó, có vẻ như C với tôi. Mặc dù tôi không hiểu tại sao có : ở hai bên.

:(){:|:&};: 

Mọi manh mối sẽ được đánh giá cao.

+1

Vô nghĩa! Chỉ cần chắc chắn rằng khi bạn thử mã "ngẫu nhiên" từ một nguồn không tin cậy, bạn chạy nó bên trong một máy ảo không nối mạng. :) –

+2

Đó không phải là một người bạn tôi sẽ lấy thêm mã từ ... nếu anh ta bảo bạn làm 'chmod -R 666 /', tôi sẽ không làm điều đó hoặc là –

+0

Tôi đã không chạy nó tất nhiên. Cái nĩa duy nhất bị ném bom ở đây là tâm trí của tôi =) – Dimme

Trả lời

25

Đây là tập lệnh bash shell, không phải C.

Đó là fork bomb.

Wikipedia giải thích nó:

:()  # 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

Tôi thường khuyên bạn nên "Dùng thử và xem" nhưng không nên sử dụng cái này. –

+0

Cảm ơn bạn rất nhiều !!! – Dimme

+7

@SethCarnegie: ** Không bao giờ ** chạy mã không đáng tin cậy. – SLaks

2

Đây là một quả bom ngã ba và tôi sẽ không chạy mà trên hệ thống của bạn. Nó sẽ gây ra một loạt các quá trình để sinh sản và cuối cùng làm chậm hoặc sụp đổ hệ thống của bạn.

Các vấn đề liên quan