修改一个打开的文件c ++

时间:2009-02-08 22:51:10

标签: c++ winapi

在Windows下有没有办法使用c ++修改由另一个进程打开的文件/可执行文件?

3 个答案:

答案 0 :(得分:8)

  

有没有办法在Windows中修改打开的可执行文件?

没有

  

有没有办法使用c ++修改Windows中的打开文件?

是。如果已使用适当的共享权限打开它。请参阅http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx FILE_SHARE_WRITE

答案 1 :(得分:1)

有可能但也许不容易实现。您需要在目标进程中注入线程并知道PE格式以正确编辑打开的文件并进行修改 所有信息都在网上。

祝你好运。

我发现这个免费软件工具,建议unlock files and folders

答案 2 :(得分:0)

只要操作系统正在运行,操作系统就会将可执行文件打开以进行只读共享,因此无法直接修改它。但是,您可以打开阅读(如果您在CreateFile调用中指定了读取共享),并在其运行时对其进行修改后的副本。

我不知道这是不是你的想法,但是如果这是你自己的程序,那么你就可以开始新的副本并让它在上一个停止的地方继续...不是直截了当,但也不是那么困难。