black007
إداري سابق وداعم للمنتدى (خبير فحص ملفات)
داعــــم للمنتـــــدى
★ نجم المنتدى ★
عضوية موثوقة ✔️
كبار الشخصيات
غير متصل
الإخـــــوة الكـــــــــرام ;
أعضــــــار وزوار منتديــــــات زيــزووم للأمـــن والحمايــــة
أسعــد الله يومكـــم بكل خيـر ووفقكــــم لما يحبــه ويرضــاه
نلتقي وإياكــم مع أولى دروس دورة الهندسة العكسية ،
هذا الدرس سيتناول نبذة عن تطبيقات الدوت نت وبنية تكون الملفات المبرمجة بالدوت نت
![yOquCB8.png](http://i.imgur.com/yOquCB8.png)
ولكن قبل الخوض في تفاصيل الموضوع .. توضيح بسيط بخصوص عنونة مواضيع الدورة
كما أشرنا في مقدمة الدورة أن الدورة ستنقسم لـ 3 مراحل رئيسية
دورة الهندسة العكسية || كسر تطبيقات الدوت نت [2:1]
حيث رقم 1 يشير إلى المرحلة الحالية من الدورة
ورقم 2 يشير إلى الدرس الحالي من المرحلة الحالية
![yOquCB8.png](http://i.imgur.com/yOquCB8.png)
للرجوع إلى الموضوع الرئيسي :
المصدر: دورة الهندسة العكسية || كسر تطبيقات الدوت نت
في منتدى : منتدى نقاشات واختبارات برامج الحماية
![rXOvLJb.gif](http://i.imgur.com/rXOvLJb.gif)
][ مقدمـــــــة الموضــــوع ][
تعتمد لغات البرمجة مثل ++C و Visual Basic على مترجم خاص (Compiler)
وظیفته تحویل الشفرة المصدریة (Source) إلى ملفات تنفیذیة (Executable files)
و لتشغیل ھذه الملفات نحتاج إلى بیئة تشغیل (Runtime) خاص باللغة البرمجیة التي أنتجتھا
وھذه البیئة تختلف باختلاف نوع اللغة البرمجیة المستخدمة في برمجة الملف .
![rXOvLJb.gif](http://i.imgur.com/rXOvLJb.gif)
أما مع الحزمة الجدیدة من لغات البرمجة التي تعمل ضمن بیئة الدوت نت، فقد أصبح الأمر مختلف
، فھي تتبع المنھج التالي في إنتاج و تشغیل تطبیقات الدوت نت
- یحول المترجم الخاص بالدوت نت (Compiler) الشیفرة المصدریة (Source) إلى لغة وسیطة (ذIntermediate Language) و یرمز لھا اختصاراً بـ (IL) و ینتج عنه ملف تنفیذي یحتوي على تعلیمات اللغة الوسیطة
- عند تشغیل الملف التنفیذي السابق تتولى منصة التشغیل العامة (Common Language Runtime) و التي یرمز لھا أختصاراً (CLR) و المضمنة ضمن اطار عمل دوت نت (Net Framework Machine Code) بتحويل هذه التعليمات (اللغة الوسيطة) إلى لغة الألة التي يفهمها النظام ويتعامل معها
- إلى الأن البرنامج لم ينتقل إلى مرحلة التنفیذ و تعرف المرحلة السابقة بـ (Just In Time Compile) و اختصاراً (JIT Compiler)
- بعد ذلك یتسلم النظام تعلیمات لغة الآلة و ینفذھا
![rXOvLJb.gif](http://i.imgur.com/rXOvLJb.gif)
][ بنية تكون التطبيقات المبرمجة بالدوت نت ][
تتكون التطبيقات المبرمجة بالدوت نت من عدة أقسام وهي :
- PE Header :
هو القسم الذي يحتوي المعلومات العامة كاصدار البرنامج و معلومات عن الاقسام الموجودة بالتطبيق و نقطة الادخال و تاريخ انتاج التطبيق و معلومات عن اجزاء التطبيق اللازمة كي يعمل بشكل سليم خالِِ من الأخطاء
![yOquCB8.png](http://i.imgur.com/yOquCB8.png)
- Unmanaged Stub :
هذا القسم يحوي على معلومات يحتاجها لودر(Loader) نظام الويندوز كما شرحنا سابقاً كي يقوم بتحميل تطبيق
و من ثمه يقوم لودر الويندوز بالتعرف من خلال الـ PE Header على قسم +COM
فيؤؤل إكمال تشغيل التطبيق الى الـ CLR و هي دلالة مختصرة لـ (Common Language Runtime)
و يتم بها عمليات واسعة من المعالجة و تطبيق عمليات الربط و الكومبايل في وقت الاستخدام
بالاستعانة بمكتبات عديدة و اهمها و هي المسؤولة عن بدء التطبيق ألا و هي Mscoree.dll
![yOquCB8.png](http://i.imgur.com/yOquCB8.png)
- Met a Data :
و هذا الجزء الهام من تطبيقات الدوت نت يحتوي على معلومات هامة عن التطبيق كنقطة ادخاله من نوع Managed و بيانات اخرى يحتاجها الـ CLR ليقوم ببدأ تشغيل تطبيقك
![yOquCB8.png](http://i.imgur.com/yOquCB8.png)
- MSIL Code :
و هو الجزء الرئيسي بكل تطبيقات الدوت نت حيث انه مهما كانت اللغة التي تبرمج بها باستعانة منصة الدوت نت فسيتم تحويل كل اكوادك فيها الى لغة واحدة مشتركة اسمها MSIL و هي اختصار لجملة (Microsoft Intermediate Language) و يتم حفظ كل اكوادك في جزء من التطبيق بصيغة هذه اللغة يتم تفسيرها وقت التشغيل و تحويلها الى اللغه التي يفهمها نظام التشغيل بواسطة الـ JIT التي ذكرناها سابقاً و بمساعدة الـ CLR
![yOquCB8.png](http://i.imgur.com/yOquCB8.png)
- Resources :
يحوي الموارد التي يحتاجها التطبيق من Manifest لتعريف بيئة العمل و اصدار التطبيق و المعلومات عنه و أيقونته
![rXOvLJb.gif](http://i.imgur.com/rXOvLJb.gif)
وفي الختـــام نتمنى لكم الإستفادة
راجين من الله أن نكون قد وُفِقنا في إيصال المعلومة للجميع
بشكل مبسط ويسير ، يسهل على الجميع فهمه
![](https://forum.zyzoom.net/styles/download.png)
التعديل الأخير بواسطة المشرف: