كيف يمكنني صنع منتجاتي كنسخة تجريبية لمدة 30 يوما؟

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

سؤال

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

فهل هناك أي حل لبرنامج الإصدار التجريبي دون التحقق من تاريخ النظام والسماح فقط لمدة 30 يوما من التجربة؟

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

المحلول

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

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

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

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

نصائح أخرى

لدي حل بسيط واحد لك.

خذ 2 متغيرات للسجل: 1. تاريخ 2. عداد

خطوات:

  1. تعيين عداد = 1

  2. نسخ نظام النظام حتى الآن

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

  4. الآن يمكنك التحقق من عداد لعدة أيام التجربة انتهاء الصلاحية

باستخدام هذه الخدعة، إذا قام المستخدم بتغيير تاريخ النظام إلى التاريخ السابق مما يعمل أيضا.

للتسجيل، يمكنك تشفير التاريخ والعداد حتى لا يتعرف الشخص الفني على منطقك!

في صحتك...

وأضاف

فشل هذا المنطق فقط عندما لا يغير المستخدم التاريخ لكل يوم! مرة أخرى لدينا الحل لذلك!

لا أعرف ما إذا كان من الممكن أم لا، ولكن يمكنك دائما الحصول على بعض الحل:

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

يمكنك استخدام مكون الترخيص. يمكنك جعل واحدة نفسك (انظر فئة Licensemanager) أو اشتر واحدا من البائع (على سبيل المثال cryptolicensing.).

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

بطبيعة الحال، يتم تجنب أنظمة ترخيص البرامج مثل هذا دائما من خلال إلغاء تثبيت وإعادة تثبيته مع منعش مناسب للتسجيل - الحيلة تعزز وتكرار معلومات الترخيص بما يكفي لجعل هذا الأمر صعبا، ولكن في النهاية، سيتم العثور عليه (خاصة إذا كنت باستخدام .NET CodeBase غير مفصل).

من الصعب معالجة 30 يوما دون الرجوع إلى تاريخ النظام / ساعة. يمكنك دائما الاحتفاظ بقائمة من التواريخ التي بدأ فيها التطبيق وتحسب 1 في كل مرة كان مختلفا عن آخر مرة. وبهذه الطريقة، سيتعين على مستخدمك تعيين نفس التاريخ في كل مرة أطلقوا فيها تطبيقك.

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

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

إذا كنت تستطيع ضمان اتصال بالإنترنت، فيمكنك تطبيق مخطط عبر الإنترنت (تحقق من خادم الوقت أو خادم المصادقة الخاص بك). بالطبع يقدم اعتمادا آخر - إذا تجاوز الإنترنت، لا يمكن للمستخدمين العمل.

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

قم بتخزين تاريخ التشغيل الأخير، وعندما يكون تاريخ النظام قبل ذلك، تنتهي صلاحية التجربة.

الطريقة الوحيدة الفاعلة الآمنة هي التحقق من صحة التطبيق مقابل الخدمة التي تستضيفها، على افتراض عدم تصدع أحد كود الاتصال الخاص بك؛)

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

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

إنه تاريخ انتهاء تقييم المتجر والتحقق من ذلك كل يوم. لتجنب الاستخدام الممتد حسب التلاعب التاريخ، والحفاظ على عدد ساعة في التطبيق؛ الحفاظ على زيادة وكتابةها إلى التسجيل. يجب أن يتم التحقق مقابل كل من تاريخ انتهاء التقييم وعدد الساعة لا يتجاوز 24 (قد يكون 30 مع بعض Teolrence).

فكر أيضا حول:

إنقاذ DateTime من إغلاق التطبيق، في المرة القادمة التي يكون فيها غداء التطبيق سيكون قادرا على اكتشاف ما إذا تم تغيير إعداد DETETIME أم لا (على الأقل لا يمكنهم تغييره من قبل إلى شيء قبل وقت الإغلاق). مثال :

عند إغلاق التطبيق:

حفظ الوقت => 15:34 03/31/2014 (المحفوظ)

بدءا من التطبيق التالي:

تحقق datime.now> 15:34 03/31/2014. (لذلك لا يمكنهم الذهاب إلى رفع الصوت عاليا ...)

وأضاف:

جرب بطريقة ما لإدماج إعدادات DateTime للنظام في استخدام التطبيق الخاص بك: إنشاء الفواتير أو التذاكر والإيصالات ... أيا كان!

يمكنك استخدام مشروع Libpot المجاني. الموقع https://github.com/libprot/trunk..

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

اكتب سلسلة مثل:

الشركة X | 10.2.2014 | 1.12.2015

حيث 10.2.2014 هو التاريخ الحالي وإذا كان وقت النظام أقل من ذلك، فقد قام شخص ما بتغيير ساعة النظام => يجب ألا نركض

1.12.2015 - حتى ما هو الوقت المفتاح صحيح

واسم الشركة التي اشترت / تم تنزيلها.

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

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

يمكنك إضافة بعض النصي PHP / Java في موقعك لإرسال رموز التجربة تلقائيا.

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