Loading...

BTC Address to donate : [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

zero-cool :: عضو خاص ::
  • شكراً: 70
  • تم شكره 273 مرة في 65 مشاركة

السلام عليكم ورحمة الله وبركاته

إن شاء الله تكونوا في تمام الصحة والعافية إخواني


كود high.c :

كود PHP:

#include<stdio.h>
#include<stdlib.h>

int mulp(int a int b)
{
        
int c;
  
        
b;
 
        return 
c;
}


main(int argcchar **argv)

{

        
int x 00,  0;

        
printf("Enter the first number : "); 
        
scanf("%d", &x);

        
printf("Enter the second number : ");
        
scanf("%d", &y);

        
mulp(x,y);

        
printf("%d*%d = %d\n",xyz);

       
        exit(
0);


بنية الذاكرة الإفتراضية


*) كل عملية (process) تحمل في نفس المكان للذاكرة الإفتراضية بغض النظر عن الموقع الحقيقي للذاكرة الفعلية


*)كل عملية processتشعر وكأنها هي العملية الوحيدة في النظام ، وتتمتع بكامل الذاكرة وكأنه لايوجد عمليات أخرى

*)النظام ووحدة المعالج المركزية يشتركان مع بعضهما في الحفاظ على هذه الفكرة








تذكروا دائما أن هذه هي الذاكرة الإفتراضية (virtual memory ) وليست الذاكرة المادية (physical memory)

كل برنامج يشتغل وكأنه هو البرنامج الوحيد الذي يشتغل في الجهاز وهذا مايفسر لمذا يظهر لنا أن البرنامج يحجز كل الأماكن العلوية والسفلية في الذاكرة وهذا لأن نظام التشغيل لخص لنا طبقة الذاكرة وحذف كل ماهو غير واضح بالنسبة لنا يعني نريد رؤية برنامج في الذاكرة فنراه إلا هو كأنه هو الوحيد فيها .





ASLR
نفتح ترمينال ونشغل السكريبت ثم نتركه هكذا :



تركنا البرنامج هكذا ليبقى في طور التشغيل ونقدر نشوف كيف حيكون شكلو في الذاكرة الإفتراضية .
ثم نفتح ترمينال جديد ونذهب لهذا المسار وتأكد أنك بصلاحية روت .



ثم نفتح الملف maps






نلاحظ أن هذا العنوان 08048000 يمثل أسفل الذاكرة وكنت قد ذكرته في الصورة الأولى تبع الشرح .
أيضا لاحظ أن إنطلاقا من هذا العنوان تزداد قيمة عناوين الذاكرة يعني هو أسفل الذاكرة .

ملاحظة : لا تستوعب الأمور إعتمادا على الأعلى والأسفل تبع الصورة ولكن إستوعبها إعتمادا على الأعلى والأسفل تبع الذاكرة

يعني عندما تشوف صورة توضيحية تبع مكدس أو تبع عناوين الذاكرة دائما ثبت ماهو أسفل الذاكرة وماهو أعلى الذاكرة

فممكن تكون الصورة مقلوبة ومذكور فيها أن أعلى الصورة هو أسفل الذاكرة وأسفل الصورة هو أعلى الذاكرة فتبقى القواعد نفسها ... لكن أنت تظن أنها قواعد أخرى فتختلط عليك الأمور ... دائما ركز على إتجاهات الذاكرة أولا .




الآن نقوم بإيقاف البرنامج ونشغله مرة أخرى ونتبع نفس الخطوات السابقة إلى أن نعرض شكله في الذاكرة :



مقارنة بالصورة السابقة

نلاحظ في الأول أن عنوان أسفل الذاكرة بقي كما هو ولكن بقية العناوين كلها تغيرت حتى عنوان المكدس أيضا تغير .

فلمذا تغيرت ؟ مالذي حصل بالظبط؟

نفتح ترمينال جديد ونذهب على هذا المسار كما في الصورة التالية ونعرض الملف randomize_va_space ونغير قيمته إلى 0



الآن نوقف البرنامج ونشغله ثم نذهب لعرض شكله في لذاكرة كما في الصورة التالية :




الآن نوقفه مرة أخرى ونعيد عرض شكله في الذاكرة كما في الصورة التالية :



نلاحظ أن عناوين المقاطع في الذاكرة بقيت كما هي ولم تتغير وهذا بعدما أوقفنا عملية التوزيع العشوائي لمقاطع الذاكرة الإفتراضية أو (ASLR) وهي حماية للنظام من الهجمات المتعلقة بعناوين هذه المقاطع مثل هجمات البافر أوفر فلو
وجعل هذه الهجامات صعبة التحقق.

وهذا مايفسر لمذا بعض أكواد الثغرات تفشل معنا وذلك لأن العناوين متغيرة من نظام إلى نظام فيجب إيقاف هذا التوزيع العشوائي وتعديل كود الثغرة بالعناوين المناسبة .


وهذا مامعنى كل عملية تحمل في نفس المكان للذاكرة الإفتراضية بغض النظر عن الموقع الحقيقي للذاكرة الفعلية



تحميل :
تحميل | mediafire





في أمان الله

توقيع
مايفعله الهكرز هو معرفة التكنولوجيا وتجربتها بطرق لايمكن ان يتخيلها الكثير من الناس .
ولديهم رغبة قوية في مشاركة هذه المعلومات مع الآخرين
وتوضيحها للاشخاص الذي قد تكون مؤهلاتهم الوحيدة الرغبة في التعلم.

[email protected]
6 أعضاء قالوا شكراً لـ zero-cool على المشاركة المفيدة: