【问题标题】:Modify ELF file修改ELF文件
【发布时间】:2025-11-26 01:50:01
【问题描述】:

我有一个 ELF 可执行文件,我想知道如何修改它的 .rodata 段。

此外,更一般地说,我如何修改 ELF 可执行文件?

【问题讨论】:

  • 我使用 emacs 来编辑二进制文件。您确定要修改 ELF 副生成一个新副吗?
  • 我无权访问源代码。

标签: c linux memory-segmentation


【解决方案1】:

如果您确切知道需要修改 ELF 的哪个部分,您可以使用任何十六进制编辑器来执行此操作。

如果您想解析 ELF 并执行更复杂的逻辑,您应该编写一些可以打开文件或更好地打开文件的代码,mmap 它。然后您可以阅读 ELF 标头,它提供有关 ELF 的基本信息并指向 ELF 中的其他重要位置。我建议阅读 ELF 和 <include/elf.h> 的手册。

如果您使用的是 Linux,您可以使用 readelf 或 objdump 查看段在内存中的位置。

【讨论】:

    最近更新 更多