我如何获得ELF文件的值?

李维

我是Linux系统的初学者,正在研究阅读此文档的ELF文件格式(http://www.skyfree.org/linux/references/ELF_Format.pdf)。但是,当我看到有关搬迁的相关文档时,搬迁计算中会出现奇怪的事情。我知道根据重定位类型,它适用于不同的计算方式。但是看看这个。

当R型是R_386_RELATIVE时,此文档说明了计算“ B + A”的方法。但是,“ A”的确切含义是什么?以及如何在ELF文件中获得此“ A”值?

请给我您仁慈的答复。

山姆·普罗岑科

从您提到的文档中:

R_386_RELATIVE

链接编辑器创建此重定位类型以进行动态链接。它的偏移量成员在共享对象中提供一个位置,该位置包含代表相对地址的值。动态链接器通过 共享对象加载到的虚拟地址添加到相对地址中来计算相应的虚拟地址此类型的重定位条目必须为符号表索引指定0。

一种

这意味着用于计算可重定位字段的值加数

这意味着在执行过程中共享对象已加载到内存中基址通常,共享目标文件是用0个基本虚拟地址构建的,但是执行地址会有所不同。

加数

如上所示,只有Elf32_Rela条目包含显式addendElf32_Rel类型的条目在要修改的位置存储一个隐式加数根据处理器体系结构,一种形式或另一种形式可能是必需的或更方便的。因此,特定机器的实现可以根据上下文使用一种形式,也可以只使用一种形式。

基址

为了计算基地址,需要确定与的最低p_vaddr关联的内存地址PT_LOAD然后,通过将内存地址截断为最大页面大小的最接近倍数来获得基址。根据加载到内存中文件的类型,内存地址可能与p_vaddr不匹配

因此归结为下一个:

  • A加数并根据Elf32_RelElf32_Rela结构计算
  • B基地址,由计算得出p_vaddr具体的计算取决于体系结构。

您可以使用观察某些二进制/库文件的重定位部分readelf -r

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使我从Linux脚本获得的那些值成为我的XML文件中的值

来自分类Dev

如何获得我的GET值?

来自分类Dev

我们如何获得跨度值

来自分类Dev

如何获得我以前在sql上的值?

来自分类Dev

我如何获得原始值的参考?

来自分类Dev

我如何获得此NSDictionary的值

来自分类Dev

我如何获得 COUNT(id) 的值

来自分类Dev

我如何获得图形的最小 Y 值?

来自分类Dev

我如何通过 Cheerio 获得这些值?

来自分类Dev

我如何获得我的输入单选按钮的值?

来自分类Dev

我如何从Date.getTime()获得int值(长值)

来自分类Dev

bash如何执行ELF文件?

来自分类Dev

我应该如何获得此输入字段的值?

来自分类Dev

我如何在JMeter中使用XPATH获得此值

来自分类Dev

我如何在按Enter时获得输入字段值

来自分类Dev

我如何根据C#中的枚举值获得优势?

来自分类Dev

我如何才能获得比std :: set的上限严格更低的值?

来自分类Dev

我如何获得“ j”的值以在函数外部使用?

来自分类Dev

在nodeJs中保证,我如何获得返回值?

来自分类Dev

我如何获得对象数组的值的总和:java8

来自分类Dev

我如何获得括号内的所有值?

来自分类Dev

我如何设置不同的阈值以获得 ROC 图的多个值

来自分类Dev

我如何获得 int 0x16 的值?

来自分类Dev

我如何在 antd 中获得 Select 选项值

来自分类Dev

我如何获得录制音频文件的最大限制?

来自分类Dev

我如何获得MV(或*通配符)来移动隐藏文件?

来自分类Dev

我如何获得MV(或*通配符)来移动隐藏文件?

来自分类Dev

μTorrent:我们如何获得torrent文件的“添加”日期?

来自分类Dev

我如何获得Excel而不弄乱.csv文件的格式

Related 相关文章

热门标签

归档