如何从PE的.rdata部分删除IMAGE_DEBUG_DIRECTORY数据?我使用的是MS Visual Studio 2015。我检查了项目属性的几乎所有编译选项。但是IMAGE_DEBUG_DIRECTORY数据仍然存在于我的输出可执行文件中.
.rdata
0dxa2lsx1#
您可以通过设置未记录的链接器选项**/EMITPOGOPHASEINFO来完成此操作。所以转到链接器命令行并在附加选项中插入此字符串(/EMITPOGOPHASEINFO**)。此选项抑制pe中的pgo(Profile-Guided Optimizations)部分阅读:Pogo aka PGO aka Profile Guided Optimization和Walkthrough: Using Profile-Guided Optimizations当然,你不能生成的/DEBUG信息-使用/DEBUG链接器选项-所以一定要在链接器命令行中没有/DEBUG选项。或者使用/DEBUG:NONE /EMITPOGOPHASEINFO组合-在这种情况下,pe文件中不能是IMAGE_DEBUG_DIRECTORY
/EMITPOGOPHASEINFO
/DEBUG
/DEBUG:NONE /EMITPOGOPHASEINFO
IMAGE_DEBUG_DIRECTORY
rbpvctlc2#
自Visual Studio 2022版本17.3起,此解决方法不再有效,因为它会产生损坏的可执行文件(IMAGE_RESOURCE_DIRECTORY条目无效,Windows资源管理器和资源操作工具都无法找到.rsrc部分,即使它仍然存在于文件中)。解决方法是使用Explorer Suite中的CFF Exlporer。尽管声称它的版本III,它实际上是版本VIII,只有独立的CFF浏览器是旧的比一个捆绑在套件。一旦你安装了这个套件,删除IMAGE_DEBUG_DIRECTORY就很容易了。
IMAGE_RESOURCE_DIRECTORY
.rsrc
2条答案
按热度按时间0dxa2lsx1#
您可以通过设置未记录的链接器选项**
/EMITPOGOPHASEINFO
来完成此操作。所以转到链接器命令行并在附加选项中插入此字符串(/EMITPOGOPHASEINFO
**)。此选项抑制pe中的pgo(Profile-Guided Optimizations)部分阅读:Pogo aka PGO aka Profile Guided Optimization和Walkthrough: Using Profile-Guided Optimizations
当然,你不能生成的
/DEBUG
信息-使用/DEBUG
链接器选项-所以一定要在链接器命令行中没有/DEBUG
选项。或者使用/DEBUG:NONE /EMITPOGOPHASEINFO
组合-在这种情况下,pe文件中不能是IMAGE_DEBUG_DIRECTORY
rbpvctlc2#
自Visual Studio 2022版本17.3起,此解决方法不再有效,因为它会产生损坏的可执行文件(
IMAGE_RESOURCE_DIRECTORY
条目无效,Windows资源管理器和资源操作工具都无法找到.rsrc
部分,即使它仍然存在于文件中)。解决方法是使用Explorer Suite中的CFF Exlporer。尽管声称它的版本III,它实际上是版本VIII,只有独立的CFF浏览器是旧的比一个捆绑在套件。
一旦你安装了这个套件,删除
IMAGE_DEBUG_DIRECTORY
就很容易了。**重要提示:**请确保在替换原始文件之前彻底测试新的可执行文件。