2012-07-25 3 views
0

Я анализирую файл ELF с помощью команды readelf. Я просмотрел заголовки программ и заголовки разделов, но обнаружил, что не все разделы были сопоставлены с сегментом. Я обеспечиваю некоторую часть readelf выхода:Неправильное отображение сегмента в сегменте в исполняемом двоичном файле ELF

Section Headers: 
[Nr] Name    Type   Addr  Off Size ES Flg Lk Inf Al 
[ 0]     NULL   00000000 000000 000000 00  0 0 0 
[ 1] ddr_data_nc_wt NOBITS   70001800 0000b4 000000 00 W 0 0 1 
[ 2] ddr_data_c_wb  NOBITS   70001800 0000b4 000000 00 W 0 0 1 
[ 3] ddr_text_c  NOBITS   70001800 0000b4 000000 00 X 0 0 1 
[ 4] m2_textboot_c  LOPROC+0  b0000000 0000c0 0023cc 00 AX 0 2952790016 2 
[ 5] m2_text_c   LOPROC+0  38000000 002490 004d22 00 AX 0 2952799232 16 
[ 6] m2_data_c_wb  LOPROC+5  70000000 0071c0 0006a8 00 WA 0 2952819200 2 
[ 7] data_boot_c  LOPROC+5  20000000 007870 000100 00 WA 0 2953019392 4 

Key to Flags: 
W (write), A (alloc), X (execute), M (merge), S (strings) 
I (info), L (link order), G (group), x (unknown) 
O (extra OS processing required) o (OS specific), p (processor specific) 

There are no section groups in this file. 

Program Headers: 
Type   Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align 
LOAD   0x0000c0 0xb0000000 0xb0000000 0x023cc 0x023cc R E 0x2 
LOAD   0x002490 0xb0002400 0xb0002400 0x04d22 0x04d22 R E 0x10 
LOAD   0x0071c0 0xb0007200 0xb0007200 0x006a8 0x017a8 RW 0x2 
LOAD   0x007870 0xb0038000 0xb0038000 0x00100 0x08000 RW 0x4 

Section to Segment mapping: 
Segment Sections... 
    00  m2_textboot_c 
    01 
    02 
    03 

There is no dynamic section in this file. 

There are no relocations in this file. 

There are no unwind sections in this file. 

я считаю, что только секция m2_textboot_c становится сопоставляются сегмент 00, но не упоминает о том, где другие разделы отображаются. Не могли бы вы дать мне какое-либо представление о том, что может быть неправильным и что делать?

Кроме того, мне было интересно, есть ли какой-либо механизм загрузки двоичного файла ELF на процессор, используя заголовки разделов вместо заголовков программ. Каждая интерактивная справка, с которой я столкнулся, загружает двоичные файлы с использованием заголовков программ.

ответ

0

Я считаю, что только секция m2_textboot_c становится отображается сегмент 00, но не говорится о том, где другие разделы отображаются

Вы, вероятно, связано это ELF изображение, используя «пользовательский» линкер сценарий. Этот скрипт управляет отображением разделов на сегменты, и он (по-видимому) не делает то, что вы хотели бы сделать с другими разделами.

Смежные вопросы