0

使用:

import os.path
os.path.exists (file_path)

“保护”程序免受复制?

例如,在我们的主应用程序中,我们使用:

import os.path
os.path.exists ("c:\windows\mifile.dll")

什么东西在哪里mifile.dll,当然还有另一个名字,比如windriv.dll用记事本保存的简单文本。

如果文件存在,则程序可以工作,如果不存在,则会显示一条警告消息,表明它是非法副本或其他东西。

安装程序时,我会正常安装包或可移植文件夹,然后手动将文件复制mifile.dllc:\windows.

4

2 回答 2

3

这不是最好的主意。

  1. 很多人(比如我自己和可能的病毒程序)会查看 windows 目录并删除这样的内容。
  2. 这种事情可能最好加密
  3. 捕捉导入错误并不是最简单的事情
  4. 如果您担心非法复制,那么很快就会有人发现这一点并且您拥有一个可以轻松复制和轻松分发的文件。
  5. 对于逆向工程师来说,使用导入和错误输出将是一个巨大的危险信号
  6. 如果不以管理员身份运行程序,则使用 UAC 可能无法访问此文件
于 2012-12-06T21:31:47.460 回答
1

不。

无论您最终采用哪种解决方案,“秘密握手安装技术”的一般概念基本上都是破坏性的。您正在有效地防止您的客户:

  • 升级机器的操作系统
  • 从备份恢复他们的系统
  • 由于硬件故障,将您的服务移至新机器

客户需要在未来几年内完成其中任何一项。当他们这样做时,您的程序将中断,他们将不知道为什么或如何修复它。鉴于您此时甚至可以与他们联系,请考虑一下当他们与您联系以解决问题时,这会让您看起来如何。

如果发现一个分包商偷偷把自己介绍为这样的单点故障,我会非常愤怒。

要么信任您的客户,获得您可以信任的新客户,要么寻求完全专业的非秘密 DRM 解决方案。

于 2012-12-07T10:15:34.877 回答