تحديد وقت البدء أو التشغيل لبرامج التقييم في C# وWindows

StackOverflow https://stackoverflow.com/questions/3807129

سؤال

هل هناك أي طرق جيدة للحد من عدد المرات التي يمكن فيها بدء تشغيل التطبيق أو تحديد المدة التي يمكن استخدامه فيها ضمن Windows 7 واستخدام C#؟

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

أريد تجنب الحاجة للاتصال بالإنترنت.أي.لا أريد أن يطلب البرنامج الإذن للبدء في كل مرة باستخدام التجزئة، وما إلى ذلك.

أرى أنظمة ترخيص تابعة لجهات خارجية تتمتع بهذا النوع من الوظائف.إذا كان تنفيذ هذه الأساليب دائمًا ضعيفًا، فكيف يتم ذلك حتى لا يكون ضعيفًا؟

ملحوظة:لا أريد "اختراق" نظام طرف ثالث.لدي بالفعل نظام الترخيص الخاص بي وأريد تحسينه.الأفكار العامة والمعقولة هي كل ما أبحث عنه.

شكرا، آندي

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

المحلول

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

ومع ذلك ، فإن الأشخاص الذين يرغبون في كسر برنامجك ليسوا عملائك ، لم يكونوا أبدًا ، ولن يكونوا أبدًا. إذا جعلت نظام الحماية الخاص بك قابلاً للاستخدام (وليس هناك نظام حماية غير قابل للكسر) ، فإن هؤلاء الأشخاص لن يستخدموا برنامجك وسيجد بعضًا آخر يمكنهم كسره.

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

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

نصائح أخرى

إن إنشاء نظام آمن نسبيًا وبسيط لترخيص البرامج ليس بالأمر السهل على الإطلاق.وغني عن القول أن أي نظام (بخلاف استضافة التعليمات البرمجية على خوادم آمنة) يمكن أن يتعطل إذا توفر ما يكفي من الموارد والوقت.أفضل ما يمكنك فعله هو بذل الجهد اللازم للقيام بذلك بشكل أكبر من متوسط ​​الفائدة.

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

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

ما يمكنك فعله هو أشياء مثل:

  • قم بتخزين قيمة مشفرة لعدد الأيام التي تم استخدام النظام فيها - وهي قيمة لا يمكن التراجع عنها أبدًا.
  • قم بتخزين عداد مشفر تقوم بتخفيضه نحو الصفر في كل مرة يتم فيها استخدام النظام.
  • قم بتخزين قيمة مشفرة لآخر تاريخ/وقت تم فيه تشغيل البرنامج.
  • قم بتخزين تجزئة مشفرة للقيم الثلاث الأخرى.

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

استخدم السجل ولكن تشفير الإدخال مع تاريخ انتهاء الصلاحية. إنها ليست مضمونة لكنها ستبقي 75 ٪ من الغشاشين غير الرسميين.

بعض الحيل الأخرى:

  1. قم بتخزين عدد الأيام المستخدمة أيضًا (ربما في مفتاح REG آخر أو في مكان مختلف تمامًا) ، لذلك إذا قاموا بتراجع الساعة ، فإن عدد الأيام المستخدمة تظل كما هي.
  2. استخدم بعض أشكال الملح في التشفير الخاص بك ، لذا فإن برنامجين لهما تاريخ EXP لهما قيم مختلفة.
  3. ابتعد عن الأشياء السيئة حقًا مثل الكتابة إلى قطاع التمهيد في HD (انظر إليك أدوبي) سوف تفقد المزيد من المستخدمين من القيام بهذه الممارسة أكثر مما ستكسب من DRM.

مفتاح أي نظام مضمون هو أنه لا يمكنك الوثوق بأي شيء يتحكمون فيه. أي نظام ليس لديه فحص للإنترنت لا توجد طريقة يمكنك منعه من إعادة تحميل VM.

ألاحظ وجود اتجاه لبعض برامج المثبتين الذين يقومون بتنزيل العملاء بمفردهم لبقية البرنامج. هل يمكنك استخدام برنامج Meta-Programming لإرسال قابلة للتنفيذ يقوم بالتحقق من شيء غامض مثل (أدخل الشيء الغامض هنا)؟

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