首页 > 编程知识 正文

readkeyboard方法,readelf的输出内容

时间:2023-05-04 18:52:11 阅读:18727 作者:3505

摘要readelf命令用于显示一个或多个elf格式的目标文件的信息,通过该选项可以控制显示的信息。 其中的elf-file(s )表示已检查的文件。 它支持32位、64位elf格式的文件和包含elf文件的文档。 这里通常指的是使用ar命令打包几个elf文件后生成的“静态库”文件,如lib*.a。 此程序类似于objdump提供的功能,但它显示更具体的信息并独立于BFD库,因此即使BFD库中存在错误也不会影响readelf程序。 BFD库是一个GNU项目,其目标是在统一的界面中处理不同的目标文件。

运行readelf时,必须指定一个-v和-H以外的选项。

ELF文件类型可重定位文件:用户与其他目标文件一起创建可执行文件,或创建共享目标文件,如lib*.a文件。 可执行文件:用于生成进程映像,并将其加载到内存中执行。 例如,编译的可执行文件a.out。 共享目标文件:用于与其他共享目标文件或可重定位文件一起生成elf目标文件,或与可执行文件(如lib*.so文件)一起创建进程映像。

ELF文件提供与程序的连接(生成程序)和执行程序的ELF文件,因此可以从多个角度查看ELF格式的文件。

用于编译和链接(可重定位文件)时,编译器和链接器将elf文件视为节标头表中描述的节的集合,程序标头表是可选的。 加载执行(可执行文件)时,加载器将elf文件视为程序头表中描述的段的集合。 一个段可能包含多个节,节标题表是可选的。 对于共享文件,这两者都包括在内。

ELF文件的整体结构

elf文件标头描述了elf文件的总体信息。 包括系统相关、类型相关、加载相关、链接相关。

根据系统关联,关于elf文件标记的魔术数、硬件和平台等的信息,提高了elf文件的可移植性,能够交叉编译的类型关联为上述类型。 加载相关:包含有关程序头表的信息。 链接相关:节标题表相关信息。 选项-a

--all表示所有信息,与-h -l -S -s -r -d -V -A -I等价。

-h

--file-header显示elf文件开头的文件头信息。

-l

- -程序头

-显示-segments(jmddx )信息(如果有)。

-S

--section-headers

- -显示--sections节标题信息(如果有)。

-g

--section-groups部分组信息(如果存在)将显示。

-t

显示--Section-details部分的详细信息(-s中的)。

-s

--syms

--symbols显示符号表段中的项目。

-e

--headers显示所有标头信息,等效于: -h -l -S

-n

-显示-notesnote段(内核注释)的信息。

-r

--relocs显示可重新定位段的信息。

-u

-显示未使用的未使用的段信息。 当前仅支持IA64 ELF的unwind分段信息。

-d

- -动态显示动态段的信息。

-V

- -版本信息显示版本段的信息。

-A

--arch-specific显示CPU框架信息。

-D

--use-dynamic使用动态段中的符号表而不是符号段来显示符号。

-xnumber or name

--hex-dump=number or name以十六进制形式显示指定字段中的内容。 number指定段表格中间的索引,或通过字符串指定文件中的段名称。

-w[liaprmfFsoR] or

--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=interp,=str,=

-I

- -当--histogram显示符号时,将显示bucket list长度的条形图。

-v

--version显示自述版本信息。

-H

--help显示readelf支持的命令行选项。

-W

- -宽--wide行输出。

@file可以将选项组合成一个文件,并使用此@file选项加载。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。