Python, как сгенерировать лицензию, используя модуль времени

Я ищу способ создать (ограниченную по времени лицензию) .so, когда пользователь запускает программу. он должен проверить дату лицензии перед запуском программы.
но проблема в следующем:
я попробовал несколько решений. одним из них является python time.ctime (чтобы проверить время и убедиться, что оно действительно во время действия лицензии), и он возвращает время машины, поэтому всякий раз, когда пользователь хочет использовать программное обеспечение без лицензии, он просто изменит время машина.

я надеюсь, что идея достаточно ясна

любые лучшие идеи?


пожалуйста, сообщите мне, если вам нужно больше объяснений


person Moayyad Yaghi    schedule 31.01.2010    source источник


Ответы (3)


Независимо от того, стоит ли эта проблема затраченных усилий, вы можете проверить время доступа к вездесущим файлам (например, /etc/passwd в Linux) и сравнить его с текущей датой. Если вы видите, что файлы были доступны/изменены в будущем, вы знаете, что есть проблема. Опять же, по крайней мере, в *nix пользователь может заменить статистику системы, так что он "массирует" информацию, которую вы просматриваете.

person Boris Gorelik    schedule 31.01.2010
comment
я использую windows64. возможно ли это сделать над окнами? - person Moayyad Yaghi; 31.01.2010
comment
Ну, os.stat(filename).st_atime дает вам дату/время самого последнего обращения к filename, и это работает и в Windows. Но как только вы получите доступ к файлу с прошлой датой, эта дата перезапишет любой контент, который был там первым. Таким образом, пользователю просто нужно узнать, к какой статистике файла вы обращаетесь, посмотреть на нее, и при следующем запуске эта защита будет побеждена. - person Tim Pietzcker; 31.01.2010

Вы можете получить время из внешнего источника через Интернет: Python Получение даты онлайн?

Конечно, это будет работать только в том случае, если пользователь не блокирует доступ вашей программы в Интернет. И что должна делать ваша программа, когда она не может получить доступ к Интернету? Отказаться бежать? Сомневаюсь, что это хорошая идея.

person Tim Pietzcker    schedule 31.01.2010

Почти каждая стандартная функция возвращает машинное время, которое может быть изменено пользователем.

Одна из возможностей — вызвать веб-службу, которая возвращает «правильное» время. Но это возможно только в том случае, если вы можете предположить доступ в Интернет.

И, может быть, стоит задать себе вопрос, действительно ли эти хлопоты стоят затраченных усилий?

person dmeister    schedule 31.01.2010