تلف الذاكرة
يحدث تلف الذاكرة في برنامج الحاسوب عندما يتم تعديل محتويات موقع في الذاكرة نتيجة لسلوك برمجي يتجاوز نية المبرمج الأصلي أو بنية البرنامج/اللغة؛ ويُطلق على هذا اسم انتهاك سلامة الذاكرة . أكثر أسباب تلف الذاكرة شيوعًا هي أخطاء البرمجة (عيوب البرمجيات). عند استخدام محتويات الذاكرة التالفة لاحقًا في البرنامج، يؤدي ذلك إما إلى تعطل البرنامج أو إلى سلوك غريب وغير متوقع. ما يقرب من 10% من حالات تعطل التطبيقات على أنظمة ويندوز ناتجة عن تلف الكومة . [ 1 ]
تتمتع لغات البرمجة الحديثة مثل C و C++ بميزات قوية لإدارة الذاكرة الصريحة وحساب المؤشرات . صُممت هذه الميزات لتطوير تطبيقات وبرامج نظام فعالة. مع ذلك، قد يؤدي استخدامها بشكل غير صحيح إلى أخطاء في الذاكرة.
يُعد تلف الذاكرة أحد أكثر أنواع أخطاء البرمجة صعوبة في المعالجة، وذلك لسببين:
- قد يكون مصدر تلف الذاكرة ومظاهره متباعدين للغاية، مما يجعل من الصعب ربط السبب بالنتيجة.
- تظهر الأعراض في ظل ظروف غير عادية، مما يجعل من الصعب إعادة إنتاج الخطأ باستمرار.
يمكن تصنيف أخطاء تلف الذاكرة بشكل عام إلى أربع فئات:
- استخدام الذاكرة غير المهيأة : تُعامل محتويات الذاكرة غير المهيأة كقيم عشوائية. قد يؤدي استخدام هذه القيم إلى سلوك غير متوقع للبرنامج.
- استخدام الذاكرة غير المملوكة: من الشائع استخدام المؤشرات للوصول إلى الذاكرة وتعديلها. إذا كان هذا المؤشر مؤشرًا فارغًا، أو مؤشرًا معلقًا (يشير إلى ذاكرة تم تحريرها بالفعل)، أو إلى موقع ذاكرة خارج حدود المكدس أو الكومة الحالية ، فإنه يشير إلى ذاكرة لا يمتلكها البرنامج في ذلك الوقت. يُعد استخدام هذه المؤشرات عيبًا برمجيًا خطيرًا. عادةً ما يتسبب الوصول إلى هذه الذاكرة في حدوث استثناءات في نظام التشغيل، والتي غالبًا ما تؤدي إلى تعطل البرنامج (إلا إذا تم استخدام برنامج مناسب لحماية الذاكرة).
- استخدام ذاكرة تتجاوز المساحة المخصصة لها ( تجاوز سعة المخزن المؤقت ): عند استخدام مصفوفة في حلقة تكرارية مع شرط إنهاء غير صحيح، قد يتم التلاعب بالذاكرة خارج حدود المصفوفة عن طريق الخطأ. يُعد تجاوز سعة المخزن المؤقت أحد أكثر عيوب البرمجة شيوعًا التي تستغلها فيروسات الحاسوب، مما يُسبب مشاكل أمنية خطيرة (مثل هجوم العودة إلى مكتبة libc ، وحماية تجاوز سعة المكدس ) في البرامج واسعة الانتشار. في بعض الحالات، قد تصل البرامج أيضًا إلى الذاكرة بشكل غير صحيح قبل بدء المخزن المؤقت.
- إدارة الذاكرة المكدسة المعيبة: تعد تسريبات الذاكرة وتحرير الذاكرة غير المكدسة أو غير المخصصة من أكثر الأخطاء شيوعًا الناتجة عن إدارة الذاكرة المكدسة المعيبة.
تتوفر العديد من أدوات تصحيح أخطاء الذاكرة مثل Purify و Valgrind و Insure++ و Parasoft C/C++test و AddressSanitizer لاكتشاف أخطاء تلف الذاكرة.
انظر أيضاً
مراجع
- ↑ راديتش، كيو؛ شيرر، تي؛ شاركي، كيه؛ باتشيلور، دي؛ كينيدي، جيه تي؛ مابي، دي؛ كولتر، دي؛ مايكل، إس. (28 أبريل 2021). "مدقق التطبيقات (دليل جودة تطبيقات ويندوز 7 وويندوز سيرفر 2008 R2) - تطبيقات Win32" . شبكة مطوري مايكروسوفت . تم الاسترجاع في 9 فبراير 2022 .
روابط خارجية
- دليل إرشادي حول تلف الذاكرة: مقدمة لتقنيات الاستغلال وآليات الحماية
- أخطاء برمجية
- ذاكرة الحاسوب
- ثغرات أمنية في الحاسوب
