在内存中创建一个文件(不在磁盘上生成临时文件) ,要求支持readfile,writefile函数(200分)

  • 主题发起人 主题发起人 jlugjb
  • 开始时间 开始时间
起码你要HOOK 打开文件 关闭文件 2个API<br>还有你需要在的内存中实现文件系统?那可复杂了。最好用现成的RAMDISK。<br>如果你有个内存磁盘的盘符,在打开文件的时候,做点手脚就可以了,关闭<br>文件的时候也要关闭对应文件句柄。 <br>要是没有内存文件系统,你截获所有的文件API,把它们转向一个TMemoryStream,<br>不知道可行否。
 
恩 用 hook技术
 
ms:TMemorySrtream;<br>begin<br> try<br>ms:=TMemorySrtream.create;<br>ms.loadefromfile('filename');<br>// ms.read() 读出数据 类似读文件<br>//ms.write() 写如数据 类似 写文件 非常方便 看看TMemorySrtream 帮助<br> finally<br> ms.free;<br> end;
 
HOOK 打开文件 关闭文件 2个API<br>还有在的内存中实现文件系统,并不复杂已经实现。实现虚拟文件的效果了,不过希望更好,所以才问大家,bmsr,方法晚上试试吧<br>不过估计不行了,调用的是系统API,TMemorySrtream生成的不是系统句柄吧,如果不是就不能传给系统api
 
没试过,替换同名头文件,换自己的文件,不知行不行
 
我顶你个肺
 
后退
顶部