الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حماية الكود من طرق Decompilation & DeAssembly

مغلق
بدأه tareq_storeemail في 10 يناير 2006 · 4 رد · 878 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندما قامت الMicrosoft بانزال بيئة ال.Net الى الاسواق شكلت هذه البيئة نقلة نوعية في لغات البرمجة من ناحية القوة والجودة والامكانيات ولم تكن Microsoft لتقوم بانزال هذه البيئة القوية العاملة على جميع البيئات والنظم لولا ضغط الاتحاد الاوربي والغرامات التي فرضت عليها لوقف احتكار Windows لسوق البرمجيات بعدما اصبحت Microsoft العملاق الذي لاينافس

وبعد طرح هذه البيئة جائت مشابهة لنظام Linux في مبدأ ال Open Source Code وللغة Java في الاعتماد الكلي على مبدأ ال Orient Object Programming اي البرمجة الغرضية التوجه الرائدة في علم البرمجة

لكن التطبيقات عندما تترجم تترجم الى لغة الIL المفتوحة المصدر والمتاحة لجميع المستخدمين عن طريق مايعرف ب ال Reflection الذي يحلل الكود الى اجزاءه الاصلية ولغاته الاصلية والانتقال بين اللغات مثل C# Visual Basic وغيرها

لكن هذا المبدأ اثار استهجانا واسعا بين فئة المبرمجين الذين لم يقتنعو باي حجة طرحتها Microsoft في هذا المجال فتخيل أن تقوم انت بطرح برنامج ضخم ومنافس ويقوم منافسوك في السوق او بعض اللصوص بتحليله و طرحه بنفس الكود لكن باسم اّخر وبجودة منافسة ................ كما أن ذلك يودع الى الابد أمن المعلومات والسرية الشخصية ويفتح الباب على مصراعيه لل Hackers والسارقين ويبدأون بالعبث بمعلوماتك وبحقوق ملكيتك السهلة الاغتصاب

لكن في نفس الوقت طرحت مصطلحات وامكانيات مايعرف بال Obfuscation اي التشويش ويقوم باضاعة منطق الكود خاصتك

ولكن تقريبا يبقا الحال على ماهو تقريبا

أو مبدأ ال COM الذي يقوم باضافة كود Native الى برنامجك الذي يكون شبه مبهم تقريبا

<MethodImpl(MethodImplOptions.InternalCall)> لكنها صعبت طرق استخدامه و هذا ال attribute يقوم بتحويل بعض اجزاء الكود الى اللغة السابقة ال COM

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

#2

لماذا لم تطرح هذا الموضوع في قسم dot net

اذا اراد الله بعبد خيراً فقهه في دينه

((إياكم والغلو في الدين فإنما هلك من كان قبلكم بالغلو في الدين )).

( إن هذا الدين يسر ولن يشاد هذا الدين إلا غلبه فأوغلوا فيه برفق )

( هلك المتنطعون ، هلك المتنطعون ، هلك المتنطعون )

<span style='font-size:14pt;line-height:100%'>طريقة سريعة لحفظ كتاب الله العزيز</span>

<span style='font-size:14pt;line-height:100%'>تعرف على عباقرة الكذب</span>

#3

للنقل لل vb.net

#4
اقتباس
أو مبدأ ال COM الذي يقوم باضافة كود Native الى برنامجك الذي يكون شبه مبهم تقريبا

<MethodImpl(MethodImplOptions.InternalCall)> لكنها صعبت طرق استخدامه و هذا ال attribute يقوم بتحويل بعض اجزاء الكود الى اللغة السابقة ال COM

فكرة غير جيدة بالمرة !!! فبهذه الطريقة لن يستفيد التطبيق من أساسيات الدوت نت مثل الـ Garbage Collector و الـ CLR

رأس الحكمة الإيمان بالله

#5

فكرة ترجمة الكود الى لغة وسيطة ليست جديدة و حتماً ليست من إختراع ميكروسوفت. جافا مثلاً من أشهر اللغات و تعمل بنفس الطريقة. و هي الآن من أكثر اللغات إنتشاراً في في عالم تطبيقات الأعمال و لم يكن هذا العيب أي عائق.

عملية الـObfuscation عملية فعالة جداً في تضييع محاولات إعادة الهندسة. نعم ليست فعالة 100% و لكن عملية الكومبايل الخاصة باللغات المجمعة مثل ++C ليست مضمونة 100% أيضاً. كيف تعتقد أنه يتم عمل الكراك للبرامج المحمية؟

عملية إعادة الهندسة لبرنامج جاهز عملية مكلفة و مطولة و الشئ الوحيد الذي يمكن الإستفادة منه هو الحصول على algorithm معقد لا يوجد سوى في هذا البرنامج. و هذا طبعاً لا ينطبق إلا على تطبيقات متخصصة جداً لا علاقة لها بعالم الأعمال.

هذا الموضوع مغلق.

مواضيع مشابهة