2013-07-22 3 views
0

Есть ли какой-нибудь способ создания программы python, чтобы после использования ее один раз эта специальная программа больше не использовалась на компьютерах? Если да, то как?Как сделать программу-питон одноразовым?

Обратите внимание, что я буду компилировать программу в .exe, если это упростит ситуацию.

+0

Что бы вы определили как «ту же программу, что и дважды»? –

+0

Скажем, у меня есть файл под названием «PacMan.exe». Я запускаю программу, отлично провожу время, а затем закрываю ее. На следующий день я вернусь к нему и запустил его, но программа блокирует мне доступ к игре, как я уже это сделал. – Cisplatin

ответ

2

UPDATE: Если вы хотите запустить программу, отключите только эту копию? Ну, простой ответ заключается в том, чтобы программа удалила себя. Тем не менее, вы столкнулись с фундаментальной проблемой защиты от копирования: пользователь может просто делать копии программы и запускать их отдельно или даже создавать резервные копии своего компьютера перед запуском программы, а затем восстанавливать резервную копию, чтобы обойти любые трюки, которые вы можете попробовать с помощью скрытые файлы или настройки реестра. В конечном счете, все, что вы можете сделать, затрудняет запуск программы дважды, а не невозможно.


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

Без центрального сервера? Здесь нет пути. Один парень, который запускает программу на своем компьютере, не может отключить программу на компьютерах всех остальных, если только программы не взаимодействуют каким-то образом. Даже тогда, если логика находится в скрипте, нетрудно просто отключить проверки.

+0

Я знаю о защите от копирования, но, как я сказал @Blender, я бы предпочел небезопасный способ. – Cisplatin

+0

@Sim: Как сказал Блендер, попросите программу оставить секретную записку для себя где-нибудь, в реестре или AppData или что-то в этом роде. Если он увидит заметку при ее запуске, она может прерваться. – user2357112

0

Ну, я не знаю питона, но, похоже, вам нужны ДВА программы. Первая - это пусковая установка, другая - ваша основная программа, которую вы хотите работать только один раз - загружается программой запуска и удаляется/деформируется после того, как она запускается самой программой запуска, поэтому она больше не будет работать. Я думаю, как программист на Windows, поскольку я бы сделал это с помощью пары exe-dll, хотя ... мой ответ может быть неприменим к python.

2

Не совсем. Я могу загрузить сценарий в виртуальную машину, сохранить состояние машины, а затем перезагрузить виртуальную машину каждый раз, когда я хочу запустить скрипт.

Plus, исполняемые файлы, генерируемые py2exe, cx_Freeze, PyInstaller и т.д. легко разобрать в ваш оригинальный исходный код, так что кто-то даже не нужно будет идти так далеко, как виртуальная машина, чтобы разбить свои ограничения.

Я бы просто сделал это в webapp и попросил пользователей приобрести токены доступа. Программное обеспечение полностью работает на вашем сервере, поэтому им нечего разбирать.


Если вы на самом деле не заботится о безопасности, просто добавить ключ в реестр или создать файл в папке AppData, который проверяется до того, как скрипт запускается.

0

питона используется, чтобы CRONTAB модули https://pypi.python.org/pypi/python-crontab/

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

from datetime import datetime 
str(datetime.now()) 

, а затем создать кронтаб для выполнения другого сценария в ближайшее время и перезапишите свой файл python им rm it. Или в Windows у python создается пакетный файл, который делает то же самое, но вначале спит, запускает командный файл с Python, а затем достаточно скоро, это может быть конец вашего .py.

1

Распределите только загрузчика с URL-адресом с уникальным ключом.Настройте сервер, чтобы разрешить загрузку только с авторизованных ключей (очевидно, сделать ключи трудно угадать) и отключить ключ при успешной загрузке.

Нанять и настроить персонал реагирования, чтобы реагировать 24/7 на клиентов, которые настаивают на том, что им нужно идти еще дальше, потому что молния ударила так же, как они закончили загрузку, или что-то еще. Для злых точек кармы, объединитесь с MPAA и попросите их развязать свои клады обезьян-параличей против любых таких клиентов.

Смежные вопросы