elf 格式簡析

2021-06-25 17:54:29 字數 3819 閱讀 5731

elf 格式簡析

elf file type is exec (executable file)

entry point 0x308000

there are 4 program headers, starting at offset 52

program headers:

type           offset   virtaddr   physaddr   filesiz memsiz  *** align

load           0x001000 0x02800000 0x02800000 0x01000 0x01000 r   0

load           0x002000 0x00308000 0x00308000 0x1d47a0 0x3a9680 rwe 0x1000

load           0x1d7000 0x03008000 0x03008000 0x1e7350 0x220500 rwe 0x20

load           0x3bf000 0x0b808000 0x0b808000 0x1e7350 0x220500 rwe 0x20

segment sections...

00     rom

01     data

02     data

03     data

offset --> 相對elf header頭部最開開始的實體地址偏移

virtaddr --> 載入到記憶體時候的虛擬位址

physaddr --> 無意義

filesiz --> elf中program尺寸

memsiz --> program 載入到meme尺寸,含bss

there are 16 section headers, starting at offset 0x866b58:

section headers:

[nr] name              type             address           offset

size              entsize          flags  link  info  align

[ 0]                   null             0000000000000000  00000000

0000000000000000  0000000000000000           0     0     0

[ 1] .text             progbits         0000000000308000  00001000

00000000001c29b0  0000000000000000 wax       0     0     4096

[ 2] .cpu_private      progbits         00000000ff800000  001d57a0

0000000000002b68  0000000000000000   w       0     0     32

[ 3] .data             progbits         00000000004cb000  001c4000

00000000000117a0  0000000000000000  wa       0     0     4096

[ 4] .bss              nobits           00000000004dd000  001d57a0

00000000001d4680  0000000000000000  wa       0     0     4096

[ 5] .debug_aranges    progbits         0000000000000000  001d8310

00000000000053a0  0000000000000000           0     0     16

[ 6] .debug_pubnames   progbits         0000000000000000  001dd6b0

0000000000012bfd  0000000000000000           0     0     1

[ 7] .debug_info       progbits         0000000000000000  001f02ad

000000000048732f  0000000000000000           0     0     1

[ 8] .debug_abbrev     progbits         0000000000000000  006775dc

00000000000464d2  0000000000000000           0     0     1

[ 9] .debug_line       progbits         0000000000000000  006bdaae

000000000005bf05  0000000000000000           0     0     1

[10] .debug_str        progbits         0000000000000000  007199b3

00000000000236ab  0000000000000001  ms       0     0     1

[11] .debug_loc        progbits         0000000000000000  0073d05e

000000000010c6b2  0000000000000000           0     0     1

[12] .debug_ranges     progbits         0000000000000000  00849710

000000000001d3a0  0000000000000000           0     0     1

[13] .shstrtab         strtab           0000000000000000  00866ab0

00000000000000a2  0000000000000000           0     0     1

[14] .symtab           symtab           0000000000000000  00866f58

000000000001de68  0000000000000018          15   2451     8

[15] .strtab           strtab           0000000000000000  00884dc0

00000000000124d6  0000000000000000           0     0     1

key to flags:

w (write), a (alloc), x (execute), m (merge), s (strings), l (large)

i (info), l (link order), g (group), t (tls), e (exclude), x (unknown)

o (extra os processing required) o (os specific), p (processor specific)

address --> 虛擬位址

offset --> 相對elf header頭部最開開始的實體地址偏移

entsize --> 符號表等section中的表項數目

= elf header + 

program header + 

program data ( =  section data + section data + ...) + 

section header

AAC音訊格式簡析

1.adts是個啥 adts全稱是 audio data transport stream 是aac的一種十分常見的傳輸格式。adts aac adts header aac es adts header aac es adts header aac es adts 頭中相對有用的資訊取樣率 聲道數...

簡析ip資料報格式

版本 通訊雙方使用的版本必須一致。目前廣泛使用的是ipv4。首部長度 請注意,這個欄位所表示的數的單位是4個位元組,因此,當ip的首部長度是1111時,首部長 度就達到最大值60個位元組。當ip分組的首部長度不是4位元組的整數倍時,必須加以填充。區分服務 舊標準中叫服務型別 一般情況下不使用。總長度...

elf檔案格式 ELF 格式詳解(一)

elf 全稱 executable and linkable format 即可執行可鏈結檔案格式,目前常見的linux android可執行檔案 共享庫 so 目標檔案 o 以及core 檔案 吐核 均為此格式。檔案布局 常見的elf檔案大致結構如下 靜態鏈結器 即編譯後參與生成最終elf過程的鏈...