限制python程序的执行次数

限制python程序的执行次数,python,Python,你好 我用python2.6编写了一个程序,并用py2exe转换成exe。 我希望这能限制考试的次数 用户可以使用,然后使用计数器或库阻止。 有什么想法吗?一个已编译的二进制文件不能(轻松地)修改自身来跟踪类似的内容。您必须将计数器写入注册表或某些web API,并在应用程序(可执行文件)启动时检查该计数器 请记住,这不会阻止某些人绕过计数器——只是一个临时用户。将开始次数写入文件并检查它 如果你想要一种100%安全的方式来阻止用户启动你的应用超过15次,那么你不应该发布它。这是确保用户启动次数

你好 我用python2.6编写了一个程序,并用py2exe转换成exe。 我希望这能限制考试的次数 用户可以使用,然后使用计数器或库阻止。 有什么想法吗?

一个已编译的二进制文件不能(轻松地)修改自身来跟踪类似的内容。您必须将计数器写入注册表或某些web API,并在应用程序(可执行文件)启动时检查该计数器


请记住,这不会阻止某些人绕过计数器——只是一个临时用户。

将开始次数写入文件并检查它

如果你想要一种100%安全的方式来阻止用户启动你的应用超过15次,那么你不应该发布它。这是确保用户启动次数不超过15次的唯一有效方法


理由:任何优秀的黑客只要在乎,都可以在几分钟内解除你的保护。普通用户不知道从哪里开始。因此,您可以轻松获得良好(99%)的保护,或花费大量精力获得99.5%的保护。

将计数存储在注册表中,或将其与程序一起写入文件。不过,对于最终用户来说,这两种方法都很容易修改,除非您设法加密计数文件

由于它是py2exe中的一个.exe,如果使用AES加密之类的东西,并使用存储在可执行文件中的字符串密钥对其进行加密/解密,则至少会有一个较低的屏障。有进取心的用户仍然可以通过从可执行文件中提取密钥来解决这个问题

或者,您可以让您的程序调用您控制的服务器,并在您自己的数据库中增加其使用计数


对我来说,这些都不是一个很好的答案,只是提供一些想法。

你可以做这样的事情,非常简单,比如:

import os
import sys

COUNT_FILE = os.path.join(SOME_PATH, '.myprog.count')
if not os.path.exists(COUNT_FILE):
    num = 0
else:
    f = open(COUNT_FILE, 'r')
    num = int(f.read())
    f.close()

if num+1 > 3:
    print >>sys.stderr, "You have exceeded your %d uses"%(num,)
    sys.exit(0)

num += 1
f = open(COUNT_FILE, 'w')
f.write(str(num))
f.close()
但是,如果您试图为某种“试用版”执行此操作,则此技术很容易失败。我想很多Windows程序都会在注册表中存储这样的计数器


如果你问如何修改你的可执行文件本身,我认为这是一个很难解决的问题,而且我不知道有谁曾经让他们的试用版软件以这种方式工作。

有一个小附录,即一旦一个人被打扰到足以破解它,那么破解就可以被重新分配。如果破解者可以被打扰的话。由于大量盗版或没有人真正想要该产品,销售额可能会很低…:-)节目制作​​适用于对pc编程和使用知识有限的用户。是一个测试版本,如果结果证明这是一个太好的保险有人找到解决方案或支付它。。。谢谢