如何删除特定的ELF部分,而不剥离其他符号?

ano*_*nol 12 gcc elf objcopy

我有一个包含了一个ELF 32位x86文件.eh_frame部分,尽管我尝试1将其删除.

我想删除该.eh_frame部分,而不触及其他部分中的任何符号,包括未使用的符号.

strip似乎没有选项--remove-only,它总是最终修改其他部分.

如何在不修改文件中的任何其他内容的情况下删除单个ELF部分?

1正如其他问题中所建议的,我尝试了几种变体gcc-3.4.3 -fomit-frame-pointer -fno-exceptions -fno-asynchronous-unwind-tables -fno-unwind-tables,但该.eh_frame部分始终存在.这可能是因为我必须使用旧的GCC(3.4.3)...源文件本身不包含任何可能需要这些部分的特殊内容:int main() { return 0; }.

ano*_*nol 20

strip,尽管名称,这里不是正确的工具.

一种可能的解决方案是objcopy --remove-section .eh_frame a.out,a.out要修改的ELF文件的名称在哪里.

不幸的是,除非你知道,否则你objcopy最终可能会strip找到解决方案,而不会发现任何问题.