【发布时间】:2011-12-08 21:40:26
【问题描述】:
是否可以在运行时修改可执行文件(我问的是 Windows XP/Vista/7/Server)?我刚刚评估了SmartUtils Portable Storage application。它可以创建所谓的“托管可执行存储文件”,在运行时自行修改它们......这样的存储文件就像标准的自解压存档(数据附加到可执行模块),但主要区别在于你能够无需主程序即可查看和修改其内容。这怎么可能?我的项目 (C++) 中需要类似的功能:我希望能够创建可以修改附加到它的数据的可执行文件。
【问题讨论】:
-
Self modifying code 是一个好的开始
-
@parapurarajkumar:我不认为我们在这里讨论的是自修改代码;可能它只是附加在真正可执行文件末尾的某种存档。
-
欢迎来到 StackOverflow。请编辑您的问题以准确指定您需要实现的功能。期望人们去研究外部网站以弄清楚您在问什么是不合理的。如果由于某种原因该站点不可用,它会使您的问题变得毫无意义(并且对于未来的读者来说无法搜索)。当您使用它时,您也许应该添加一个标签来指示您所针对的操作系统;它们之间的可能性有所不同。谢谢。 :)
-
另外,您可能希望查看此question 以及从那里链接的页面(请参阅
tagged列表右下方的Linked Questions列表)。 -
可执行文件是文件,您可以像修改任何其他文件一样修改它们(不过,取决于操作系统,而不是在它们运行时,您必须处理副本)。你可以感谢John von Neumann 和Alan Turing。您在使用普通文件操作功能时遇到了什么样的问题?
标签: c++ windows runtime storage executable