2010-01-28 43 views
3

我的谷歌搜索导致我到这里:How to create a virtual file? 在那篇文章中,人们建议作者将文件解压到一个临时目录并从那里使用它。创建一个“虚拟”文件并执行它

实际上,我想要做的是类似于作者最初要求的东西 - 创建一个“虚拟”文件并为其分配一个“路径”,以便其他应用程序可以通过调用标准窗口来理解文件系统API。这样做的目的是为了防止复制和未经授权的使用。

的我想要做一个什么概念:

在我们公司,我们已经制定了一项计划 - 但它不是一个标准EXE应用程序,它有一个内部格式(让我们假设“应用”格式的扩展是.MDL)并且由运行时环境执行,所以运行时必须安装在客户机上。这个概念类似于Java(尽管这不是Java;只是比较,以便您可以更好地理解)。我现在想要做的是加密这个.MDL文件,并将其作为一个资源包含在常规的.exe文件中。这个.exe文件将检查是否运行okey(检查许可证条件,密钥,授权等),然后如果通过验证,解密并解压缩.MDL文件,执行运行时并传递.MDL的虚拟路径文件作为运行时的参数。 由于显而易见的原因,我不想将解密后的.mdl文件写在磁盘上的某处,因为有人可以启动应用程序,等待解密器将.MDL写入临时文件,将其从临时文件复制并分发。

那么,任何想法如何做到这一点? PS:我从EA游戏的游戏获得灵感......当你运行它们并查看你的进程表时,你会看到一个常规游戏的EXE文件,并且在一段时间后,它会产生一个名为“A003”的新进程.tmp

+1

你意识到这不会阻止任何真正想破坏你的程序的人,对吧? – 2010-01-28 20:39:59

+1

是的..解决方案是将其写入“内存”,但这并不能真正阻止超级用户找到解密的数据并将其保存在某处。 – mlathe 2010-01-28 21:30:09

回答

1

我不知道任何方法有一个虚拟文件与路径相关联,而不使用某种驱动程序组件;这是艰苦的工作。

为什么你没有运行时做解密?那么你不必担心解密磁盘上的文件。或者,您可以创建一个未命名的可继承节的对象,以便将该项解密并将句柄值作为命令行参数传递给运行时。

无论你做什么,人们仍然能够绕过它,所以这对我来说似乎是浪费时间。每场EA比赛都被破解;人们会认为你的产品是有用的,值钱或者他们不会。我认为实施比简单的注册码检查更复杂的计划是不值得花时间或精力的(只是为了让它看起来像你做了什么)。

4

你应该使用boxedapp打包器。它必须帮助。

+1

伟大的应用程序。我也使用它。 – z0r1fan 2011-12-28 17:29:36