修改打开的文件 c++
Posted
技术标签:
【中文标题】修改打开的文件 c++【英文标题】:modify an open file c++ 【发布时间】:2009-02-08 22:51:10 【问题描述】:在 Windows 下有没有办法修改另一个进程使用 c++ 打开的文件/可执行文件?
【问题讨论】:
你的意思是“你如何在windows中修改一个exe?”或“如何修改 Windows 中正在运行的 exe?”。如果这两者都不是,那么 sktrdie 的答案就成功了。 是的,这正是我的意思,如果我不够清楚,请见谅。 【参考方案1】:有没有办法在 windows 中修改打开的可执行文件?
没有。
有没有办法在 windows 中使用 c++ 修改打开的文件?
是的。如果已使用适当的共享权限打开它。见http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspxFILE_SHARE_WRITE
【讨论】:
【参考方案2】:这可能是可能的,但可能并不容易实现。您需要在目标进程中注入线程并了解 PE 格式才能正确编辑打开的文件并对其进行修改。 所有信息都在网上。
祝你好运。
我找到这个免费软件工具,它建议unlock files and folders。
【讨论】:
【参考方案3】:只要可执行文件正在运行,操作系统就会将其保持为只读共享,因此无法直接对其进行修改。但是,您可以打开它以供阅读(如果您在 CreateFile
调用中指定阅读共享),并在它运行时制作它的修改副本。
我不知道这是否是您的想法,但如果您正在执行此操作是您自己的程序,您可以启动新副本并让它从前一个中断的地方继续...不是直截了当,但也不是那么难。
【讨论】:
以上是关于修改打开的文件 c++的主要内容,如果未能解决你的问题,请参考以下文章