翼度科技»论坛 云主机 LINUX 查看内容

readelf命令读取elf文件的详细信息

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
概述

readelf用于查看elf文件的文件信息,关于elf文件及其格式的介绍在【ctf权威竞赛指南笔记】(2)二进制文件中有比较详细的介绍。
常用参数

在这里使用一个elfDemo.rel作为示例,elfDemo.rel是elfDemo.c使用如下指令生成的。
  1. gcc -c elfDemo.c -o elfDemo.rel
复制代码
elfDemo.c内容如下:
  1. #include<stdio.h>
  2. int global_inited_var = 10;//global var inited
  3. int global_uninited_var;//global var uninited
  4. char* global_char_x = "saa";
  5. void func(int sum)
  6. {
  7.         printf("%d\n",sum);
  8. }
  9. void main(){
  10.         static int local_static_inited_var = 20;//local static inited
  11.         static int local_static_uninited_var;//local static uninited
  12.         int local_inited_var = 30;//local inited
  13.         int local_uninited_var;//local uninited                                       
  14.         func(local_static_inited_var+local_static_inited_var+local_inited_var +local_uninited_var);
  15. }
复制代码
-a 全部

显示全部信息,等同于附参数-h -l -S -s -r -d -V -A -I
  1. readelf -a elfDemo.rel
复制代码

-h 文件头

查看elf文件的文件头。
  1. readelf -a elfDemo.rel
复制代码

-l 程序头

显示elf文件的程序头信息。需要注意,参数为小写L而不是大写的i。
等同于--program-headers或--segments
  1. readelf -l elfDemo.rel
复制代码

rel文件需要链接而不可以直接执行,所以没有程序头。
-S section头

显示段头内容。
等同于--section-headers或--sections
  1. readelf -S elfDemo.rel
复制代码
-e 全部头

等同于-h -l -S,显示三个头部信息。
  1. readelf -e elfDemo.rel
复制代码

-s 符号表

等同于--symbols。显示符号表。
  1. readelf -e elfDemo.rel
复制代码

-n 内核注释

显示内核注释信息。
-r 重定位

显示重定位信息。
  1. readelf -r elfDemo.rel
复制代码

-d 动态段

显示动态段信息。
这个文件没有.dynamic段。

-V 版本

显示elf文件的版本信息。

-A CPU架构

显示CPU架构信息。
-x  16进制展示段

以16进制形式显示指定段的内容,可以用段的索引或者段名来指定。
如在section头中可以看到,.text段索引为1,所以可以使用。、
  1. readelf -x 1 elfDemo.rel
  2. readelf -x .text elfDemo.rel
复制代码
两种形式之一来查看.text段内的内容。



来源:https://www.cnblogs.com/muling1m/p/17110307.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具