Fork bomb nedir?
Fork bomb çalışması durumunda bilgisayarı çokerten bir kötü yazılımdır.*
* Virüs de diyebilirsiniz ama virüs kelimesinin tanımına tam uymadığı için ben bu yazıda kötü yazılım olarak bahsedicem.
İsmi neden fork bomb?
Fork bomb yada kısaca f-bomb ismini çalışma prensibinden almıştır.
"Fork" ingilizcede çatal demektir. Çalışma prensibi de bir nevi çatal şeklini andırdığı için Fork bomb denmiştir.
Peki bu fork bomb nasıl çalışmaktadır?
Önce bir fork bombun en basitinden neye benzediğini gösteriyim.
Bu bash* formatında yazılmış bir f-bomb dur. Ayrıcada f-bomb un en bilindik formatıdır.
Bu koda bakınca büyük ihtimalle pek birşey anlamamışsınızdır. Ama basitce anlatmak gerekirse, program çalıştığı andan itibaren hiç durmadan kendi kopyalarını çalıştırır. Bilgisayar kaldıramayacak hale gelince de zaten bilgisayar çöker. Kötü bir bilgisayarda aynı anda 100 tane minecraft açmakla aynı mantık, ama çok daha güçlü.
*Mac de ve linux da terminal isimli bir program var. Windows daki cmd gibi ama cmd dil olarak dos kullanırken terminal bash kullanıyor.
*Mac de ve linux da terminal isimli bir program var. Windows daki cmd gibi ama cmd dil olarak dos kullanırken terminal bash kullanıyor.
Şu tek satırlık kod nasıl bunu yapabiliyor biraz daha anlatsana.
Size şu kodun ne olduğunu anlatiyim. Anlayabilmek için en azından düşük seviye kodlama bilgisi gerekiyor ama elimden geldiğince basit bir şekilde anlatmaya çalışıcam.
Önce kodu daha kolay anlatibilinicek bir hale getirelim:
bomb() { bomb | bomb & }; bomb
Şimdi de kodu 3 bölüme ayıralım:
1-bomb() {
bomb | bomb& }; bomb
2-bomb() {
bomb | bomb& }; bomb
3-bomb() {
bomb | bomb& }; bomb
1. bölümde "bomb() {};" gibi bir yeri aldım.Burda yaptığımız şey "bomb" adında bir eylem
oluşturduk. Bu eyleme istediğimiz adı verebiliriz. mesela ilk gördüğümüz kodda eylemin adı ":" idi.
Kıvrımlı parantezin içine de bu eylemin ne yaptığını yazıcaz.
2.bölümde ise eylemin ne yaptığına karar veriyoruz. gördüğümüz kod şöyle bişey:
bomb | bomb & şimdi bu kod bize "bomb" eyleminden çıkan bilgiyi "bomb" eylemine yolla benzeri bir kod oluşuyor. hatırladığınız gibi bomb eylemi zaten bu eylemi yapan eylem. Yani kendine bilgi yollayamiyacağı için birtane daha kendinden oluşturuyo ve bu döngü sonsuza kadar gidiyo. Sonda gördüğümüz "&" işareti ise bilgiyi yollayan eski "bomb" un kapanmamasını arka planda çalışmaya devam etmesini söylüyor. Bu sembol olmasaydı her yeni açılan bomb la beraber eskisi kapanırdı.
3. bölümde ise basitce o eyleme çalışmasını sağlıyor. çoğu kodlama dilinde bir eylem kendi kendine çalışmaz, ona çalış demeniz gerekir. Bunu yapmak içinse ismini söylemeniz yeterli.
Peki ben biraz kod dilinden anlarım. Bana başka kod dillerinde bu bombaya örnekler verebilir misin?


Peki bundan korunmak için yapabileceğim bir şey var mı?
Çalıştığı andan itibaren bilgisayarını bir kaç saniye içinde çökerttiği yada dondourduğu için
çalıştıktan sonra pek yapabileceğin bir şey yok. Ama bilgisayarını kapayıp tekrar başlattığında
bilgisayarın gayet iyi bir şekilde çalışmaya devam edicektir.
Kaynak: Wikipedia, ben



Hiç yorum yok:
Yorum Gönder