【问题标题】:ELF Parsing : Accessing a DIE Directly using pyelftoolsELF 解析:使用 pyelftools 直接访问 DIE
【发布时间】:2012-05-18 09:22:22
【问题描述】:

我需要一种使用 DIE 的偏移量直接访问它们的方法。到目前为止,我发现有一种计算单元 (CU) 对象的方法,您可以在其中从 DIE 的偏移量访问 DIE。

即:

cu._get_DIE(die.attributes['DW_AT_type'].value)

但是,如果您尝试访问当前 CU 之外的 DIE,则会超出范围,因为该 DIE 未在该 CU 下编制索引。

我能想到的最佳方法是遍历 CU,并使用偏移量作为索引创建 DIE 的综合列表。

似乎DWARFInfo 类应该有一个方法,只要你有偏移量,你就可以访问任何 DIE。

我需要这样做的原因是因为我正在循环所有 CU 以生成我的全局变量列表,并且我需要引用不同 CU 中的 DIE 来检索类型信息。

【问题讨论】:

    标签: python binary elf dwarf pyelftools


    【解决方案1】:

    pyelftools 似乎将引用表示为相对于编译单元的值,因此您可能需要在全局列表中包含 CU 信息。

    查看https://github.com/eliben/pyelftools/issues/27。它表示引用可以相对于编译单元。事实上,DWARF 规范也这么说:http://dwarfstd.org/doc/dwarf-2.0.0.pdf#page=71

    【讨论】:

      猜你喜欢
      • 2013-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多