so文件格式详解_文件xls文件怎么打开

so文件格式详解_文件xls文件怎么打开可执行链接格式(ExecutableandLinkingFormat)最初是由UNIX系统实验室(UNIXSystemLaboratories,USL)开发并发布,作为应用程序二进制接口(ApplicationBinaryInterface,ABI)的一部分,它是一种常用的目标文件格式,主要包含以下三种类型1、可重定位文件:可与其它目标文件一起创建可执行文件和共

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

可执行链接格式 ( Executable and Linking Format)最初是由 UNIX 系统实验室 ( UNIXSystem Laboratories, USL)开发并发布, 作为应用程序二进制接口 ( Application BinaryInterface, ABI)的一部分,它是一种常用的目标文件格式,主要包含以下三种类型

1、可重定位文件:可与其它目标文件一起创建可执行文件和共享目标文件

2、可执行文件:可执行的一个程序,此文件规定了exec() 如何创建一个程序的进程映像。

3、共享目标文件:链接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件,动态连接器又可将它与可执行文件和其它共享目标文件结合起来创建一个进程映像。

ELF常用数据格式

so文件格式详解_文件xls文件怎么打开

所有数据结构都遵从“自然”大小和对齐规则。

目标文件格式

so文件格式详解_文件xls文件怎么打开

目标文件既要参与程序链接,又要参与程序执行,因此提供两种并行视图,分别反应不同活动需求。

ELF头部:描述整个文件组织。

程序头部:告诉系统如何创建进程映像。

节区头部:每个节区在表中都有一项,每一项给出节区名称、大小等信息。用于链接的目标文件必含节区头部表。

ELF Header

#define EI_NIDENT 16
typedef struct{
unsigned char e_ident[EI_NIDENT];//ElF标识信息,16个字节
Elf32_Half e_type;//目标文件类型,2个字节
Elf32_Half e_machine;//目标体系结构类型,2个字节
Elf32_Word e_version;//目标文件版本,4个字节
Elf32_Addr e_entry;//程序入口的虚拟地址,如果没有则为0,4个字节
Elf32_Off e_phoff;//程序头部表偏移,4个字节
Elf32_Off e_shoff;//节区头部表偏移,4个字节
Elf32_Word e_flags;//与文件相关,特定于处理器标志,4个字节
Elf32_Half e_ehsize;//elf头部大小,2个字节
Elf32_Half e_phentsize;//程序头部表格的表项大小,2个字节
Elf32_Half e_phnum;//程序头部表格表项数目,2个字节
Elf32_Half e_shentsize;//节区头部表格的表项大小,2个字节
Elf32_Half e_shnum;//节区头部表格的表项数目,2个字节
Elf32_Half e_shstrndx;//节区头部表格中与节区名称字符串表相关的表项索引,2个字节
}Elf32_Ehdr;

Program Header

typedef struct {
Elf32_Word p_type;//描述段的类型,4个字节
Elf32_Off p_offset;//段偏移,4个字节
Elf32_Addr p_vaddr;//段虚拟地址,4个字节
Elf32_Addr p_paddr;//物理地址,4个字节
Elf32_Word p_filesz;//段的文件映像大小,4个字节
Elf32_Word p_memsz;//段的内存映像大小,4个字节
Elf32_Word p_flags;//段相关标识,4个字节
Elf32_Word p_align;//对齐取值,4个字节
} Elf32_phdr;

Section Header

typedef struct{
Elf32_Word sh_name;//节区名称,是字符串表节区索引,4个字节
Elf32_Word sh_type;//节区类型,4个字节
Elf32_Word sh_flags;//节区标志,4个字节
Elf32_Addr sh_addr;//节区内存地址,4个字节
Elf32_Off sh_offset;//节区偏移,4个字节
Elf32_Word sh_size;//节区长度,4个字节
Elf32_Word sh_link;//节区头部表索引链接,4个字节
Elf32_Word sh_info;//附加信息,4个字节
Elf32_Word sh_addralign;//对齐约束,4个字节
Elf32_Word sh_entsize;//节区表项大小,4个字节
}Elf32_Shdr;

Symbol Table

typedef struct {
Elf32_Word st_name;//符号表项名称,是字符串表索引,4个字节
Elf32_Addr st_value;//符号值,4个字节
Elf32_Word st_size;//符号大小,4个字节
unsigned char st_info;//类型和绑定信息,1个字节
unsigned char st_other;//无定义,1个字节,当前值为0
Elf32_Half st_shndx;//节区头部索引,2个字节
} Elf32_sym;

节区

节区包含目标文件中所有信息。除了ELF头部、程序头部表格、节区头部表格。节区满足以下条件:
1、每个节区都有对应的节区头部描述,而有节区头部却不一定有节区。
2、每个节区占用连续字节区域,可能为0
3、目标文件中可能包含非活动空间,这些区域不属于任何头部和节区,其内容未指定。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193384.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm2021.11.3激活补丁_最新在线免费激活

    (pycharm2021.11.3激活补丁)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    72
  • 面向对象之封装

    封装封装的定义隐藏对象的属性和实现细节,仅对外提供公共访问方式。封装的好处1.将变化隔离;2.便于使用;3.提高复用性;4.提高安全性;封装的原则1.将不需要对外提供的内容

    2022年3月29日
    49
  • 数仓拉链表[通俗易懂]

    数仓拉链表[通俗易懂]拉链表一丶什么是拉链表拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。拉链表可以避免按每一天存储所有记录造成的海量存储问题,同时也是处理缓慢变化数据的一种常见方式。百度百科的解释:拉链表是维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录,通过拉链表可以很方便的还原出拉链时点的客户记录。二丶拉链表的产生背景在数据仓库的

    2022年10月16日
    7
  • 示例的意思_实例

    示例的意思_实例JBoss 系列三十八:jBPM5示例之 Reusable Sub-Process

    2022年4月22日
    60
  • SAP培训是什么_培训机构有哪些好的建议

    SAP培训是什么_培训机构有哪些好的建议欢迎关注微信公众号:sap_gui(ERP咨询顾问之家)关于是否要参加SAP培训的话题已经是老生常谈了,知乎上随便一搜有好多人在问是否要去参加SAP培训,底下已经有很多人在上面给出了正确建议。但也

    2022年8月3日
    9
  • 八数码问题引发的思考

    八数码问题引发的思考学习人工智能这门课历经坎坷,拿到习题集,第一道就开口脆,原题如下:翻阅AIMA教材无思路,Berlekamp等人的文献不知如何找寻,冥想整日无头绪,遂四方觅得习题集参考答案,还是英文版:Definition:Thegoalstatehasthenumbersinacertainorder,whichwewillmeasureasstartingatt…

    2022年7月26日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号