2010-01-31 2 views
0

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

Надеюсь, что идея достаточно ясна
python как -generate license-using time module

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


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

ответ

3

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

+0

im using windows64. возможно ли это сделать через окна? –

+1

Ну, 'os.stat (filename) .st_atime' дает вам дату/время последнего доступа к' filename', и это работает и в Windows. Но как только вы получите доступ к файлу с прошлой датой, эта дата затем перезапишет все содержимое, которое было первым. Таким образом, пользователю просто нужно выяснить, к какой статистике файла вы обращаетесь, посмотрите на него, и в следующий раз эта защита будет побеждена. –

1

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

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

0

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

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

Возможно, вам стоит задать вопрос о том, действительно ли эта проблема стоит усилий?