readelf 命令用来显示一个或者多个 elf 格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的 elf-file(s) 就表示那些被检查的文件。可以支持 32 位,64 位的 elf 格式文件,也支持包含 elf 文件的文档(这里一般指的是使用 ar 命令将一些 elf 文件打包之后生成的例如 lib*.a 之类的“静态库”文件)。
这个程序和 objdump 提供的功能类似,但是它显示的信息更为具体,并且它不依赖 BFD 库 (BFD 库是一个 GNU 项目,它的目标就是希望通过一种统一的接口来处理不同的目标文件),所以即使 BFD 库有什么 bug 存在的话也不会影响到 readelf 程序。
还需注意的是运行 readelf 的时候,除了 - v 和 - H 之外,其它的选项必须有一个被指定。
语法格式:readelf [参数] [文件名]
常用选项:
-a | 显示全部信息 |
-h | 显示 elf 文件开始的文件头信息 |
-S | 显示节头信息 |
-g | 显示节组信息 |
-V | 显示版本段的信息 |
参考实例
读取可执行文件形式的 elf 文件头信息:
[root@linuxvip ~]# readelf -h main
读取目标文件形式的 elf 文件头信息:
[root@linuxvip ~]# readelf -h myfile.o
读取静态库文件形式的 elf 文件头信息:
[root@linuxvip ~]# readelf -h libmy.a
读取动态库文件形式的 elf 文件头信息:
[root@linuxvip ~]# readelf -h libmy.so
查看可执行的 elf 文件程序头表信息:
[root@linuxvip ~]# readelf -l main
正文完
发表至: 文件管理
2020-01-21