如何使python程序一次性使用?

时间:2013-07-22 03:17:54

标签: python

无论如何构建一个python程序,使用一次后,该特定程序将无法在任何计算机上使用?如果是这样,怎么样?

请注意,我将把程序编译成.exe,以免让事情变得简单。

5 个答案:

答案 0 :(得分:2)

更新:如果您想运行该程序,请仅禁用该副本?嗯,简单的答案是让程序自行删除。但是,您遇到了复制保护的基本问题:用户可以只创建程序的副本并单独运行它们,甚至在运行程序之前备份他的计算机,然后恢复备份以绕过您可能尝试的任何技巧隐藏文件或注册表设置。最终,你所能做的就是让程序难以运行两次,而不是不可能。


让实际代码在服务器上运行,并让脚本只是向服务器发送一个请求运行程序的请求。服务器可以在第一个之后忽略任何请求。

没有中央服务器?不可能。一个人在他的计算机上运行程序无法在其他人的计算机上禁用该程序,除非程序以某种方式进行通信。即便如此,如果逻辑存在于脚本中,那么简单地禁用检查并不困难。

答案 1 :(得分:2)

不是真的。我可以将脚本加载到虚拟机中,保存机器的状态,然后在每次运行脚本时重置虚拟机。

另外,Py2exe,cx_Freeze,PyInstaller等生成的可执行文件很容易被反汇编到你的原始源代码中,所以有人甚至不需要像虚拟机一样打破它你的限制。

我会把它变成一个webapp并让用户购买访问令牌。该软件完全在您的服务器上运行,因此没有任何东西可以拆解。


如果您不关心安全性,只需在注册表中添加一些密钥,或在运行脚本之前检查AppData中的文件。

答案 2 :(得分:1)

仅使用具有唯一键的URL分发下载程序。将服务器设置为仅允许从授权密钥下载(显然,难以猜测密钥)并在成功下载后禁用密钥。

雇用并设立响应人员,每周7天,每天24小时对那些坚持要再次开始工作的客户做出反应,因为闪电在他们下载完毕后或其他任何事情都会发生。对于邪恶的业力点,与MPAA合作并让他们释放他们对任何此类客户的律师助理攻击猴子。

答案 3 :(得分:0)

好吧,我不懂python,但似乎你需要两个程序。第一个是启动器,另一个 - 你想要只工作一次的主程序 - 由启动器加载,并在启动器本身执行后删除/变形,因此它永远不会再工作。我正在考虑作为一个Windows程序员,因为我用exe-dll对做了...虽然我的回答可能不适用于python。

答案 4 :(得分:0)

python以前有crontab模块https://pypi.python.org/pypi/python-crontab/

也许在你的python脚本结束时你可以得到时间,例如:

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

然后创建一个crontab以在不久的将来执行不同的脚本并覆盖你的python文件。或者在Windows上让python创建一个同样的东西的批处理文件,但是在开始的时候睡觉一段时间,从Python运行批处理文件然后很快,这可能是.py的结束。