【问题标题】:ELF format manipulationELF 格式操作
【发布时间】:2011-11-27 22:01:02
【问题描述】:

我有一个要求,我想将 index 与文件(以某种格式)相关联。我想知道我是否可以进行任何 ELF 操作并仍然确保保持一致性,因此该文件在 linux 上运行良好。这里的想法是创建一种文件格式,可以通过某个 API [自定义] 查询以获取索引。

a)是否可以修改 ELF 标头来存储索引(如上所述)。

b)如果是,流程是什么?

【问题讨论】:

  • 我想你误解了:ELF 是一种可执行文件的文件格式。除非这两个文件之一是可执行文件,否则你问错了。
  • 你说的很含糊。你能澄清一下你想索引什么/你想保留在索引中的信息吗?修补 ELF 当然是可能的,但是您提供的信息越多,您可能获得的帮助就越多。
  • 是否允许重新编译 ELF 文件?还是必须使用现有的?
  • 你试过readelf程序吗?也许它已经显示了你想要的。

标签: c linux kernel elf


【解决方案1】:

您可以添加一个新的 ELF 部分,其中包含您想要的任何数据到现有的可执行文件。例如

$ echo 42 > /tmp/index
$ objcopy --add-section .my_index=/tmp/index /bin/ls myls
$ objdump -s myls | tail
.
.
. 

Contents of section .my_index:
 0000 34320a                               42.    

然后您可以使用libelf 找出从何处读取此数据。

【讨论】:

  • 这是一个绝妙的答案。一个人如何直接与“sigjuice”联系起来?
猜你喜欢
  • 2011-03-07
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
相关资源
最近更新 更多