elf文件分析-程序员的自我修养第三章学习

 今天学习程序员的自我修养第三章学习对其中的一些内容提取。

elf文件Linux操作系统二进制文件统一管理的格式文件,对其分析对于理解编译和链接、集成大型系统,修复bug很有帮助。

源程序都会通过编译、链接成可执行文件,可执行文件的elf文件格式是固定,下面看如下图:


这个就是C语言代码与elf文件格式的对应。

elf文件是通过段来组织的:

例如:

.test  存放代码

.data  存放已经定义的函数或者变量

.bss   存放未定义的变量或者函数。



还可以我们直接向elf添加内容或者字段。

例如:

objcopy -I binary -O elf32-i386 -B i386  image.jpg image.o(将图片内容添加到二进制文件中)

elf文件分析-程序员的自我修养第三章学习_第1张图片

添加自定义段:

还可以自定义段名利用:

__attribute__((section(“FOO”))) int global =32;

 

如何查看elf文件的各个段:

利用objdump命令,例如

elf文件分析-程序员的自我修养第三章学习_第2张图片

查看各段的基本信息概述。

 

还可以利用elfread,例如:

elfread  -h ***.o

 

利用objdump -s -d **   -s说明显示16进制信息,-d反汇编。

 

如何查看符号表:

nm *.o


elf文件分析-程序员的自我修养第三章学习_第3张图片


你可能感兴趣的:(链接,编译,二进制文件,ELF文件)