. .

شما اینجا هستید

مطالب تصادفی در سایت علمی نخبگان جوان | com.نخبگان

پیغام خطا

User warning: The following theme is missing from the file system: shoma5. For information about how to fix this, see the documentation page. در _drupal_trigger_error_with_delayed_logging() (خط 1156 از /home/javan/domains/njavan.com/public_html/includes/bootstrap.inc).

تشخیص سرریز صف

PDF version
کل آرا: 515
دسته بندی: 
در واقع سرریز بافر و سرریز صف از یک خانواده ی آسیب پذیری بحساب می آیند اما در فرآیند تشخیص دارای تفاوت های بنیادی هستند . هنگامی که شما بخشی از حافظه را به یک صف اختصاص می دهید؛اختصاص دهنده ی حافظه، هدری را قبل یا بعد ( یا هر دو مورد ) بخش محاسباتی حافظه ی شما قرار می دهد. این هدر می تواند برخی از اطلاعات مانند : اندازه ، استفاده شده یا نشده و موارد دیگر را (بسته به نوع تخصیص و نسخه ی آن) را شامل شود.

در واقع سرریز بافر و سرریز صف از یک خانواده ی آسیب پذیری بحساب می آیند اما در فرآیند تشخیص دارای تفاوت های بنیادی هستند .

هنگامی که شما بخشی از حافظه را به یک صف اختصاص می دهید؛اختصاص دهنده ی حافظه، هدری را قبل یا بعد ( یا هر دو مورد ) بخش محاسباتی حافظه ی شما قرار می دهد.
این هدر می تواند برخی از اطلاعات مانند : اندازه ، استفاده شده یا نشده و موارد دیگر را (بسته به نوع تخصیص و نسخه ی آن) را شامل شود.

 

در واقع، اگر شما تخصیص خود را مانیتور کنید، شما می توانید آدرس پایه و اندازه ی مناطق مورد تخصیص خود را معین کنید. سپس، اگر شما تمام دسترسی های STORE و LOAD در حافظه را بررسی کنید، متوجه خواهید شد که یکی در خارج از ناحیه ی تعیین شده اتفاق افتاده است . نمودار زیر، نشان دهنده حافظه و دسترسی STORE ‎/ LOAD به آن است ، رنگ قرمز یک دسترسی نامعتبر است که به آسانی از طریق تجزیه و تحلیل STORE ‎/ LOAD قابل شناسایی است.

در این کد c دو بافر به اندازه ی یکسان اختصاص داده شده اند و با مقداردهی بیش از یک بایت پر خواهد شد.

 

#define BUFF_MAX 128

int main(int ac, const char *av[]‎)
{
  char *buff1, *buff2;‎
  int i;‎

  buff1 = malloc(BUFF_MAX);‎
  buff2 = malloc(BUFF_MAX);‎
  if (!buff1 || !buff2)
    return -1;‎

  for (i = 0;‎ i <= BUFF_MAX;‎ i++) ‎/* off-by-one *‎/
    buff1[i] = 'A';‎

  for (i = 0;‎ i <= BUFF_MAX;‎ i++) ‎/* off-by-one *‎/
    buff2[i] = 'B';‎

  return 0;‎
}

در اینجا ما با فراخوانی تابع malloc نظارت و بررسی را از طریق ذخیره ی آدرس های پایه و اندازه ی بافر برروی کد انجام میدهیم .
زمانیکه یک STORE یا LOAD رخ می دهد ، ما فقط نیاز داریم تا چک کنیم آیا آدرس مقصد در لیست ما هست یا نه . در صورتیکه این آدرس خارج از محدوده ی تعیین شده باشد ؛ احتمال وقوع سرریز زیاد است .

 

$ ../../.‎./pin -t ‎.‎/obj-intel64/OverflowDetection.so -- ‎.‎/test
[INFO] malloc(128)‎ = 1270010
[INFO] malloc(128)‎ = 12700a0
400636: mov byte ptr [rax], 0x41 -- Overflow in 1270090
400658: mov byte ptr [rax], 0x42 -- Overflow in 1270120
$

 

همانطور که مشاهده کردید تشخیص سرریز صف در زمان اجرا به یک مورد کوچک و ساده باز می گردد .
در واقع تشخیص سرریز صف و بافر کاملا با هم متفاوت هستند و در فرصتی مناسب به تشخیص سرریز بافر خواهیم پرداخت .
موفق باشید

نویسنده: علی یزدانی

کلمات کلیدی: 

افزودن دیدگاه جدید

ویژه های سایت

معرفی فناوران به وزارت دفاع

کلیه ی فناوران در حوزه ی صنایع دفاعی از طریق رسانه بر خط نخبگان جوان می توانند به مراکز زیر مجموعه...

کاربینی در صنعت

با توجه به تفاهم نامه رسانه بر خط نخبگان جوان با مراکز صنعتی ، این مرکز نسبت به آموزش و کاربینی...

مشاوره و اخذ استاد راهنما

هسته ی علمی رسانه بر خط نخبگان جوان با بیش از 180 نفر دکترا و اعضای هیات علمی دانشگاه ها و اساتید...

و دیگر خدمات رسانه بر خط نخبگان جوان

معرفی فناوران در تمامی رشته ها به سازمان ها و ارگان های طرف قرارداد رسانه برخط نخبگان جوان ...

طرح وام کم بهره

طرح وام بهره جهت حمایت از طرح های فن آورانه با اولویت IT و مخابرات جهت واگذاری تسهیلات کم بهره به...

معرفی فناوران به وزارت دفاع
کاربینی در صنعت
مشاوره و اخذ استاد راهنما
و دیگر خدمات رسانه بر خط نخبگان جوان
طرح وام کم بهره

نظر سنجی

  • تعداد مقالات: 2,161
  • بازدید امروز : 13494
  • بازدید دیروز: 27918

افراد آنلاین:

420

اکنون ساعت   7:54 am به وقت تهران میباشد.

امروز: سه شنبه 19 آذر 1398

 

بارکد نخبگان جوان کانال تلگرامی نخبگان

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت com.نخبگان مجاز است
استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد
مسئولیت مطالب ارسالی کاربران بر عهده سایت علمی نخبگان جوان نمی باشد

تهیه و تنظیم مطالب: com.نخبگان