منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[نقاش] كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : [نقاش] كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ (/showthread.php?tid=13362)



كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ - عبد الله - 27-09-15

السلام عليكم ورحمة الله وبركاته

القصة كما يلي ( طبعاً مثال توضيحي ) :

لدي برنامج يعمل في شركة ما والشركة وضعت البرنامج على مجلد مشاركة ليتم العمل عليه بعدة أجهزة إلى الآن الأمور طيبة

السؤال الأول: طبعاً يمكن لأي أحد أن يأخذ نسخة من البرنامج فهل يمكن لأحدهم أن يعدل على البرنامج بواسطة الهندسة العكسية ؟

السؤال الثاني : في حال تم التعديل على البرنامج، كيف يمكن التحقق من ذلك برمجياً دون التدخل مني يعني ما الفكرة التي من خلالها أعرف أنه تم التعديل على البرنامج ؟ هل يكون ذلك بواسطة برنامج آخر يعمل بنفس الوقت وما الذي سأتحقق منه ؟

طبعاً يوجد حل سهل وسريع في وضع صلاحيات على المجلد بعدم ( لصق ) اي شيء ومنع ذلك ولكن لو أني فتحت مسألة صلاحيات المجلد كيف يمكن حماية البرنامج من العبث من قبل أفراد يريدون أخذ صلاحيات بالبرنامج من خلال هذه الطريقة ؟

هل من أفكار ؟


RE: كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ - عبد الله - 27-09-15

(27-09-15, 02:45 AM)khodor1985 كتب : السلام عليكم أخي العزيز ورحمة الله وبركاته
ماذا تقصد بالتعديل على البرنامج؟
هل تقصد مثلا البرنامج نفسه دون قاعدة البيانات أم كلاهما معا؟

وعليكم السلام ورحمة الله وبركاته

حياك الله أخي ، ما اقصده هو التعديل على شفرة ( code ) البرنامج وإعادة بناءه من جديد من خلال تعطيل ميزة أو حذف شرط ما، يكون هذا بأدوات الهندسة العكسية ( حسب ما قرأت هنا وهناك ).


RE: كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ - أبو عمر - 27-09-15

عبدالله
ريح دماغك ما راح تكون اشطر من مايكروسوفت
الامر محزن لكنها الحقيقة !!!


RE: كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ - Sniper.ps - 27-09-15

وعليكم السلام ورحمة الله وبركاته

حياك الله أخي الكريم .. للأسف ومن خلال التجربة برمجيات الـ .Net كسرها من أسهل الأمور على الإطلاق فيكفي أحياناً عكس جملة شرطية لتسجيل البرنامج وجعله مجاني بجميع إمكانياته ويمكنك تعديل ما تريد في البرنامج.

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

الحل المستخدم والعملي الذي أنصحك به هو استخدام الحمايات (Obfuscators) لتشفير Code البرنامج .. طبعاً لا يوجد حماية 100% لكن يمكنك أن تضمن تبعد نسبة كبيرة من مستخدمي أدوات الهندسة العكسية .. وهذه بعض الحمايات المشهورة والقوية

ConfuserEx (مجانية)
Agile.Net
AppFuscator
ILProtector

ويمكنك متابعة الرابط التالي لتتعرف على المزيد من الحمايات المشهورة

https://en.wikipedia.org/wiki/List_of_obfuscators_for_.NET

طبعاً والأفضل من هذا كله .. هو أن تبرمج حماية بنفسك فهكذا ستتخلص من نسبة كبيرة من المهندسين العكسيين .. هنا سيلزمك خبرة في لغة MSIL

وفقك الله



RE: كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ - Adrees - 29-09-15

ماذا عن تحويل المشروع الى مكتبات DLL  قد يحل جزءاً من مشكلة  التعديل على الكود.


RE: كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ - Sniper.ps - 29-09-15

(29-09-15, 12:19 AM)Adrees كتب : ماذا عن تحويل المشروع الى مكتبات DLL  قد يحل جزءاً من مشكلة  التعديل على الكود.

لا يوجد أي فرق .. كلاهما (exe أو dll) يمكن قراءة الـ Code الخاص بهما وتعديل ما تريد



RE: كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ - عبد الله - 29-09-15

(27-09-15, 06:41 AM)أبو عمر كتب : عبدالله
ريح دماغك ما راح تكون اشطر من مايكروسوفت
الامر محزن لكنها الحقيقة !!!

هي المشكلة كلها بترييح الدماغ، يا رجل ميكروسوفت هي وشئنها ونحن وشئننا في برامجنا ^^
في بعض المرات يخطر ببالك بعض المشكلات وتطرحها للنقاش للإستزاده والفائدة ورد أخينا سنايبر خير شاهد.


(27-09-15, 10:00 PM)Sniper.ps كتب :
وعليكم السلام ورحمة الله وبركاته

حياك الله أخي الكريم .. للأسف ومن خلال التجربة برمجيات الـ .Net كسرها من أسهل الأمور على الإطلاق فيكفي أحياناً عكس جملة شرطية لتسجيل البرنامج وجعله مجاني بجميع إمكانياته ويمكنك تعديل ما تريد في البرنامج.

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

الحل المستخدم والعملي الذي أنصحك به هو استخدام الحمايات (Obfuscators) لتشفير Code البرنامج .. طبعاً لا يوجد حماية 100% لكن يمكنك أن تضمن تبعد نسبة كبيرة من مستخدمي أدوات الهندسة العكسية .. وهذه بعض الحمايات المشهورة والقوية

ConfuserEx (مجانية)
Agile.Net
AppFuscator
ILProtector

ويمكنك متابعة الرابط التالي لتتعرف على المزيد من الحمايات المشهورة


طبعاً والأفضل من هذا كله .. هو أن تبرمج حماية بنفسك فهكذا ستتخلص من نسبة كبيرة من المهندسين العكسيين .. هنا سيلزمك خبرة في لغة MSIL

وفقك الله


وفقك الله اخي سنايبر على المشاركة المفيدة ، ولعل كل من يرى الموضوع بلا شك سيستزيد من مثل هذه المشاركات.
أما عن مسألة برمجة حماية بنفسي فهذه تتطلب الكثير من الوقت والجهد، ولعل الاستفادة من برامج التشفير القوية سيحد بلا شك من الكثير من الأضرار الممكن حدوثها.