تعتبر أداة Reflector من الأدوات المشهورة والمشهورة جدا، هل تعلم أنه من خلال هذه الاداة سيكون بمقدورك وبمقدور غيرك إمكانية الحصول
على كود أي تطبيق أو مكتبة تم بناؤها في .NET، في هذه المقالة سوف نتعرف على كيفة استخدامها وتحميلها.
دعني أخبرك أنه ربما الآن أنه يدور في ذهنك أن .NET ضعيفة, كلامك هذا خاطئ, فلكل تقنية محاسن ومساؤئ، يجب أن تعلم أن تقنية .NET أحدثت ثورة في عالم البرمجيات، ومن إحدى خصائص قوتها أن التطبيق الذي يتم بناؤه في .NET سيكون قابلا للعمل على أي منصة تشغيل (Windows, Linux, …)، كيف حصل ذلك؟؟
إن مهمة المترجم التقليدي في لغات البرمجة بشكل عام (مثل: VB6, C++) هو تحويل كود لغة البرمجة إلى لغة الالة (Machine Code) أي عبارة عن سلسلة من الواحدات والأصفار، ولكن هذا غير صحيح مع .NET إذ أن .NET تقوم بتحويل التطبيقات المكتوبة إلى لغة تدعى MSIL وهي إختصار Microsoft Intermediate Language(لغة تشبه Assembly)، وعند تنفيذ (Execute) البرنامج تبدأ مرحلة أخرى وهي تحويل MSIL إلى لغة آلة يتناسب مع نظام التشغيل الذي تعمل عليه، فإذا كان النظام Windows فسيتم توليد كود يتوافق مع Windows, أما إذا كان النظام Linux فسيتم توليد كود آلة يتوافق مع Linux, وهكذا…
في الحقيقة إن هذه الخاصية أعطت .NET ميزة وسيئة في نفس الوقت، الميزة هي استقلالية التطبيق عن نظام التشغيل كما بينا ذلك سابقا، أما السيئة فهي سهولة إرجاع كود MSIL إلى أصله Source Code، ويعتبر Reflector أحد هذه الادوات التي تسهل عليك هذه العملية.
من خلال هذا الرابط يمكنك الحصول على شرح عن هذه الاداة: http://www.red-gate.com/products/reflector/ ولتحميل هذه الاداة مباشرة: http://reflector.red-gate.com/download.aspx
هذه هي صورة الأداة:

والان من قائمة File ثم الامر Open قم بإضافة أحد برامجك سواء كان exe أو dll، لاحظ الصورة التالية:

والان للحصول على الكود Source Code مثلا للصف MyClass في مثالي، قم بالنقر عليه بزر الفأرة الأيمن لتظهر لك القائمة التالية:

وعند إختيار الأمر Disaaemble ستظهر لك نافذة Disassembler المبينة في الشكل السابق وبالضغط على Expand Methods في نافذة Disassembler الموضحة بالرسم التوضيحي السابق، لتكون عزيزي المبرمج قد حصلت على Source Code لبرنامجي !! لاحظ الشكل التالي:

ولكن إذا كنت من مبرمجي VB.NET فاعلم أنه بمقدروك الحصول على برنامجي بالغتك المفضلة وذلك من خلال القائمة الموجودة في أعلى البرنامج لاحظ الصورة التالية:

وهناك العديد من اللغات الاخرى ومن أهمها IL هو MSIL التي تكلمنا عنه سابقا، لاحظ الشكل التالي:

بل أكثر من ذلك إذ يمكنك الحصول على برنامجي MyApplication كاملا كما لو أن Source Code هو عندك وذلك بالنقر بزر الفأرة الايمن وإختيار الأمر Export… لاحظ الشكل التالي:


كما يمكنك تحميل العديد من الاضافات للبرنامج Add-Ins من خلال الرابط التالي: http://www.codeplex.com/reflectoraddins
ربما تتسائل ألا من حل لهذه المشكلة سأخبرك أنه يمكنك حل هذه المشكلة وذلك باستخدام أداة أخرى تدعى {smartassembly}
وهذا إن شاء الله سيكون أحد موضوعاتنا المقبلة.
مقالة مميزة…عبد الكريم مميز في كل شئ ..مشكور