我想模拟一个文件而不写入磁盘。我在可执行文件的末尾有一个文件,我想给它的路径指向一个dll。当然,因为它没有真正的道路,所以我不得不伪造它。如何创建虚拟文件?
我第一次尝试在Windows下使用命名管道来做到这一点。这将允许像\\。\ pipe \ mymemoryfile这样的路径,但是我无法使其工作,并且我不确定该dll是否会支持这样的路径。
其次,我发现CreateFileMapping和GetMappedFileName。他们可以用来模拟另一个片段中的文件吗?我不确定这是API的功能。
我想要做的似乎与boxedapp类似。有关他们如何做的任何想法?我猜这是API截取(Like Detour)之类的东西,但这将是很多工作。还有另一种方法可以做到吗?
为什么?我对这个特定的解决方案很感兴趣,因为我想隐藏数据并且只分发一个文件的好处,但也是为了使它以这种方式工作的奇怪原因;) 我同意将数据复制到临时文件会工作并成为一个更简单的解决方案。
你究竟如何分配文件?我会说压缩或复制exe文件会使NTFS流消失? – 2010-01-20 22:17:07
@Gregory:是的。用例在这个问题中并不十分清楚,但我同意使用流可能不是OP的选项 - 希望这在我的答案中也清楚地表明了。我试图在答案中回答的主要观点是使用实际文件是最佳选择。 – villintehaspam 2010-01-20 22:41:51
这是一个非常有趣的想法。太糟糕了,它只适用于ntfs。由于没有完美的答案,这个是最好的。 – 2010-01-25 15:14:22