.Net Reflector لتعديل و كسر البرامج المبرمجة بالـ .Net
كتب بتاريخ: Jan 11th, 2009 | بواسطة: عبدالمهيمن

من مدة ليست ببعيدة بدأت أهتم بالهندسة العكسية وطرق كسر البرامج والتعديل عليها.. عالم ممتع جدا بصراحة وزاد اهتمامي به بشكل كبير في الآونة الأخيرة! تكلمت سابقا عن بعض البرامج والأدوات البسيطة وطريقة استخدامها يمكنكم أن تجدوها في التصنيف Reverse Engineering. اليوم سأتكلم عن برنامج رائع بكل معنى الكلمة يمكّننا من استعراض الكود المصدري وتعديل البرامج التي تمت برمجتها بلغة C# , Visual Basic.Net أو أي لغة برمجة أخرى تعمل باستخدام Microsoft .NET Framework!
شخصيا أرى أن القدرة على تعديل عمل برنامج ما والتغيير فيه دون وجود الكود المصدري يعتبر تحدي بحد ذاته لا يختلف كثيرا عن الاختراق والتحدي باختراق شبكة أو سيرفر ما على سبيل المثال. لكن ليس لكسر البرامج وصناعة الكركات فكما قلت سابقا هذه ليست غايتي من تعلّم الهندسة العكسية لأني أؤمن أن استخدام البرامج المفتوحة المصدر أو المجانية وشراء البرامج التجارية في حال لم يتوفر بديل قوي أفضل بكثير من استعمال البرامج المكسورة الحماية! الأمر ليس صعب والبرامج المجانية/المفتوحة المصدر ليست سيئة كما يعتقد البعض كل ماهنالك أنك ستحتاج لبعض الوقت حتى تنتقل من البرامج التي تستخدمها الى أخرى مجانية بدأً من أصغر برنامج تستخدمه وصولا لنظام التشغيل! (شخصيا مازلت أحاول ذلك بالنسبة للبرامج التي أستخدمها أثناء عملي على نظام Windows وأفكر جدّيا باعداة تنصيب النظام واعتماد البرامج الحرّة بشكل نهائي!)
شرحت البرنامج بالفيديو هذه المرة وتم الطبيق على برنامج بسيط قمت ببرمجته بلغة C#:

يطلب منا البرنامج ادخال الرقم السري كما هو موضح بالصورة السابقة. اذا كان الرقم الذي قمنا بادخاله صحيح ستظهر العبارة TRUE باللون الأخضر أما اذا كان الرقم خاطئ ستظهر العبارة WRONG باللون الأحمر! المثال بسيط جدا لكنه يظهر فكرة عمل البرنامج وهذا هو المهم أما ما يجب علينا عمله هو معرفة الرقم السري أو جعل البرنامج يأخذ جميع الاحتمالات! سأستخدم مع البرنامج اضافة تدعى Reflexil لتمكننا من التعديل على البرنامج الذي نريد لأن البرنامج الأساسي يمكّننا من رؤية الكود المصدري فقط.
تحميل BH-dotNet Crack Me | الاصدار الذي تم تعديله
بكل تأكيد الفيديو لا يوضح جميع امكانيات وميزات البرنامج ويمكننا عمل وتعديل الكثير من الخيارات في البرنامج لم أتطرق لها بالاضافة لوجود العديد من الاضافات الأخرى يمكننا تحميلها وتجربتها فكل اضافة تضيف امكانيات وميزات جديدة للبرنامج.
موقع البرنامج | صفحة التحميل | تحميل الاضافات | اضافة Reflexil
أتمنى أن يكون الشرح قد نال اعجابكم واستخدام موفق ان شاء الله
دمتم بود.. أخوكم Br4v3-H34r7.













سلمت يداك يا عبده
عالم الهندسة الهكسية جميل و يجب أن نبحث فيه عن الجانب الجيد .. قد يكون موضوعا للنقاش لاحقا
بصراحة عندما نويت أن أدخل هذا المجال نزلت دورة عنها لكن للأسف تراجعت لثلاث أسباب
1/ إنشغالي بعالم الشبكات و الأنظمة حيث متعتي تكمن هناك
2/حصل خطأ أدى إلى مسح البارتشن اللذي أمتلك كل معلوماتي عليه (160جيجا)
3/إحتكاكي بأكد الأشخاص المعروفين في منتديات البرمجة العكسية و وجدت منه طريقة كلام لا تليق بأهل العلم فعرفت أنه في الشبر الأول من العلم.
سلمت يداك يا عبده
يعطييك الف عافيه
وجإأزك الله الف خير
لمحبتك للخير ونشر العلم
نفع الله بك المسلمين
زأإدك الله علم
موفق !
بارك الله فيك أخي عبدو

موضوع رائع في القمة كما عودتنا دائما ، وبرنامج مفيد جدا خصوصا لمن يريد أن يطور مهاراته في البرمجة ويطوع البرامج لتناسب ما يحتاج إليه ، ولكن البرامج المفتوحة المصدر تبقى الحل المتكامل لنا جميعا فلا تحتاج لا لبرنامج و لا لأي شيء فالكود المصدري أمامك ، عدل ما تريد .
دمت بود أخي عبدو و السلام عليكم ورحمة الله تعالى وبركاته .
فعلا برنامج قوي وتجربة ممتعة ومفيدة
ولك جزيل الشكر
السلام عليكم ورحمة الله وبركاته
هذا الأمر فكرت فيه فعلياً … عندما صدرت mono-project فتستطيع تشغيل برنامج عليها وكشف كل الأمور التي يستدعيها .. هذا بالنسبة للـ.net وبالطبع،، البرنامج أصلاً كله يعمل بواسطه mono-project فبذلك تستطيع تتبع حتى جملة For وIF! لكن هذه كانت مجرد فكرة ولأن خبرتي صفر بهذا المجال فلم أحاول التعمق به ^^.
والظاهر هنا أن البرنامج حل الأمر كله!
مشكور ما قصرت
ان شاء الله لا فضيت اجربه
السلام عليكم.
, والأمر الذي اعتبره جانب مهم في مجال الهندسة العكسية و الذي يأخذ نصيب الأسد عند الغرب ،هو تحليل البرامج الضارة و إكتشاف الثغرات فتخيلوا صعوبة التعامل مع الفيروسات اذ لم يتم هندستها عكسيا ومعرفتها من الداخل،وما يثبت هذا القول مجمعات Recon .
بارك الله فيك اخي على هذه المواضيع التي تساهم في رفع المستوى العربي الذي اصبح كما نراه اليوم *** .
لدي ملاحظة فقط فيما يخص معنى كلمة الهندسة العكسية،قبل ان أبدأ الحديث فأنا اتحدث هنا عن المفهوم العام لدى الكثيرين ولست اقصد الموضوع بأي نقطة من النقاط.
الكثير من الناس يظن ان الهندسة العكسية هي عمل كراكات لبرامج وهي انتهاك لخصوصية المبرمجين ويعتبرونها عملية غير شرعية وهنالك طرف آخر غلب جانب كسر البرامج وايجاد الأرقام التسلسلية الخاصة بها على معنى كلمة الهندسة العكسية.
لذلك اقول ان “Software Cracking” هو جزأ يسير من الهندسة العكسية فهنالك من يستخدم الهندسة العكسية في تطوير افكار وهنالك من يستعملها اثناء تنقيح برامجه اذا صادفه خطأ ولم يجد له تفسير ، وهنالك من يستعملها في فتح المصادر
ومن هذا المنطلق نجد ان الهندسة العكسية سلاح في يد Security professional ،وأنها لا تنحصر في معنى ضيق جدا وهو كسر البرمجيات.
آسف اخي على مداخلتي الطويلة.
ارجو الانتباه لتعليقي..
يوجد شيء ناقص بالمواضيع ولا نراه اطلاقا… الا و هو التشفير من الحمايات … ليس بطرق العامة اخي عبدو بل بالطرق الاحترافية و طبعا الهندسة العكسية جزئ منه
تحياتي
شرح جميل وواضح
بالتوفيق يا اخي
السلام عليكم
اشكرك على ما لهذا الموضوع من اهمية وبعد قراءة الموضوع ظهر فى نفسى سؤال
هل لا يوجد طريقة تحمى الكود اذا كتبته فى احد لغات الدوت نت؟؟
اعتقد لو هناك طريقة للحماية يكون الموضوع حقق هدف اكبر
شكرا
جزاك الله خير
عملو برامج لكسر ملفات .classللجافا ثم آأخر لكسر ال.net وتبقت السي++ ربنا يستر
أفضل شيء لحماية برامجك من هذه البرامج أستخدام الدنغل وبأحتراف بحيث تعقد من يريد كسر البرنامج وتجعل مهمة كسره أعقد من كتابته كاملاً
وربنا يوفقك
أهلا بالجميع
قرأت جميع التعليقات ويسعدني وجودكم.. سأرد على البعض فقط اختصارا للوقت.
@DATA_SNIPER: كلامك صحيح أخي
ولقد وضحت بعض من هذه الأمور في المواضيع السابقة لكن شيء لاخلاف عليه هو أن الهندسة العكسية للبرامج عملية غير شرعية ان كانت بغرض تعديل عمل البرنامج أو صنع كراك له (كلامي على البرامج المغلقة المصدر طبعا!!) لكن كما قلت يمكننا استخدمها بشكل مفيد في تحليل الفايروسات وبرامج التجسس!
@محمد: عفوا لكن ماعلاقة تشفير الباتش من الحمايات في هذا الموضوع!! يا أخي الهندسة العكسية مثل الاختراق عالم كبير وماتتكلم عنه هو تغيير الـ EP الخاص بالباتش لكي لا يكتشفه الأنتي فايروس أما نحن نتكلم عن كسر وتعديل البرامج المبرمجة باحدى لغات الـ .Net!!
@د/أحمد شولح: وعليكم السلام.. الهندسة العكسية موجودة من مدة طويلة ويمكن تنفذها على أغلب البرامج لكن في لغات البرمجة مثل الـ .NET ولغة الـ JAVA أصبح الأمر أسهل وأكثر فعالية بسبب وجود وسيط (ان صح التعبير) بين البرنامج والنظام. أما الحلول فهي موجودة لكني بالعادة لا أحب طرح الاثنين معا.. أضع المشكلة مثلا ثم نناقشها ونبحث عن حلول بعد نضع الحلول وطريقة الحماية هذا يحقق الفائدة للجميع على كل حال يكفي أن تبحث في Google عن .Net Obfuscator لترى العديد من البرامج التي تقوم بحماية البرنامج.. لا أعلم مدى فعاليتها بصراحة لكن حسب ماقرأت لا يوجد حل نهائي!
@abuoof: أخي وضحت السبب في ردي على الأخ د/أحمد شلوح مع العلم أن حتى لغة الـ CPP أو أي لغة برمجة أحرى يمكننا عمل هندسة عكسية لها لكن باستخدام أدوات مختلفة وبالاعتماد على لغة Assembly أما الحماية باستخدم دنغل لا أتوقع أنها فعالة أضف الا ذلك عدم قدرة الجميع على تنفيذه.. الأفضل من ذلك برمجة الأجزاء الحساسة من البرنامج باستخدام لغة CPP مثلا ودمجها مع برنامج .Net بشكل مكتبات DLLهذا سيصعب الأمر أكثر لكن في الهندسة العكسية لايوجد شيء مستحيل فأكبر البرامج والأنظمة تم كسر حمايتها وصناعة كراك لها!
يعطيك الف عافيه عبدو
ولله يوفقك ويحميك لأهلك
بصراحة الهندسة العكسية روعة ومتعة بحد ذاته
بس بدها شوية صبر
مشكور عالبرنامج والشرح
مدونة ولا اروع
أخي لماذا الدنغل غير فعال !
لو قمت بأستخدام الدنغل بالطرق القياسية فسيصبح فاشل أما أن جعل البرانامج مربوط به وأجزاء منه عليه أعتقد أنه سيصعب كسره بصراحة لم استخدمه ولكن قرات وشرح لي عنه
هناك طريقة أقوي هي ربط البرنامج بالهاردوير الخاص بالجهاز كرقم البروسيسور قام بها أحد زملائي لا ادري كيف مشكلتها أنك ترغم المستخدم علي أستخدام جهاز معين
بالنسبىة للسي++ ما أقصده أنتاج برنامج يرينا اكود المصدري للبرنامج كما يحدث مع .net
وأخيراً كلما تعددت نقط الحماية قوية الحماية يعني لو الحماية في الباسورد فقط تبقي فاشلة
وآسف علي الأطالة
السلام عليكم ،،
شكرا على هدا الدرس الرائع ،،
لدي سؤال ! ،، انا قررت البدأ بتعلم الهندسه العكسيه ،، هل بامكانك ان تقول لي البدايه الصحيحه لبدأ في تعلمه ،،
مثلا ابدأ بتعلم الـassembley مثلا .