可執行檔案中和動態鏈結有關的段section

2021-07-10 12:06:16 字數 615 閱讀 4081

內容是乙個字串,儲存了動態鏈結器的路徑,如/lib/ld-linux.so.2

有幾種檢視方式:

objdump -s a.out

readelf -l a.out | grep interpreter

儲存了動態鏈結器所需的基本資訊,具體可以看elf.h檔案或lsb手冊:

依賴於哪些共享物件

動態鏈結符號表.dynsym的位置

動態鏈結重定位表的位置

共享物件初始化**的位址

… 檢視方式:

readelf -d lib.so

ldd program1

關於linux-gate.so.1,是乙個核心虛擬共享物件(kernel virtual dso)

儲存了與動態鏈結相關的符號,而.symtab則儲存了所有符號,包括模組內部的符號

.dynstr動態符號表

.hash輔助的符號雜湊表,用於加快符號查詢速度

檢視方式:

readelf -sd lib.so

.rel.dyn是對資料引用的修正

.rel.plt是對函式引用的修正

檢視方式:

readelf -r lib.so

可執行檔案裝載與程序 動態鏈結

我們知道,可執行檔案只有裝載到記憶體以後才能被cpu執行。要了解裝載的過程,就必須先了解程序的虛擬位址空間的概念。一,程序虛擬位址空間的概念 1,程序和程式的區別 程式是靜態的概念,是未裝入記憶體的 程序是動態的概念,有時候也叫它 runtime 是已經裝入記憶體並且跑了起來的。2,程序虛擬位址空間...

編譯生成動態庫 鏈結動態庫生成可執行檔案

折騰了一天編譯 動態庫的問題,整理一下 參考 現有4個檔案 head.h 庫標頭檔案 source1.cc 庫原始檔1 source2.cc 庫原始檔2 include stdio.h include stdlib.h include head.h int main 庫標頭檔案head.h裡是庫原始...

linux 檢視可執行檔案動態鏈結庫的相關資訊

ldd 可執行檔名 檢視可執行檔案鏈結了哪些 系統動態鏈結庫 nm 可執行檔名 檢視可執行檔案裡面有哪些符號 strip 可執行檔名 去除符號表可以給可執行檔案 strings 可執行檔名 從可執行程式裡面提取出來一點什麼文字資訊 linux作業系統上面的動態共享庫大致分為三類 1 作業系統級別的共...