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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDEA全局查找快捷键不管用(不起作用、没反应)[通俗易懂]

    IDEA全局查找快捷键不管用(不起作用、没反应)[通俗易懂]这种情况一般都是输入法快捷键冲突请参照博客https://blog.csdn.net/weixin_44018093/article/details/91542244进行修复

    2022年6月17日
    92
  • Oracle 11g AMM与ASMM切换

    Oracle 11g AMM与ASMM切换现在的Oracle正在往智能化方向发展。如果我们现在找一些8i/9i时代的Oracle书籍,怎么样配置合适的数据库各内存池大小是非常重要的话题。但是进入10g之后,自动内存池调节成为一个重要Oracle特性。在10g时,Oracle推出了ASMM(AutomaticSharedMemoryManagement),实现了OracleSGA和PGA内部结构的自调节。进入11g之后,AMM(A…

    2022年5月3日
    46
  • 物联网的架构_物联网的应用有哪些

    物联网的架构_物联网的应用有哪些物联网是一个层次化的网络,从下往上可分为四层:感知层、网络层、平台层和应用层。在各层之间,信息不是单向传递的,也有交互或控制。在所传递的信息中,主要是物的信息,包括物的识别码、物的静态信息、物的动态信息等。感知层:感知层是物联网的皮肤和五官,可以识别物体,采集信息。数据采集与感知主要用于采集物理世界中发生的物理事件和数据,包括各类物理量、标识、音频、视频数据。物联网的数据采集涉及传感器、…

    2022年9月18日
    1
  • java在线编辑_十大在线编译器(IDE),干货收藏!

    java在线编辑_十大在线编译器(IDE),干货收藏!文章来源:网络整理:薛定谔的coding猫1.CodeSandbox(基于React的在线代码沙盒平台)①主流的脚手架都支持,比如在线create-react-app,vue-cli等(在线fork修改),支持github登录(项目导入),也支持cli上传例子,例子可以在线访问和下载,当然也支持内嵌到其他博客等网页中。②地址:https://codesandbox.i…

    2022年7月8日
    150
  • VGA Boot modes to set screen resolution

    VGA Boot modes to set screen resolution

    2021年5月1日
    148
  • SMTP服务器地址_imap服务器怎么设置

    SMTP服务器地址_imap服务器怎么设置认识SMTP服务器首先要知道SMTP,SMTP是“SimpleMailTransferProtocol”的缩写,即简单电子邮件传输协议,而SMTP服务器就是遵循SMTP协议发送电子邮件的服务器,用来发送或中转用户发出的电子邮件。SMTP协议是一个相对简单、高效的文本协议,使用25端口,属于TCP/IP协议族,可以帮助每台SMTP服务器在发送或中转电子邮件时找到下一个目的地,要为一个给定的域名决定…

    2022年10月3日
    6

发表回复

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

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