# readelf -Ae /bin/ls ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: ARM Version: 0x1 Entry point address: 0x9eb8 Start of program headers: 52 (bytes into file) Start of section headers: 91140 (bytes into file) Flags: 0x5000002, has entry point, Version5 EABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 10 Size of section headers: 40 (bytes) Number of section headers: 26 Section header string table index: 25 Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .interp PROGBITS 00008174 000174 000013 00 A 0 0 1 [ 2] .note.ABI-tag NOTE 00008188 000188 000020 00 A 0 0 4 [ 3] .gnu.hash GNU_HASH 000081a8 0001a8 0005cc 04 A 4 0 4 [ 4] .dynsym DYNSYM 00008774 000774 0007f0 10 A 5 1 4 [ 5] .dynstr STRTAB 00008f64 000f64 00055c 00 A 0 0 1 [ 6] .gnu.version VERSYM 000094c0 0014c0 0000fe 02 A 4 0 2 [ 7] .gnu.version_r VERNEED 000095c0 0015c0 000080 00 A 5 4 4 [ 8] .rel.dyn REL 00009640 001640 000038 08 A 4 0 4 [ 9] .rel.plt REL 00009678 001678 000340 08 A 4 11 4 [10] .init PROGBITS 000099b8 0019b8 00000c 00 AX 0 0 4 [11] .plt PROGBITS 000099c4 0019c4 0004f4 04 AX 0 0 4 [12] .text PROGBITS 00009eb8 001eb8 0100b4 00 AX 0 0 8 [13] .fini PROGBITS 00019f6c 011f6c 000008 00 AX 0 0 4 [14] .rodata PROGBITS 00019f74 011f74 003358 00 A 0 0 4 [15] .ARM.exidx ARM_EXIDX 0001d2cc 0152cc 000028 00 AL 12 0 4 [16] .eh_frame PROGBITS 0001d2f4 0152f4 000004 00 A 0 0 4 [17] .init_array INIT_ARRAY 00025ef4 015ef4 000004 00 WA 0 0 4 [18] .fini_array FINI_ARRAY 00025ef8 015ef8 000004 00 WA 0 0 4 [19] .jcr PROGBITS 00025efc 015efc 000004 00 WA 0 0 4 [20] .dynamic DYNAMIC 00025f00 015f00 000100 08 WA 5 0 4 [21] .got PROGBITS 00026000 016000 0001b4 04 WA 0 0 4 [22] .data PROGBITS 000261b8 0161b8 000138 00 WA 0 0 8 [23] .bss NOBITS 000262f0 0162f0 000c98 00 WA 0 0 8 [24] .ARM.attributes ARM_ATTRIBUTES 00000000 0162f0 000033 00 0 0 1 [25] .shstrtab STRTAB 00000000 016323 0000de 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) Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align EXIDX 0x0152cc 0x0001d2cc 0x0001d2cc 0x00028 0x00028 R 0x4 PHDR 0x000034 0x00008034 0x00008034 0x00140 0x00140 R E 0x4 INTERP 0x000174 0x00008174 0x00008174 0x00013 0x00013 R 0x1 [Requesting program interpreter: /lib/ld-linux.so.3] LOAD 0x000000 0x00008000 0x00008000 0x152f8 0x152f8 R E 0x8000 LOAD 0x015ef4 0x00025ef4 0x00025ef4 0x003fc 0x01094 RW 0x8000 DYNAMIC 0x015f00 0x00025f00 0x00025f00 0x00100 0x00100 RW 0x4 NOTE 0x000188 0x00008188 0x00008188 0x00020 0x00020 R 0x4 GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4 GNU_RELRO 0x015ef4 0x00025ef4 0x00025ef4 0x0010c 0x0010c R 0x1 PAX_FLAGS 0x000000 0x00000000 0x00000000 0x00000 0x00000 0x4 Section to Segment mapping: Segment Sections... 00 .ARM.exidx 01 02 .interp 03 .interp .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .ARM.exidx .eh_frame 04 .init_array .fini_array .jcr .dynamic .got .data .bss 05 .dynamic 06 .note.ABI-tag 07 08 .init_array .fini_array .jcr .dynamic 09 Attribute Section: aeabi File Attributes Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_DIV_use: Not allowed # readelf -Ae /lib/librt.so.1 ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Shared object file) Machine: ARM Version: 0x1 Entry point address: 0x17c0 Start of program headers: 52 (bytes into file) Start of section headers: 25308 (bytes into file) Flags: 0x5000002, has entry point, Version5 EABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 11 Size of section headers: 40 (bytes) Number of section headers: 31 Section header string table index: 30 Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .note.ABI-tag NOTE 00000194 000194 000020 00 A 0 0 4 [ 2] .gnu.hash GNU_HASH 000001b4 0001b4 00021c 04 A 3 0 4 [ 3] .dynsym DYNSYM 000003d0 0003d0 000740 10 A 4 3 4 [ 4] .dynstr STRTAB 00000b10 000b10 000556 00 A 0 0 1 [ 5] .gnu.version VERSYM 00001066 001066 0000e8 02 A 3 0 2 [ 6] .gnu.version_d VERDEF 00001150 001150 00005c 00 A 4 3 4 [ 7] .gnu.version_r VERNEED 000011ac 0011ac 000060 00 A 4 2 4 [ 8] .rel.dyn REL 0000120c 00120c 000090 08 A 3 0 4 [ 9] .rel.plt REL 0000129c 00129c 000200 08 A 3 11 4 [10] .init PROGBITS 0000149c 00149c 00000c 00 AX 0 0 4 [11] .plt PROGBITS 000014a8 0014a8 000314 04 AX 0 0 4 [12] .text PROGBITS 000017c0 0017c0 0038cc 00 AX 0 0 16 [13] __libc_freeres_fn PROGBITS 0000508c 00508c 000088 00 AX 0 0 4 [14] .fini PROGBITS 00005114 005114 000008 00 AX 0 0 4 [15] .rodata PROGBITS 0000511c 00511c 000324 01 AMS 0 0 4 [16] .interp PROGBITS 00005440 005440 00001c 00 A 0 0 4 [17] .ARM.extab PROGBITS 0000545c 00545c 000050 00 A 0 0 4 [18] .ARM.exidx ARM_EXIDX 000054ac 0054ac 000098 00 AL 12 0 4 [19] .eh_frame_hdr PROGBITS 00005544 005544 000044 00 A 0 0 4 [20] .eh_frame PROGBITS 00005588 005588 00012c 00 A 0 0 4 [21] .init_array INIT_ARRAY 0000ded4 005ed4 000004 00 WA 0 0 4 [22] .fini_array FINI_ARRAY 0000ded8 005ed8 000004 00 WA 0 0 4 [23] .jcr PROGBITS 0000dedc 005edc 000004 00 WA 0 0 4 [24] __libc_subfreeres PROGBITS 0000dee0 005ee0 000008 00 WA 0 0 4 [25] .dynamic DYNAMIC 0000dee8 005ee8 000118 08 WA 4 0 4 [26] .got PROGBITS 0000e000 006000 000138 04 WA 0 0 4 [27] .data PROGBITS 0000e138 006138 000040 00 WA 0 0 4 [28] .bss NOBITS 0000e178 006178 0000b4 00 WA 0 0 8 [29] .ARM.attributes ARM_ATTRIBUTES 00000000 006178 000037 00 0 0 1 [30] .shstrtab STRTAB 00000000 0061af 00012a 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) Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align EXIDX 0x0054ac 0x000054ac 0x000054ac 0x00098 0x00098 R 0x4 PHDR 0x000034 0x00000034 0x00000034 0x00160 0x00160 R E 0x4 INTERP 0x005440 0x00005440 0x00005440 0x0001c 0x0001c R 0x4 [Requesting program interpreter: /lib/ld-linux-armhf.so.3] LOAD 0x000000 0x00000000 0x00000000 0x056b4 0x056b4 R E 0x8000 LOAD 0x005ed4 0x0000ded4 0x0000ded4 0x002a4 0x00358 RW 0x8000 DYNAMIC 0x005ee8 0x0000dee8 0x0000dee8 0x00118 0x00118 RW 0x4 NOTE 0x000194 0x00000194 0x00000194 0x00020 0x00020 R 0x4 GNU_EH_FRAME 0x005544 0x00005544 0x00005544 0x00044 0x00044 R 0x4 GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4 GNU_RELRO 0x005ed4 0x0000ded4 0x0000ded4 0x0012c 0x0012c R 0x1 PAX_FLAGS 0x000000 0x00000000 0x00000000 0x00000 0x00000 0x4 Section to Segment mapping: Segment Sections... 00 .ARM.exidx 01 02 .interp 03 .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_d .gnu.version_r .rel.dyn .rel.plt .init .plt .text __libc_freeres_fn .fini .rodata .interp .ARM.extab .ARM.exidx .eh_frame_hdr .eh_frame 04 .init_array .fini_array .jcr __libc_subfreeres .dynamic .got .data .bss 05 .dynamic 06 .note.ABI-tag 07 .eh_frame_hdr 08 09 .init_array .fini_array .jcr __libc_subfreeres .dynamic 10 Attribute Section: aeabi File Attributes Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_rounding: Needed Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_DIV_use: Not allowed Tag_Virtualization_use: TrustZone # readelf -Ae /lib/libgcc_s.so.1 ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Shared object file) Machine: ARM Version: 0x1 Entry point address: 0x2c10 Start of program headers: 52 (bytes into file) Start of section headers: 41460 (bytes into file) Flags: 0x5000002, has entry point, Version5 EABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 7 Size of section headers: 40 (bytes) Number of section headers: 27 Section header string table index: 26 Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .hash HASH 00000114 000114 00066c 04 A 3 0 4 [ 2] .gnu.hash GNU_HASH 00000780 000780 000588 04 A 3 0 4 [ 3] .dynsym DYNSYM 00000d08 000d08 000d40 10 A 4 3 4 [ 4] .dynstr STRTAB 00001a48 001a48 000abf 00 A 0 0 1 [ 5] .gnu.version VERSYM 00002508 002508 0001a8 02 A 3 0 2 [ 6] .gnu.version_d VERDEF 000026b0 0026b0 000198 00 A 4 12 4 [ 7] .gnu.version_r VERNEED 00002848 002848 000020 00 A 4 1 4 [ 8] .rel.dyn REL 00002868 002868 000078 08 A 3 0 4 [ 9] .rel.plt REL 000028e0 0028e0 000138 08 A 3 11 4 [10] .init PROGBITS 00002a18 002a18 00000c 00 AX 0 0 4 [11] .plt PROGBITS 00002a24 002a24 0001e8 04 AX 0 0 4 [12] .text PROGBITS 00002c10 002c10 006ea8 00 AX 0 0 8 [13] .fini PROGBITS 00009ab8 009ab8 000008 00 AX 0 0 4 [14] .rodata PROGBITS 00009ac0 009ac0 000200 00 A 0 0 4 [15] .ARM.extab PROGBITS 00009cc0 009cc0 000030 00 A 0 0 4 [16] .ARM.exidx ARM_EXIDX 00009cf0 009cf0 000108 00 AL 12 0 4 [17] .eh_frame PROGBITS 00009df8 009df8 000004 00 A 0 0 4 [18] .init_array INIT_ARRAY 00011ef4 009ef4 000004 00 WA 0 0 4 [19] .fini_array FINI_ARRAY 00011ef8 009ef8 000004 00 WA 0 0 4 [20] .jcr PROGBITS 00011efc 009efc 000004 00 WA 0 0 4 [21] .dynamic DYNAMIC 00011f00 009f00 000100 08 WA 4 0 4 [22] .got PROGBITS 00012000 00a000 0000d8 04 WA 0 0 4 [23] .data PROGBITS 000120d8 00a0d8 000004 00 WA 0 0 4 [24] .bss NOBITS 000120dc 00a0dc 000038 00 WA 0 0 4 [25] .ARM.attributes ARM_ATTRIBUTES 00000000 00a0dc 000035 00 0 0 1 [26] .shstrtab STRTAB 00000000 00a111 0000e2 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) Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align EXIDX 0x009cf0 0x00009cf0 0x00009cf0 0x00108 0x00108 R 0x4 LOAD 0x000000 0x00000000 0x00000000 0x09dfc 0x09dfc R E 0x8000 LOAD 0x009ef4 0x00011ef4 0x00011ef4 0x001e8 0x00220 RW 0x8000 DYNAMIC 0x009f00 0x00011f00 0x00011f00 0x00100 0x00100 RW 0x4 GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4 GNU_RELRO 0x009ef4 0x00011ef4 0x00011ef4 0x0010c 0x0010c R 0x1 PAX_FLAGS 0x000000 0x00000000 0x00000000 0x00000 0x00000 0x4 Section to Segment mapping: Segment Sections... 00 .ARM.exidx 01 .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_d .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .ARM.extab .ARM.exidx .eh_frame 02 .init_array .fini_array .jcr .dynamic .got .data .bss 03 .dynamic 04 05 .init_array .fini_array .jcr .dynamic 06 Attribute Section: aeabi File Attributes Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_ABI_optimization_goals: Aggressive Speed Tag_DIV_use: Not allowed