Saya sedang membaca peringatan Forum Ubuntu tentang perintah jahat dan menemukan permata yang menarik ini:
:(){ :|:& };:
PERINGATAN: Kode di atas akan menyebabkan crash mesin Anda kecuali Anda memiliki batas proc ketat (yang mungkin tidak Anda lakukan) yang memicu restart keras.
Pertimbangkan kode ini mirip dengan menjalankan
sudo rm -rf /
.
Tapi apa artinya itu? Bahkan dengan pengalaman pemrograman saya, saya belum pernah melihat perintah yang samar itu bukan bahasa assembly.
sudo rm -rf /
. Perintah itu menghapus semua file Anda; ini hanya menyumbat sumber daya mesin Anda sampai menjadi tidak dapat digunakan dan Anda harus memulai ulang.sudo rm -rf /
adalah lebih berbahaya tapi aku pernah melihat orang mengeksekusi ini pada server remote "hanya ingin melihat apa yang terjadi" di mana Anda memiliki waktu yang sulit restart tanpa akses ke panel kontrol.arbitrary_name(){ arbitrary_name|arbitrary_name& };arbitrary_name
. Nama ini:
tidak hanya membuat perintah ini singkat dan samar, tetapi juga mengubah:
builtin yang tidak melakukan apa - apa menjadi fungsi yang tidak banyak . Jika Anda menyelinap definisi:(){ :|:& }
ke lingkungan orang lain dan membiarkannya tinggal di sana, itu akan menyerang ketika korban mengharapkan itu sedikit .Jawaban:
Seperti yang kau katakan, forkbomb. Apa yang dilakukannya adalah mendefinisikan suatu fungsi, lalu memanggilnya. Fungsi ini disebut
:
.Beri nama
forkbomb
sehingga kita dapat melihat dengan lebih baik apa yang terjadi:Seperti yang Anda lihat, dan mungkin menebak dari pengalaman pemrograman Anda, bagian pertama adalah definisi fungsi (
forkbomb(){ ... }
), dan yang terakhir:
adalah di mana fungsi dipanggil (;
just just memisahkan pernyataan dalam Bash).Sekarang, apa fungsi ini lakukan? Jika Anda terbiasa dengan Bash, Anda akan tahu bahwa
|
karakter mem-pipe output standar dari satu perintah / program ke input standar yang lain. Jadi pada dasarnya,:|:
mulai dua contoh fungsi (ini adalah tempat "garpu").Dan kemudian keajaiban:
&
menempatkan perintah-perintah di latar belakang, memungkinkan fungsi asli untuk kembali, sementara setiap contoh garpu sampai sapi pulang di latar belakang, sehingga menghabiskan semua sumber daya Anda dan mencatat sistem (kecuali jika ada batas dikenakan padanya).sumber
:
, yang sebenarnya menjalankan fungsinya!Diambil dari artikel Wikipedia, Forkbomb :
sumber
Rusak:
Ubah
:
kebomb
dan Anda memiliki:bomb(){ bomb|bomb& };bomb
Benar-benar sangat elegan.
sumber