美文网首页
2020-01-09 可执行文件结构

2020-01-09 可执行文件结构

作者: 下班买鸡蛋 | 来源:发表于2020-01-09 14:52 被阅读0次

一、文件头:

1.ELF魔数、文件机器字节长度、数据存储方式、版本、运行平台、ABI版本、ELF重定位类型、硬件平台、硬件平台版本、入口地址、程序头入口和长度、段表的位置和长度及段的数量等。

二、段表:

1.保存段的基本特性,比如每个段的段名、段的长度、在文件中的偏移、读写权限及段的其他属性。

2.ELF文件的段结构就是由段表决定的,编译器、链接器和装载器都是依靠段表来定位和访问各个段的属性的。

三、代码段(.text)

1、代码转成的汇编指令

四、数据段

1、(.data)里放已经初始化了的全局静态变量和局部静态变量,有时候编译器会把字符串常量放到(.data)段

2、(.rodata)里放的是只读数据,一般是程序里的只读变量(如const修饰的变量)和字符串常量。

五、BSS段

1、(.bss)段里放的是未初始化的全局变量和局部静态变量,有的编译器会将全局的未初始化变量存放在目标文件.bss段,有些则不放,只是预留一个未定义的全局变量符号,等到最终链接成可执行文件的时候再在.bss段分配空间。

六、(.strtab)段

1、字符串表,用于存储ELF文件中用到的各种字符串

七、(.symtab)段

1、符号表

八、(.shstrtab)段

1、段名表

九、(.comment)段

1、存放的是编辑器信息版本信息

十、(.dynamic)段

1、动态链接信息

十一、(.plt .got)段

1、动态链接的跳转表和全局入口表

十二、(.init .fini)段

1、程序初始化与终结代码段

十三、(.rel.*)

1、重定位表,链接的时候需要对目标文件中某些不为进行重定位,即代码段和数据段中那些对绝对地址的引用的位置。

相关文章

  • 2020-01-09 可执行文件结构

    一、文件头: 1.ELF魔数、文件机器字节长度、数据存储方式、版本、运行平台、ABI版本、ELF重定位类型、硬件平...

  • Ubuntu学习笔记-常用命令

    一、目录结构 bin (binaries)存放二进制可执行文件 sbin (super user binaries...

  • 操作系统(2)---- 可执行文件布局

    静态布局和动态布局 这里分析可执行文件,静态布局是指可执行文件在存储器上的内部结构,动态布局是指程序被加载到内存上...

  • iOS .ipa文件分析

    ipa解包后结构: 可执行文件 .car,资源打包文件 _CodeSignature签名文件分析这些文件,可以了解...

  • Linux基础

    1. Linux目录结构 bin:(binaries) 存放二进制可执行文件 sbin:(super user b...

  • 内存管理基础

    程序可执行文件的结构 一个程序的可执行文件在内存中的结果,从大的角度可以分为两个部分:只读部分和可读写部分。只读部...

  • iOS逆向工程 -- 看图层的工具

    iOS逆向 Reveal FLEXLoader 图层结构 提要 对于iOS逆向,在我们拿到解密后的可执行文件后,我...

  • 初识tomcat

    tomcat目录结构bin/ : 二进制可执行文件和脚本,比如tomcat的启动命令(Catalina,start...

  • Linux笔记

    Linux目录结构 /:根目录 /bin:和/usr/bin:可执行文件 /home:系统默认的用户家目录,表示当...

  • 常用Linux命令

    Linux的树状目录结构 /bin 系统可执行文件 /usr 系统应用程序 /home 用户目录 /var 系统的...

网友评论

      本文标题:2020-01-09 可执行文件结构

      本文链接:https://www.haomeiwen.com/subject/eiuyactx.html