Pyelftools: извлекает флаги разделов, как это делает objdump для двоичного файла elf32-littlearmPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pyelftools: извлекает флаги разделов, как это делает objdump для двоичного файла elf32-littlearm

Сообщение Anonymous »

Мне нужно идентифицировать все разделы ELF, имеющие флаг LOAD в моем скрипте Python; используя objdump, я получаю

Код: Выделить всё

$ 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)
Однако с помощью модуля elftools Python3 из следующих источников:

Код: Выделить всё

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))
Я получаю совершенно другие флаги:

Код: Выделить всё

                               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 (предположительно, правильные). Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/405 ... learm-bina
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Есть ли способ определить флаги в Java и запустить код, только если эти флаги определены?
    Anonymous » » в форуме JAVA
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Приложение ELF32 Linux сбои в CentOS, но не Ubuntu? [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Приложение ELF32 Linux сбои в CentOS, но не Ubuntu?
    Anonymous » » в форуме Linux
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Objdump — как создать исходный код для библиотечных функций на выходе сборки
    Anonymous » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Символ не обнаруживается Objdump
    Anonymous » » в форуме Linux
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»