【发布时间】:2025-11-26 01:50:01
【问题描述】:
我有一个 ELF 可执行文件,我想知道如何修改它的 .rodata 段。
此外,更一般地说,我如何修改 ELF 可执行文件?
【问题讨论】:
-
我使用 emacs 来编辑二进制文件。您确定要修改 ELF 副生成一个新副吗?
-
我无权访问源代码。
标签: c linux memory-segmentation
我有一个 ELF 可执行文件,我想知道如何修改它的 .rodata 段。
此外,更一般地说,我如何修改 ELF 可执行文件?
【问题讨论】:
标签: c linux memory-segmentation
如果您确切知道需要修改 ELF 的哪个部分,您可以使用任何十六进制编辑器来执行此操作。
如果您想解析 ELF 并执行更复杂的逻辑,您应该编写一些可以打开文件或更好地打开文件的代码,mmap 它。然后您可以阅读 ELF 标头,它提供有关 ELF 的基本信息并指向 ELF 中的其他重要位置。我建议阅读 ELF 和 <include/elf.h> 的手册。
如果您使用的是 Linux,您可以使用 readelf 或 objdump 查看段在内存中的位置。
【讨论】: