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

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

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

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


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


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


Ответы (3)


arrow_upward
3
arrow_downward

Независимо от того, стоит ли эта проблема затраченных усилий, вы можете проверить время доступа к вездесущим файлам (например, /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

arrow_upward
1
arrow_downward

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

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

person Tim Pietzcker    schedule 31.01.2010

arrow_upward
0
arrow_downward

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

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

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

person dmeister    schedule 31.01.2010