فورک بمب ( به انگلیسی: Fork bomb ) ( به معنای بمبی که با انشعاب مکرر فرایندها ایجاد می شود ) یک نوع حمله محروم سازی از سرویس است که در آن یک فرایند به طور پیوسته اقدام به کپی برداری از خودش می کند و به این ترتیب منابع موجود در سیستم را کاهش می دهد، که در نهایت باعث گرسنگی منابع و آهسته شدن یا از کار افتادن سیستم می شود. نحوه کارکرد فورک بمب ها به این صورت است که هم زمان پردازنده را اشغال می کنند و هم جدول فرایندهای سیستم عامل را اشباع می کنند. می توان با ایجاد کردن یک فرایند جدید در یک حلقه بی نهایت به آسانی یک فورک بمب ساده ساخت. در سیستم عامل های مبتنی بر یونیکس، فورک بمب ها عموماً با استفاده از فراخوان سیستمی fork ساخته می شوند. از آنجایی که پروسه های فورک شده خود یک کپی از فرایند اصلی محسوب می شوند، وقتی که اجرایشان از آدرس بعدی در اشاره گر فریم از سر گرفته می شود، آنها هم خودشان یک فرایند جدید که در واقع کپی خودشان است، ایجاد می کنند. به این ترتیب، رشد تعداد پروسه ها تابعی نمایی خواهد بود. از آنجایی که در سیستم عامل های مدرن یونیکس، در حین ایجاد فرایندهای جدید از روش copy - on - write استفاده می شود، یک فورک بمب عموماً حافظه چنین سیستمی را اشباع نمی کند.
در سیستم عامل های ویندوز قابلیتی مشابه فراخوان سیستمی fork ( ) در یونیکس وجود ندارد. در نتیجه برای ایجاد فورک بمب در یک چنین سیستمی، باید به جای کپی کردن فرایند فعلی، یک فرایند جدید ایجاد کرد.
یک فورک بمب ساده به زبان سی: هشدار: این کد ممکن است باعث از کار افتادن رایانه شود.
#include < unistd. h> int main ( void ) { while ( 1 ) fork ( ) ; } متوقف کردن یک فورک بمب پس از آغاز شدن آن کار آسانی نیست. برای این کار باید کلیه کپی های موجود در حافظه از فرایند مورد نظر را بیکباره حذف کرد. یک مشکل این است که با رخ دادن یک فورک بمب و اشباع شدن جدول فرایندها، نمی توان فرایند جدیدی ایجاد کرد، این حرف به این معنیست که نمی توان برای مثال با اجرای دستور kill پروسه ها را از بین برد.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفدر سیستم عامل های ویندوز قابلیتی مشابه فراخوان سیستمی fork ( ) در یونیکس وجود ندارد. در نتیجه برای ایجاد فورک بمب در یک چنین سیستمی، باید به جای کپی کردن فرایند فعلی، یک فرایند جدید ایجاد کرد.
یک فورک بمب ساده به زبان سی: هشدار: این کد ممکن است باعث از کار افتادن رایانه شود.
#include < unistd. h> int main ( void ) { while ( 1 ) fork ( ) ; } متوقف کردن یک فورک بمب پس از آغاز شدن آن کار آسانی نیست. برای این کار باید کلیه کپی های موجود در حافظه از فرایند مورد نظر را بیکباره حذف کرد. یک مشکل این است که با رخ دادن یک فورک بمب و اشباع شدن جدول فرایندها، نمی توان فرایند جدیدی ایجاد کرد، این حرف به این معنیست که نمی توان برای مثال با اجرای دستور kill پروسه ها را از بین برد.
wiki: فورک بمب