首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyelftools:检索节标志,就像objdump为elf32 32-littlearm二进制文件所做的一样。

pyelftools:检索节标志,就像objdump为elf32 32-littlearm二进制文件所做的一样。
EN

Stack Overflow用户
提问于 2016-11-11 13:29:08
回答 1查看 776关注 0票数 0

我需要识别所有在python脚本中带有LOAD标志的ELF部分;使用objdump,我收到

代码语言:javascript
复制
$ arm-none-eabi-objdump -h test.elf

test.elf:     file format elf32-littlearm

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00014480  00000000  00000000  00008000  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .relocate     00000090  20000000  00014480  00020000  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          000016ec  20000090  00014510  00020090  2**4
                  ALLOC
  3 .stack        00002004  2000177c  00014510  0002177c  2**0
                  ALLOC
  4 TOUCH_SAFETY_DATA_LOCATION 00000704  20004000  00014510  00024000  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  5 FMEA_SAFETY_DATA_LOCATION 00000070  20007c00  00014c14  00027c00  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  ... (some 10 or so more sections)

但是,对于Python3 elftools模块,可以从以下来源获得:

代码语言:javascript
复制
from elftools.elf.elffile import ELFFile

for section in ELFFile(open("test.elf", "rb")).iter_sections():
    print("{0:30s} 0b{1:08b}".format(section.name, section.header.sh_flags))

我收到了完全不同的旗帜:

代码语言:javascript
复制
                               0b00000000
.text                          0b00000110
.relocate                      0b00000011
.bss                           0b00000011
.stack                         0b00000011
TOUCH_SAFETY_DATA_LOCATION     0b00000011
FMEA_SAFETY_DATA_LOCATION      0b00000011
... (some 10 or so more sections)

从objdump源(我无法找到有关此问题的任何文档),LOAD标志的值应为0x02 (0b00000010)。似乎由pyelftools报告的标志完全独立于objdump报告的标志(大概是正确的)。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-13 14:11:46

实际上他们都同意。正如前面所指出的,ELF规范将0x1 (0b00000001)标记为SHF_WRITE,因此除.text以外的所有部分都标记为可写。

由于objdump不是ELF特定的(就像readelf那样),这些标志不匹配1:1,而是在缺少0x01时报告READONLY

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40549051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档