ELF文件格式內部結構詳解(三)
文章目錄
- ELF文件格式內部結構詳解(三)
- 12、動態部分和動態加載
- 13、依賴加載(需要)
- 14、程序重定位
- 14.1 靜態重定位
- 14.2 動態重定位
- 14.3 全局偏移表 (GOT)
- 14.4 過程鏈接表 (PLT)
12、動態部分和動態加載
ELF 文件格式中的 .dynamic 部分用于指示加載器如何鏈接并準備執行二進制文件。
我們可以使用 readelf -d 命令詳細查看 ELF 文件的動態部分。
這些段由加載器處理,最終生成一個可運行的程序。與我們見過的其他表一樣,每個條目都有對應的類型,詳細說明了如何解釋它,以及其數據相對于動態段起始位置的位置。
令人困惑的是,動態頭文件還維護著自己的符號表和字符串表,它們獨立于 ELF 文件的主字符串表和符號表。它們的位置由 STRTAB 和 SYMTAB 表項指定,其大小分別由 STRSZ 字段(以字節為單位的字符串表大小)和 SYMENT 字段(動態符號表中的符號條目數)決定。