ELF 位置无关代码

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: 0x2eb
Start of program headers: 52 (bytes into file)
Start of section headers: 2932 (bytes into file)
Flags: 0x5000200, Version5 EABI, soft-float ABI
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 5
Size of section headers: 40 (bytes)
Number of section headers: 24
Section header string table index: 23

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 000000d4 0000d4 000011 00 A 0 0 1
[ 2] .hash HASH 000000e8 0000e8 000054 04 A 3 0 4
[ 3] .dynsym DYNSYM 0000013c 00013c 000100 10 A 4 3 4
[ 4] .dynstr STRTAB 0000023c 00023c 000065 00 A 0 0 1
[ 5] .rel.dyn REL 000002a4 0002a4 000010 08 A 3 0 4
[ 6] .rel.plt REL 000002b4 0002b4 000008 08 AI 3 10 4
[ 7] .plt PROGBITS 000002bc 0002bc 000020 04 AX 0 0 4
[ 8] .text PROGBITS 000002dc 0002dc 000050 00 AX 0 0 4
[ 9] .dynamic DYNAMIC 0000032c 00032c 0000a8 08 WA 4 0 4
[10] .got PROGBITS 000003d4 0003d4 000018 04 WA 0 0 4
[11] .data PROGBITS 000003ec 0003ec 000004 00 WA 0 0 4
[12] .bss NOBITS 000003f0 0003f0 000050 00 WA 0 0 4
[13] .comment PROGBITS 00000000 0003f0 00007c 01 MS 0 0 1
[14] .debug_aranges PROGBITS 00000000 00046c 000020 00 0 0 1
[15] .debug_info PROGBITS 00000000 00048c 00009b 00 0 0 1
[16] .debug_abbrev PROGBITS 00000000 000527 00007f 00 0 0 1
[17] .debug_line PROGBITS 00000000 0005a6 00003c 00 0 0 1
[18] .debug_frame PROGBITS 00000000 0005e4 000050 00 0 0 4
[19] .debug_str PROGBITS 00000000 000634 0000b1 01 MS 0 0 1
[20] .ARM.attributes ARM_ATTRIBUTES 00000000 0006e5 000033 00 0 0 1
[21] .symtab SYMTAB 00000000 000718 000300 10 22 33 4
[22] .strtab STRTAB 00000000 000a18 00008b 00 0 0 1
[23] .shstrtab STRTAB 00000000 000aa3 0000d0 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
y (purecode), p (processor specific)

There are no section groups in this file.

Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
PHDR 0x000034 0x00000034 0x00000034 0x000a0 0x000a0 R E 0x4
INTERP 0x0000d4 0x000000d4 0x000000d4 0x00011 0x00011 R 0x1
[Requesting program interpreter: /usr/lib/ld.so.1]
LOAD 0x000000 0x00000000 0x00000000 0x0032c 0x0032c R E 0x4
LOAD 0x00032c 0x0000032c 0x0000032c 0x000c4 0x00114 RW 0x4
DYNAMIC 0x00032c 0x0000032c 0x0000032c 0x000a8 0x000a8 RW 0x4

Section to Segment mapping:
Segment Sections…
00
01 .interp
02 .interp .hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text
03 .dynamic .got .data .bss
04 .dynamic

Dynamic section at offset 0x32c contains 17 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libtest.so]
0x00000004 (HASH) 0xe8
0x00000005 (STRTAB) 0x23c
0x00000006 (SYMTAB) 0x13c
0x0000000a (STRSZ) 101 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000015 (DEBUG) 0x0
0x00000003 (PLTGOT) 0x3d4
0x00000002 (PLTRELSZ) 8 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0x2b4
0x00000011 (REL) 0x2a4
0x00000012 (RELSZ) 16 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x6ffffffb (FLAGS_1) Flags: PIE
0x6ffffffa (RELCOUNT) 2
0x00000000 (NULL) 0x0

Relocation section ‘.rel.dyn’ at offset 0x2a4 contains 2 entries:
Offset Info Type Sym.Value Sym. Name
000003e4 00000017 R_ARM_RELATIVE
000003e8 00000017 R_ARM_RELATIVE

Relocation section ‘.rel.plt’ at offset 0x2b4 contains 1 entries:
Offset Info Type Sym.Value Sym. Name
000003e0 00000716 R_ARM_JUMP_SLOT 00000000 mul

There are no unwind sections in this file.

Symbol table ‘.dynsym’ contains 16 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 000002dc 0 SECTION LOCAL DEFAULT 8
2: 000003ec 0 SECTION LOCAL DEFAULT 11
3: 000003f0 40 OBJECT GLOBAL DEFAULT 12 b
4: 00000440 0 NOTYPE GLOBAL DEFAULT 12 bss_end_
5: 000003f0 0 NOTYPE GLOBAL DEFAULT 12 bss_start
6: 00000440 0 NOTYPE GLOBAL DEFAULT 12 bss_end
7: 00000000 0 FUNC GLOBAL DEFAULT UND mul
8: 000003f0 0 NOTYPE GLOBAL DEFAULT 12 __bss_start
9: 000002eb 66 FUNC GLOBAL DEFAULT 8 main
10: 00000440 0 NOTYPE GLOBAL DEFAULT 12 end
11: 000003f0 0 NOTYPE GLOBAL DEFAULT 11 _edata
12: 00000440 0 NOTYPE GLOBAL DEFAULT 12 _end
13: 00000418 40 OBJECT GLOBAL DEFAULT 12 a
14: 00080000 0 NOTYPE GLOBAL DEFAULT 20 _stack
15: 000003ec 0 NOTYPE GLOBAL DEFAULT 11 __data_start

Symbol table ‘.symtab’ contains 48 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 000000d4 0 SECTION LOCAL DEFAULT 1
2: 000000e8 0 SECTION LOCAL DEFAULT 2
3: 0000013c 0 SECTION LOCAL DEFAULT 3
4: 0000023c 0 SECTION LOCAL DEFAULT 4
5: 000002a4 0 SECTION LOCAL DEFAULT 5
6: 000002b4 0 SECTION LOCAL DEFAULT 6
7: 000002bc 0 SECTION LOCAL DEFAULT 7
8: 000002dc 0 SECTION LOCAL DEFAULT 8
9: 0000032c 0 SECTION LOCAL DEFAULT 9
10: 000003d4 0 SECTION LOCAL DEFAULT 10
11: 000003ec 0 SECTION LOCAL DEFAULT 11
12: 000003f0 0 SECTION LOCAL DEFAULT 12
13: 00000000 0 SECTION LOCAL DEFAULT 13
14: 00000000 0 SECTION LOCAL DEFAULT 14
15: 00000000 0 SECTION LOCAL DEFAULT 15
16: 00000000 0 SECTION LOCAL DEFAULT 16
17: 00000000 0 SECTION LOCAL DEFAULT 17
18: 00000000 0 SECTION LOCAL DEFAULT 18
19: 00000000 0 SECTION LOCAL DEFAULT 19
20: 00000000 0 SECTION LOCAL DEFAULT 20
21: 00000000 0 FILE LOCAL DEFAULT ABS test1.c
22: 000002dc 0 NOTYPE LOCAL DEFAULT 8 $t
23: 000003ec 0 NOTYPE LOCAL DEFAULT 11 $d
24: 0000031c 0 NOTYPE LOCAL DEFAULT 8 $d
25: 00000010 0 NOTYPE LOCAL DEFAULT 18 $d
26: 00000000 0 FILE LOCAL DEFAULT ABS
27: 0000032c 0 OBJECT LOCAL DEFAULT ABS DYNAMIC
28: 000003d4 0 OBJECT LOCAL DEFAULT ABS GLOBAL_OFFSET_TABLE
29: 000002bc 0 NOTYPE LOCAL DEFAULT 7 $t
30: 000002c8 0 NOTYPE LOCAL DEFAULT 7 $d
31: 000002cc 0 NOTYPE LOCAL DEFAULT 7 $t
32: 000002cc 0 NOTYPE LOCAL DEFAULT 7 $t
33: 000003f0 40 OBJECT GLOBAL DEFAULT 12 b
34: 00000440 0 NOTYPE GLOBAL DEFAULT 12 bss_end

35: 000003f0 0 NOTYPE GLOBAL DEFAULT 12 bss_start
36: 000002dd 14 FUNC GLOBAL DEFAULT 8 bb
37: 000003ec 4 OBJECT GLOBAL DEFAULT 11 aa
38: 00000440 0 NOTYPE GLOBAL DEFAULT 12 bss_end
39: 00000000 0 FUNC GLOBAL DEFAULT UND mul
40: 000003f0 0 NOTYPE GLOBAL DEFAULT 12 __bss_start
41: 000002eb 66 FUNC GLOBAL DEFAULT 8 main
42: 00000440 0 NOTYPE GLOBAL DEFAULT 12 end
43: 000003f0 0 NOTYPE GLOBAL DEFAULT 11 _edata
44: 00000440 0 NOTYPE GLOBAL DEFAULT 12 _end
45: 00000418 40 OBJECT GLOBAL DEFAULT 12 a
46: 00080000 0 NOTYPE GLOBAL DEFAULT 20 _stack
47: 000003ec 0 NOTYPE GLOBAL DEFAULT 11 __data_start

Histogram for bucket list length (total of 3 buckets):
Length Number % of total Coverage
0 3 (100.0%)

No version information found in this file.
Attribute Section: aeabi
File Attributes
Tag_CPU_name: “Cortex-M3”
Tag_CPU_arch: v7
Tag_CPU_arch_profile: Microcontroller
Tag_THUMB_ISA_use: Thumb-2
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: small
Tag_ABI_optimization_goals: Aggressive Debug
Tag_CPU_unaligned_access: v6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FASMARM v1.42 This package is an ARM assembler add-on for FASM. FASMARM currently supports the full range of instructions for 32-bit and 64-bit ARM processors and coprocessors up to and including v8. Contents: 1. ARM assembly compatibility 2. UAL and pre-UAL syntaxes 3. IT block handling 4. Alternate encodings 5. Output formats 6. Control directives 7. Data definitions 8. Defining registers lists inside macros 9. Half-precision number formatting 10. Variants supported 11. Further information 12. Version history _______________________________________________________________________________ 1. ARM assembly compatibility There are a few restrictions how the ARM instruction set is implemented. The changes are minor and mostly have a minor impact. For the most part the basic instruction outline is the same. Where possible the original style is used but there are some differences: Not everything matches the ARM ADS assembly style, where possible the original style is used but there are some differences 1) label names cannot begin with a digit 2) CPSIE and CPSID formats are changed, use "iflags_aif" form instead of "aif" (eg. "CPSIE iflags_i" instead of "CPSID i") 3) SRS with writeback must have a separating space after the mode number and before "!" (eg. "SRSDB 16 !" instead of "SRSDB 16!") 4) macro, rept, irp, format, if, virtual etc. are all significant changes from the ARM ADS, so you will need to re-write those sections of existing code Original ARM Syntax | fasmarm Syntax ----------------------+---------------------- cpsie a | cpsie iflags_a | srsdb #29! | srsdb #29 ! ;or, | srsdb 29 ! _______________________________________________________________________________ 2. UAL and pre-UAL syntaxes fasmarm supports the original pre-UAL syntax and the newer UAL syntax. These two syntaxes only affect THUMB encodings. UAL stands for: Universal Assembly Language. pre-UAL syntax is selected wi

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值