您好,登錄后才能下訂單哦!
這篇文章主要介紹了Linux常用命令readelf怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
readelf elf-file(s)
ELF文件類型:
a)可重定位文件:用戶和其他目標文件一起創(chuàng)建可執(zhí)行文件或者共享目標文件,例如lib*.a文件。
b)可執(zhí)行文件:用于生成進程映像,載入內存執(zhí)行,例如編譯好的可執(zhí)行文件a.out。
c)共享目標文件:用于和其他共享目標文件或者可重定位文件一起生成elf目標文件或者和執(zhí)行文件一起創(chuàng)建進程映像,例如lib*.so文件。
ELF文件作用:
ELF文件參與程序的連接(建立一個程序)和程序的執(zhí)行(運行一個程序),所以可以從不同的角度來看待elf格式的文件:
a)如果用于編譯和鏈接(可重定位文件),則編譯器和鏈接器將把elf文件看作是節(jié)頭表描述的節(jié)的集合,程序頭表可選。
b)如果用于加載執(zhí)行(可執(zhí)行文件),則加載器則將把elf文件看作是程序頭表描述的段的集合,一個段可能包含多個節(jié),節(jié)頭表可選。
c)如果是共享文件,則兩者都含有。
ELF文件總體組成:
elf文件頭描述elf文件的總體信息。包括: 系統(tǒng)相關,類型相關,加載相關,鏈接相關。
系統(tǒng)相關表示:elf文件標識的魔術數(shù),以及硬件和平臺等相關信息,增加了elf文件的移植性,使交叉編譯成為可能。 類型相關就是前面說的那個類型。 加載相關:包括程序頭表相關信息。 鏈接相關:節(jié)頭表相關信息。 1234567
選項(以短、長形式給出):
-a :--all 顯示全部信息,等價于 -h -l -S -s -r -d -V -A -I -h :--file-header 顯示elf文件開始的文件頭信息. -l :--program-headers ;--segments 顯示程序頭(段頭)信息(如果有的話)。 -S :--section-headers ;--sections 顯示節(jié)頭信息(如果有的話)。 -g :--section-groups 顯示節(jié)組信息(如果有的話)。 -t :--section-details 顯示節(jié)的詳細信息(-S的)。 -s :--syms ;--symbols 顯示符號表段中的項(如果有的話)。 -e :--headers 顯示全部頭信息,等價于: -h -l -S -n :--notes 顯示note段(內核注釋)的信息。 -r :--relocs 顯示可重定位段的信息。 -u :--unwind 顯示unwind段信息。當前只支持IA64 ELF的unwind段信息。 -d :--dynamic 顯示動態(tài)段的信息。 -V :--version-info 顯示版本段的信息。 -A :--arch-specific 顯示CPU構架信息。 -D :--use-dynamic 使用動態(tài)段中的符號表顯示符號,而不是使用符號段。 -x:--hex-dump=以16進制方式顯示指定段內內容。number指定段表中段的索引,或字符串指定文件中的段名。 -w[liaprmfFsoR]或者 -debugdump[=line,=info,=abbrev,=pubnames,=aranges, =macro,=frames,=frames-interp,=str,=loc,=Ranges] 顯示調試段中指定的內容。 -I :--histogram 顯示符號的時候,顯示bucket list長度的柱狀圖。 -v :--version 顯示readelf的版本信息。 -H :--help 顯示readelf所支持的命令行選項。 -W :--wide 寬行輸出。 1234567891011121314151617181920212223242526272829303132333435363738394041424344
舉例:
main.c中的內容如下:
#include void my_print() { printf(“hello word”); } int main () { my_print(); return 0; } 123456789101112
生成a.out文件,用readelf命令讀取一下,得到:
這里,可見可執(zhí)行文件的elf文件,其類型為EXEC(可執(zhí)行文件),并且由此可見文件的體系結構為Intel 80386。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Linux常用命令readelf怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。