objdump
및 readelf
모두 섹션 요약을 표시 할 수 있습니다. objdump -h
및 readelf -S
이 적절한 옵션 인 것 같습니다. 예를 들어
,
$ objdump -h boot_flag
boot_flag: file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn
0 .note.gnu.build-id 00000024 000080b4 000080b4 000000b4 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .text 00000310 000080d8 000080d8 000000d8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .rodata 00000030 000083e8 000083e8 000003e8 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .data 00000004 00010418 00010418 00000418 2**2
CONTENTS, ALLOC, LOAD, DATA
4 .comment 0000003a 00000000 00000000 0000041c 2**0
CONTENTS, READONLY
5 .ARM.attributes 0000002d 00000000 00000000 00000456 2**0
CONTENTS, READONLY
그리고 ...
$ readelf -S boot_flag
There are 8 section headers, starting at offset 0x4d0:
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .note.gnu.build-i NOTE 000080b4 0000b4 000024 00 A 0 0 4
[ 2] .text PROGBITS 000080d8 0000d8 000310 00 AX 0 0 4
[ 3] .rodata PROGBITS 000083e8 0003e8 000030 01 AMS 0 0 4
[ 4] .data PROGBITS 00010418 000418 000004 00 WA 0 0 4
[ 5] .comment PROGBITS 00000000 00041c 00003a 01 MS 0 0 1
[ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000456 00002d 00 0 0 1
[ 7] .shstrtab STRTAB 00000000 000483 00004b 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
들보기 ARM926 정적 바이너리에 대한 몇 가지 섹션 정보를 제공합니다. 관심 분야는 VMA
, LMA
, Size
및 Addr
필드입니다. 그들을 추출하고 정렬 한 다음 Size
을 최종 값에 추가하십시오.
@artlessnoise - ok, readelf 출력을 구문 분석하여 처리했습니다. 감사. – WeaselFox
@artlessnoise - 대답을 게시하십시오, 그것을 받아들입니다. – WeaselFox