Pro
./عضو جديد


السمعة:
- إنضم31 ديسمبر 2023
- المشاركات 3
- مستوى التفاعل 29
- النقاط 13
السلام عليكم ورحمة الله وبركاته
أما بعد
رجعنالكم مرة أخرى يا شباب
بس النهارده الموضوع غير , النهارده هنخش في العميق
بس قبل ما أبدأ أنا غير مسؤول عن إنك تستخدم الحاجات دي في حاجة تضر بيها شركة أو شخص أو منظمة
بس قبل ما أبدأ أنا غير مسؤول عن إنك تستخدم الحاجات دي في حاجة تضر بيها شركة أو شخص أو منظمة
بسم الله نبدأ
العناصر الي هنشرحها النهارده
1 - ماهو ال Process وما هي مكوناته ؟
2 - ماهي الThreads ؟
3 - مكونات Windows Architecture ؟
4 - Memory Managment
2 - ماهي الThreads ؟
3 - مكونات Windows Architecture ؟
4 - Memory Managment
أولاً ماهي ال Process؟
الProcess هي ما تسمى بالعملية وهو جدول يحتوي على عدة أشياء منها :
1 - Threads
2 - Private Handle Table
3 - Private Address Space
4 - Access Token
يلا بينا نتكلم وحدة وحدة وشوف الحاجات دي بتعمل ايه أو ما هي فائدتها
1 - ال Threads - الي تشغل البرنامج من الأساس مش ال Process يعني ال Threads هي الي بتشغل البرنامج وبتشغل أكواد البرنامج
2 - ال Private Handle Table - هذا جدول بيحمل جميع ال Handles المربوطة بين البرنامج والkernel
3 - ال Private Address Space - جدول برضو بيحمل معلومات ال Process زي المتغيرات , الدوال
4 - ال Access Token هذا Token- أو رمز بيحمل صلاحيات اليوزر المستخدم لهذا البرنامج ومحتويات جداً كثيرة تقدر تبحث عنه في صفحة Microsoft
واديني كدا يباشا خلصنا أول حاجة وهي ال Process
ثانيًا ما هو ال Thread ؟
ال Thread : بختصار هو ما يدعو بالخيط وهو الشيئ الذي يقوم بتشغيل الكود الخاص بك فقط لا أكثر ولا أقل
ثالثًا مكونات ال Windows Architecture :
وهنا هحكي عن أهم الأشياء وتحتوي على :
1 - ال User Processes وهي عبارة عن المهام الشغالة داخل نظام الWindows مثل ال Discord, Google Chrome , microsoft Edge وهكذا
2 - ال Subsystem Dll's وهي عبارة عن ال DLL المستخدمة من قبل النظام مثل user32.dll , kernel32.dll
3 - وهي من أهم الأشياء ال NTDLL.DLL أو ال Native Api وهي من خلالها بنوصل إلى ال Kernel Mode ليه لأننا في المستقبل بنعرف إنها تستخدم ال Syscall وهذا يستخدم للوصول إلى Kernel Mode
طب هتقولي ازاي بتعرف أن العملية دي مثلاً خاصة بصنع الملف أو العملية دي خاصة بصنع حدث معين .. عن طريق ما يسمى بال SSN أو ال Syscall Service Number وهي رقم الخدمة داخل ال Syscall
وتم بحمد الله إنهاء هذه الفقرة
رابعًا واخيرًا Memory Managment :
أول حاجة لازم نعرفها أن ال Processes متقدرش تتعامل مع ال Physical Memory
فيكون في وسيط مابين ال Process وال Physical Memory وهو ال Virtual Memory
طبعاً ال Virtual Memory ممكن تتصنع من ال Physical Memory أو ال Hard Disk
طيب عندنا في حاجة اسمها Page وهي نقطة الوصول الي بتحددها ال Virtual Memory الخاصة بال Process عشان نبدأ نشتغل عليها
طيب أنا عاوز أعرف حجم الصفحة دي أو نقطة الوصول ؟
حجمها بيكون 4 كيلوبايت للصفحة الواحدة
وعندنا 3 أنواع من ال Paging :
1 - Free - وهي معناها نقطة الوصول الفارغة أو لا يوجد عليها نقطة وصول ( قابلة للاستخدام )
2 - Reserved - وهي معناها أن المنطقة محجوزة وقابلة للاستخدام
3 - Commited - وهي معناها أن المنطقة محجوزة وتم التعامل معها
وعندنا 4 صلاحيات لكل Page وهم :
1 - PAGE_NOACESS - ليس لدينا صلاحيات للوصول إلى هذه الpage
2 - PAGE_READONLY - لدينا فقط صلاحيات القراءة
3 - PAGE_READWRITE - لدينا صلاحيات القراءة والكتابة
4 - PAGE_EXECUTE_READWRITE لدينا صلاحيات القراءة والكتابة والتشغيل
طبعاً أنت هتسألني وهتقولي ايه الي هيحصل لو احنا تعدينا هذه الصلاحيات وجربنا نخش عليها واحنا معندناش صلاحيات - ايه ده مسألتنيش ؟ متسمع وأنت ساكت

انا هحكي عن نوعين من حراس الميموري الجامدين:
الاول DEP أو ال Data Execution Prevention وهي أنه هيوقفك عند حدودك وهيقولك اي أنت عبيط هي وكالة من غير بواب
وكذلك عندنا نوع تاني والي هو ال ASLR والي هو ال Address Space Layout Randomization ونفس الحوار بس بيحمي من حاجة اسمها ال Buffer Overflow وأنت ممكن تبحث عليها بتعمق بس دي فكرة أساسية.
وبس والله أتمنى أن المقال قد نال إعجابك وفي كل مرة هرجع وأقولك
اعمل لايك عشان مهكركش
التعديل الأخير بواسطة المشرف: