文件管理 · 2022年02月20日 0

readelf命令 – 显示elf格式文件的信息

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@anycode ~]# readelf -h main ``` 读取目标文件形式的elf文件头信息: ``` [root@anycode ~]# readelf -h myfile.o ``` 读取静态库文件形式的elf文件头信息: ``` [root@anycode ~]# readelf -h libmy.a ``` 读取动态库文件形式的elf文件头信息: ``` [root@anycode ~]# readelf -h libmy.so ``` 查看可执行的elf文件程序头表信息: ``` [root@anycode ~]# readelf -l main ```