سؤال

نحن نخطط لتطوير تطبيق خادم عميل باستخدام C # و MySQL. نحن نخطط لبيع المنتج على الرف مثل أي فائدة أخرى للبرامج. نحن قلقون بشأن إعادة ضغط منتجاتنا التي لديها نوع من الحافة على منافسينا من حيث القدرة على الاستخدام والوظائف المجمعة.

كيف يمكننا منع برامجنا من إزالة الضغط، لذلك لا يزال المنطق التجاري للمنتج سليما؟

سمعنا عن العاكس وغيرها من الرموز التي تجعل كودنا عرضة للغاية للنسخ.

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

أي اقتراح لمنع هذا هو موضع ترحيب كبير.

هل كانت مفيدة؟

المحلول

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

ومع ذلك، فإن هذا الموقف لا يختلف ماديا إلى ما تواجهه إذا كتبت التطبيق في Native C ++. من الممكن دائما إزالة الأشياء - إذا كان من المستحيل، فلن يستطيع المعالج فهمه أيضا.

أنت لن تفعل أبدا هزيمة المكسور الخبراء - سوف يعاملون أمانك كمحيل لغز فكري للتحدي وحده.

يسجد السؤال حول مدى صعوبة هزيمة ممارسات الترخيص الخاصة بك و العودة على الاستثمار.

الجلوس مع جدول بيانات ونظر من خلال السيناريوهات المحتملة - الخطر ربما أقل مما تعتقد.

عوامل مثل "سهولة الاستخدام" مرئية في البرنامج الخاص بك لأي مستخدم لمراقبة - لذلك كنت تعتقد أنه من السهل نسخها. ولكن، تجربة جيدة للمستخدم نادرة (ونادرا ما تم نسخها جيدا)، لأن معظم المطورين (متضمنون بنفسي) لا تشبه المستخدمين النموذجيين.

أقترح عليك التركيز على جعل مهمة التكسير أصعب، لأنك لا يمكنك أبدا جعلها مستحيلة، فقط غير مربحة.

احتمال واحد لمحاولة: من الممكن تجميع التجميعات مسبقا في التعليمات البرمجية الأصلية كجزء من عملية التثبيت. paint.net هل هذا لأسباب الأداء. أعتقد أنه بمجرد القيام بذلك، يمكنك تجاهل التجميعات الأصلية واستخدام إصدارات التعليمات البرمجية الأمثل والأواني الأصلية.

نصائح أخرى

إذا كان الأمر كذلك، فلن أحاول التبويع؛ أود:

  1. لا تقلق بشأن ذلك وتهدف إلى تحسين والبقاء باستمرار في الجبهة

ولكن ثانيا

  1. النظر في توفير الخدمات "السرية" على الويب. الأمر متروك لك لتقرير مدى أهمية هذا الأمر؛ لكنه "يمنع" إلغاء ضغط "، لأن المستخدم النهائي لا يحتوي على التعليمات البرمجية.

جوجل ل .NET Obfuscator. ستجد الكثير من المنتجات التي ستساعد في هذا. أيضا هناك أسئلة ذات صلة طرحها بالفعل في فائض المكدس.

هنا بعض:

تعديل: أثناء البحث عن أدوات إزالة الحسابات، جئت عبر أداة مفتوحة المصدر DE4DOT.. وبعد هذه الأداة تدعم فك ضغط DLLs Obfucated التي تم إنشاؤها بواسطة معظم الأدوات التجارية وهي مهمة جيدة جدا أيضا.

آخر مرة نظرت فيها إلى هذا، Spices.net Obfuscator. بدا وكأنه أفضل شيء في السوق.

لا، أنا لا أعمل من أجلهم. :)

أنا أستعمل smartassembly.. وبعد من السهل الاستخدام ولديها أيضا القدرة على إرسال تقارير التعطل مرة أخرى.

من المحتمل أن يكون Obfuscators آخرون جيدا.

هناك نهج بديل قد لا تكون قد نظرت في كود بعض منطق الأعمال الأساسية باستخدام لغة تجميعها بالكامل لتعمول الجهاز، مثل C ++.

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

على سبيل المثال، قد تؤدي حزمة البرامج الطبية الخاصة بك إلى اكتشاف حافة القول، بعض الغدد لغرض إخبار الطبيب بحجم الغدة المذكورة. سيتم احتواء خوارزمية حساب حجم الغدة من صورة نقطية في DLL مكتوبة في C ++.

للإجابة على سؤالك حول غلاف C ++ حول كود .NET؛ لا أعتقد أنه سيعمل، لأنه عند نشر التطبيق سيكون DLL C ++ النهائي و .NET DLL الذي يحتوي على رمز منطق الأعمال هو كيانات منفصلة والأشخاص الذين يرغبون في الوصول إلى منطق عملك ستظل قادرين على اختيار .NET DLL وخفيفة في الداخل.

قد ترغب في النظر Remotesoft Salamander حاميهذا أفضل بكثير من أي شيء آخر في أنه يجعل من المستحيل فك ضغط اللغة ذات المستوى العالي.

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

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

أتمنى أن يساعدك هذا

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

نحن لم نذهب ل مفاعل .NET على الرغم من أنه يحتوي على المزيد من الضوابط الوقائية حيث كان IntelliLock يخدم هدفنا جيدا بما فيه الكفاية.

يخلط Obfuscator الرمز ولكن الحماية يحمي. يمكنك استخدام واقي .NET: netwinprotector.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top