black007
إداري سابق وداعم للمنتدى (خبير فحص ملفات)
داعــــم للمنتـــــدى
★★ نجم المنتدى ★★
عضوية موثوقة ✔️
كبار الشخصيات
غير متصل
الإخـــــوة الكـــــــــرام ;
أعضــــــار وزوار منتديــــــات زيــزووم للأمـــن والحمايــــة
أسعــد الله يومكـــم بكل خيـر ووفقكــــم لما يحبــه ويرضــاه
نلتقي وإياكــم مع أولى دروس دورة الهندسة العكسية ،
هذا الدرس سيتناول نبذة عن تطبيقات الدوت نت وبنية تكون الملفات المبرمجة بالدوت نت

ولكن قبل الخوض في تفاصيل الموضوع .. توضيح بسيط بخصوص عنونة مواضيع الدورة
كما أشرنا في مقدمة الدورة أن الدورة ستنقسم لـ 3 مراحل رئيسية
دورة الهندسة العكسية || كسر تطبيقات الدوت نت [2:1]
حيث رقم 1 يشير إلى المرحلة الحالية من الدورة
ورقم 2 يشير إلى الدرس الحالي من المرحلة الحالية

للرجوع إلى الموضوع الرئيسي :
المصدر: دورة الهندسة العكسية || كسر تطبيقات الدوت نت
في منتدى : منتدى نقاشات واختبارات برامج الحماية

][ مقدمـــــــة الموضــــوع ][
تعتمد لغات البرمجة مثل ++C و Visual Basic على مترجم خاص (Compiler)
وظیفته تحویل الشفرة المصدریة (Source) إلى ملفات تنفیذیة (Executable files)
و لتشغیل ھذه الملفات نحتاج إلى بیئة تشغیل (Runtime) خاص باللغة البرمجیة التي أنتجتھا
وھذه البیئة تختلف باختلاف نوع اللغة البرمجیة المستخدمة في برمجة الملف .

أما مع الحزمة الجدیدة من لغات البرمجة التي تعمل ضمن بیئة الدوت نت، فقد أصبح الأمر مختلف
، فھي تتبع المنھج التالي في إنتاج و تشغیل تطبیقات الدوت نت
- یحول المترجم الخاص بالدوت نت (Compiler) الشیفرة المصدریة (Source) إلى لغة وسیطة (ذIntermediate Language) و یرمز لھا اختصاراً بـ (IL) و ینتج عنه ملف تنفیذي یحتوي على تعلیمات اللغة الوسیطة
- عند تشغیل الملف التنفیذي السابق تتولى منصة التشغیل العامة (Common Language Runtime) و التي یرمز لھا أختصاراً (CLR) و المضمنة ضمن اطار عمل دوت نت (Net Framework Machine Code) بتحويل هذه التعليمات (اللغة الوسيطة) إلى لغة الألة التي يفهمها النظام ويتعامل معها
- إلى الأن البرنامج لم ينتقل إلى مرحلة التنفیذ و تعرف المرحلة السابقة بـ (Just In Time Compile) و اختصاراً (JIT Compiler)
- بعد ذلك یتسلم النظام تعلیمات لغة الآلة و ینفذھا

][ بنية تكون التطبيقات المبرمجة بالدوت نت ][
تتكون التطبيقات المبرمجة بالدوت نت من عدة أقسام وهي :
- PE Header :
هو القسم الذي يحتوي المعلومات العامة كاصدار البرنامج و معلومات عن الاقسام الموجودة بالتطبيق و نقطة الادخال و تاريخ انتاج التطبيق و معلومات عن اجزاء التطبيق اللازمة كي يعمل بشكل سليم خالِِ من الأخطاء

- Unmanaged Stub :
هذا القسم يحوي على معلومات يحتاجها لودر(Loader) نظام الويندوز كما شرحنا سابقاً كي يقوم بتحميل تطبيق
و من ثمه يقوم لودر الويندوز بالتعرف من خلال الـ PE Header على قسم +COM
فيؤؤل إكمال تشغيل التطبيق الى الـ CLR و هي دلالة مختصرة لـ (Common Language Runtime)
و يتم بها عمليات واسعة من المعالجة و تطبيق عمليات الربط و الكومبايل في وقت الاستخدام
بالاستعانة بمكتبات عديدة و اهمها و هي المسؤولة عن بدء التطبيق ألا و هي Mscoree.dll

- Met a Data :
و هذا الجزء الهام من تطبيقات الدوت نت يحتوي على معلومات هامة عن التطبيق كنقطة ادخاله من نوع Managed و بيانات اخرى يحتاجها الـ CLR ليقوم ببدأ تشغيل تطبيقك

- MSIL Code :
و هو الجزء الرئيسي بكل تطبيقات الدوت نت حيث انه مهما كانت اللغة التي تبرمج بها باستعانة منصة الدوت نت فسيتم تحويل كل اكوادك فيها الى لغة واحدة مشتركة اسمها MSIL و هي اختصار لجملة (Microsoft Intermediate Language) و يتم حفظ كل اكوادك في جزء من التطبيق بصيغة هذه اللغة يتم تفسيرها وقت التشغيل و تحويلها الى اللغه التي يفهمها نظام التشغيل بواسطة الـ JIT التي ذكرناها سابقاً و بمساعدة الـ CLR

- Resources :
يحوي الموارد التي يحتاجها التطبيق من Manifest لتعريف بيئة العمل و اصدار التطبيق و المعلومات عنه و أيقونته

وفي الختـــام نتمنى لكم الإستفادة
راجين من الله أن نكون قد وُفِقنا في إيصال المعلومة للجميع
بشكل مبسط ويسير ، يسهل على الجميع فهمه

التعديل الأخير بواسطة المشرف: