تجربة البرنامج - الحد من عدد مرات الاستخدام [مغلق]

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

  •  14-11-2019
  •  | 
  •  

سؤال

أنا أعمل على إنشاء نسخة تجريبية كاملة الوظائف من البرنامج.الآن، نظرًا لأنني لا أريد فترة زمنية محدودة (مثل تجربة مدتها 30 يومًا) أو تجربة محدودة الوظائف، سيكون من الجيد استخدام "عدد المرات التي يمكن للمستخدم فيها تنفيذ تجربة البرنامج".

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

سوف نقدر حقا المساعدة في هذا الموضوع.

شكرا ، روهان

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

المحلول

الطريقتان العاديتان لتتبع الفترة التجريبية هما باستخدام مفتاح التسجيل وخدمة الويب:

  • مفتاح التسجيل: قم بتنفيذ طريقة ما للاحتفاظ بعدد مرات بدء تشغيل البرنامج في مفتاح في سجل Windows، ربما مع نوع من التشويش.من المحتمل أن يعمل نظام التشفير "المملح"، حيث تقوم بتشفير نظام يحتوي على القيمة الخاصة بك بالإضافة إلى بعض القيم المعتمدة على الجهاز مثل عنوان MAC الخاص ببطاقة واجهة الشبكة (NIC)، بشكل أفضل؛تأكد من صعوبة فك شفرتك باستخدام شيء مثل Dotfuscator.سيكون من الأفضل وضع المفتاح في أماكن باستخدام المثبت، بحيث يمكن للبرنامج ببساطة التعامل مع غياب المفتاح كمحاولة للتلاعب.

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

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

  • خدمة ويب:قم بتنفيذ خدمة WCF على خادم تتحكم فيه.قم بإغلاقه بإحكام، وبالتالي فإن الطريقة الوحيدة للدخول أو الخروج من شبكة LAN الخاصة بك هي من خلال منفذ WCF بالطريقة التي تتوقعها WCF تمامًا.الآن قم بتنفيذ العميل في برنامجك ومثبته.عند التثبيت، سيقوم المثبت باستدعاء طريقة خدمة لإبلاغه بأنه تم تثبيت البرنامج على جهاز بعنوان MAC محدد أو معرف جهاز معين.إذا لم يكن لديك هذا الجهاز الفريد مدرجًا في قاعدة البيانات الخاصة بك، فأضفه؛وإلا فلا تفعل أي شيء.بعد ذلك، عند بدء تشغيل البرنامج، اتصل بخدمة الويب من برنامجك، وقم بإدخال نفس المعلومات، وستقوم خدمة الويب بتحديث عدد مرات البدء، وإرجاع قيمة تخبر العميل ما إذا كان مسموحًا له بالبدء.

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

مهما فعلت، تذكر قاعدة 80/20؛سيتم الحفاظ على أمانة 80% من المستخدمين من خلال الإجراءات الأساسية لتأمين العملية التجريبية.سيجد 20% من المستخدمين طريقة للتغلب على ذلك.ومن بين تلك الـ 20%، فإن 80% منهم سوف يتعثرون بسبب أي إجراء إضافي تتخذه.هذه العملية متكررة.النقطة المهمة هي أن شخصًا ما، في مكان ما، سوف يتغلب على أي إجراءات تتخذها، ولكن إذا استمرت الحسابات الحسابية، فإن 96% من المستخدمين لديك سوف يستسلمون ويدفعون لك مقابل الوصول الكامل عندما يواجهون مفتاح تسجيل مشفر بنظام التحويل وبرنامج غامض شفرة.يمكنك إيصال ذلك إلى 99.2% من المستخدمين عن طريق إضافة أي شيء آخر، مثل تمليح المفتاح المبهم بشيء خاص بالجهاز.

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