修改打开的文件 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++的主要内容,如果未能解决你的问题,请参考以下文章

如何通过用户输入打开文件? C++

UE4生成的exe怎么打开修改

c语言修改文件图标

vscode下运行c++找不到头文件是怎么回事

用VS2008编译C++的时候系统提示【 无法打开包括文件:“iostream.h”:】

怎么修改db数据库文件?