日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

readelf和ldd分析elf文件

發(fā)布時間:2023/11/27 生活经验 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 readelf和ldd分析elf文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. elf 文件格式
linux系統(tǒng)中,gcc編譯器編譯出的object文件、可執(zhí)行文件都屬于elf文件。

elf文件由三個部分組成:elf header、program headers|section headers、sections|program segments。
如果是executable文件,則section部分是不需要的;如果是loadable文件,則program segment部分是不需要的。

2. readelf工具
readelf命令用途: Displays information about an elf file.
查詢文件所有信息

readelf object-file-name -a
查詢elf header
readelf object-file-name -h
查詢符號表
readelf object-file-name -s
查詢所有section詳細(xì)信息
readelf object-file-name -t 或者 readelf object-file-name -S
dump某個section的信息
readelf object-file-name -p section-name|section-index
readelf object-file-name -x section-name|section-index
readelf object-file-name -R section-name|section-index

?

使用 readelf 來顯示程序標(biāo)題

#readelf -l cpuid2

注意,ld-linux.so 本身就是一個 ELF 共享庫,但它是靜態(tài)編譯的并且不具備共享庫依賴項。當(dāng)需要動態(tài)鏈接時,內(nèi)核會引導(dǎo)動態(tài)鏈接(ELF 解釋器),該鏈接首先會初始化自身,然后加載指定的共享對象(已加載則不必)。接著它會執(zhí)行必要的再定位,包括目標(biāo)共享對象所使用的共享對象。


#readelf -l cpuid2.o

There are no program headers in this file.


ldd命令

Linux 提供了很多種查看和解析 ELF 對象(包括共享庫)的工具。其中最有用的一個當(dāng)屬 ldd命令,可以使用它來發(fā)現(xiàn)共享庫依賴項

#ldd cpuid2

ldd所告訴您的是:該 ELF 映像依賴于 linux-gate.so(一個特殊的共享對象,它處理系統(tǒng)調(diào)用,它在文件系統(tǒng)中無關(guān)聯(lián)文件),GNU C庫(libc.so)以及 Linux 動態(tài)加載器(因為它里面有共享庫依賴項)。


#ldd cpuid2.o

ldd: 警告: 你沒有執(zhí)行權(quán)限 `./cpuid2.o'
不是動態(tài)可執(zhí)行文件


readelf識別對象內(nèi)可再定位的C庫

readelf 命令是一個有很多特性的實用程序,它讓您能夠解析和讀取 ELF 對象。readelf 有一個有趣的用途,就是用來識別對象內(nèi)可再定位的項。對于我們這個簡單的程序來說,可以看到需要再定位的符號

#readelf -r cpuid2

從這個列表中,您可以看到各種各樣的需要再定位(到 libc.so)的 C庫調(diào)用。


#readelf -r cpuid2.o



readelf查看共享庫的依賴庫(NEEDED)和搜索名(SONAME)

#readelf -d cpuid2


#readelf -d cpuid2.o

無輸出


readelf查看ELF頭信息

#readelf -h cpuid2


#readelf -h cpuid2.o


附錄

#man readelf

總結(jié)

以上是生活随笔為你收集整理的readelf和ldd分析elf文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。