3

我的谷歌搜索把我带到了这里:如何创建虚拟文件? 在那篇文章中,人们建议作者将文件提取到临时目录并从那里使用它。

实际上,我想做的事情与作者最初的要求类似——创建一个“虚拟”文件并为其分配一个“路径”,这样其他调用标准 Windows 文件系统 API 的应用程序就可以理解。这样做的目的是防止复制和未经授权的使用。

我想做的一个概念:

在我们公司,我们开发了一个程序——但它不是一个标准的 EXE 应用程序,它有一个内部格式(假设“应用程序”格式的扩展名是 .MDL)并且由运行时环境执行,所以运行时必须安装在客户端机器。这个概念和Java很像(虽然这不是java;只是比较一下,让大家更好理解)。我现在要做的是加密这个 .MDL 文件并将其作为资源包含在常规 .exe 文件中。这个 .exe 文件将检查它是否可以运行(检查许可证条件、密钥、授权等),然后,如果经过身份验证,解密并提取 .MDL 文件,执行运行时并传递 .MDL 的虚拟路径文件作为运行时的参数。出于显而易见的原因,我不想将解密的 .mdl 文件写入磁盘的某个位置,

那么,知道如何做到这一点吗?PS:我从 EA Games 的游戏中获得了灵感……当你运行它们并查看你的进程表时,你会看到一个常规游戏的 exe,并且在一定时间后,它会产生一个名为 ~A003 的新进程。时间

4

2 回答 2

4

您应该使用 boxedapp 打包程序。它必须有帮助。

于 2011-12-23T18:21:19.740 回答
1

我不知道有任何方法可以在不使用某种驱动程序组件的情况下将虚拟文件与路径关联;那是艰苦的工作。

为什么不让运行时进行解密?然后您不必担心解密磁盘上的文件。或者,您可以创建一个未命名的可继承部分对象来解密项目并将句柄值作为命令行参数传递给运行时。

无论你做什么,人们仍然可以绕过它,所以对我来说这似乎是浪费时间。曾经制作的每一款 EA 游戏都已被破解;人们要么会认为您的产品有用且物有所值,要么不会。我认为不值得花时间或精力来实施比非常简单的注册密钥检查更复杂的方案(只是为了让它看起来像你做了什么)。

于 2010-01-29T01:16:15.340 回答