【问题标题】:How to remove a specific ELF section, without stripping other symbols?如何在不删除其他符号的情况下删除特定的 ELF 部分?
【发布时间】:2015-10-05 21:04:49
【问题描述】:

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

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

strip好像没有--remove-only的选项,最后总是修改其他部分。

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

1正如other questions 中所建议的,我尝试了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; }。

【问题讨论】:

    标签: gcc elf objcopy


    【解决方案1】:

    strip,尽管有名字,但在这里不是正确的工具。

    一个可能的解决方案是objcopy --remove-section .eh_frame a.out,其中a.out 是要修改的ELF 文件的名称。

    很遗憾,除非您知道 objcopy,否则您最终可能会使用 strip 搜索解决方案,但找不到任何解决方案。

    【讨论】:

      猜你喜欢
      • 2019-11-20
      • 1970-01-01
      • 2014-01-02
      • 2018-10-20
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      相关资源
      最近更新 更多