【发布时间】:2010-01-28 20:23:22
【问题描述】:
我的谷歌搜索把我带到了这里:How to create a virtual file? 在那篇文章中,人们建议作者将文件提取到临时目录并从那里使用它。
实际上,我想做的事情类似于作者最初的要求 - 创建一个“虚拟”文件并为其分配一个“路径”,这样其他调用标准 Windows 文件系统的应用程序就可以理解API。这样做的目的是防止复制和未经授权的使用。
我想做什么的概念:
在我们公司,我们开发了一个程序 - 但它不是标准的 EXE 应用程序,它有一个内部格式(假设“应用程序”格式的扩展名是 .MDL)并由运行时环境执行,所以运行时必须安装在客户端机器上。这个概念类似于Java(虽然这不是java;只是比较一下,以便您更好地理解)。我现在要做的是加密这个 .MDL 文件并将其作为资源包含在常规 .exe 文件中。这个 .exe 文件将检查它是否可以运行(检查许可证条件、密钥、授权等),然后,如果经过身份验证,解密并提取 .MDL 文件,执行运行时并传递 .MDL 的虚拟路径文件作为运行时的参数。 出于显而易见的原因,我不想将解密的 .mdl 文件写入磁盘上的某个位置,因为有人可以启动应用程序,等待解密器将 .MDL 写入临时文件,然后从临时文件中复制并分发它。
那么,知道如何做到这一点吗? PS:我从 EA Games 的游戏中获得了灵感……当你运行它们并查看你的进程表时,你会看到一个常规游戏的 exe,并且在一定时间后,它会产生一个名为 ~A003 的新进程。时间
【问题讨论】:
-
您知道这不会阻止任何真正想要破坏您的程序的人,对吧?
-
是的.. 解决方案是将其写入“内存”,但这并不能真正阻止超级用户找到解密的数据并将其保存在某处。
标签: winapi extract virtual-file