ELF文件格式内部结构详解(三)

文章目录

  • ELF文件格式内部结构详解(三)
    • 12、动态部分和动态加载
    • 13、依赖加载(需要)
    • 14、程序重定位
      • 14.1 静态重定位
      • 14.2 动态重定位
      • 14.3 全局偏移表 (GOT)
      • 14.4 过程链接表 (PLT)

12、动态部分和动态加载

ELF 文件格式中的 .dynamic 部分用于指示加载器如何链接并准备执行二进制文件。

我们可以使用 readelf -d 命令详细查看 ELF 文件的动态部分。

在这里插入图片描述

在这里插入图片描述

这些段由加载器处理,最终生成一个可运行的程序。与我们见过的其他表一样,每个条目都有对应的类型,详细说明了如何解释它,以及其数据相对于动态段起始位置的位置。

令人困惑的是,动态头文件还维护着自己的符号表和字符串表,它们独立于 ELF 文件的主字符串表和符号表。它们的位置由 STRTAB 和 SYMTAB 表项指定,其大小分别由 STRSZ 字段(以字节为单位的字符串表大小)和 SYMENT 字段(动态符号表中的符号条目数)决定。

13、依赖加载࿰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87568.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87568.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/87568.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML知识复习2

文章目录 HTML5简介什么是HTML5HTML5优势 新增语义化标签新增布局标签新增状态标签新增列表标签新增文本标签 新增表单功能表单控件新增属性input新增属性值 新增多媒体标签视频标签音频标签 HTML5兼容性处理 HTML5简介 什么是HTML5 HTML5 是新一代的 HTML 标准,2…

栈(Stack)和队列(Queue)

文章目录 前言1. 栈(Stack)1.1 什么是栈1.2 栈的常用操作1.3 栈的模拟实现1.4 栈的应用场景1.4.1 元素序列处理1.4.2 字符串反转1.4.3 括号匹配1.4.4 逆波兰表达式求值1.4.5 栈的压入、弹出序列1.4.6 最小栈1.4.7 递归转循环 1.5 概念区分1.5.1 数据结构中的栈1.5.2 JVM中的虚拟…

5G MEC四大核心挑战技术解析报告

一、MEC园区部署挑战:数据本地化与低时延接入 痛点深度解析 数据不出园区:工业质检、医疗影像等敏感业务需数据在本地闭环处理。但运营商基站与企业MEC间若经公网绕行,时延超50ms且存在泄露风险。L2网络局限:传统L2接入网无法实现基站→UPF的智能路由,导致业务流绕行城域…

【硬核拆解】英伟达Blackwell芯片架构如何重构AI算力边界?

前言 前些天发现了一个巨牛的人工智能免费学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 一、Blackwell诞生的算力危机(2025现状) graph TD A[2025年AI算力需求] --> B[千亿参数模型训练能耗…

【深度学习模块】图像的相对位置编码

这个是一个常用的模块,就是我们可以对输入的特征嵌入位置编码。 位置编码(Positional Encoding)是一种将空间位置信息嵌入到特征中的方法,通常用于帮助模型更好地理解特征的空间关系。 这里介绍的这个是相对位置编码,…

osg加入实时光照SilverLining 天空和3D 云

OSG系列文章目录 文章目录 OSG系列文章目录一、前言官网的介绍: 二、编译官网例子 一、前言 osg本身也可以加入动态云,但是效果有点差强人意,这里我们使用sundog公司的动态云:SilverLining 天空和 3D 云。 官网的介绍&#xff1…

spring-ai-alibaba 1.0.0.2 学习(十二)——聊天记忆扩展包

学习spring-ai时提到过,spring-ai除了内置的InMemoryChatMemoryRepository,还提供jdbc、cassandra、neo4j三个扩展包。 而spring-ai-alibaba则提供了jdbc、redis、elasticsearch三个扩展包。 两者都提供了jdbc扩展包,有什么区别呢&#xff…

c语言-指针(数组)练习2

题目:将数组中n个元素按逆序存放并打印出来,使用函数封装与指针 思路: 1.定义一个数组arr[5]和用于存放数组大小(数组大小通过sizeof关键字来进行计算)的变量len; 2.创建三个函数initArr、printArr、rev…

Redis服务器

Redis,一款Key-Value型内存数据库 常用于网站开发场景 Redis服务器只发布了Linux版本 Redis服务器安装,2种办法 自动安装 apt install redis-server手动编译安装 从官网下载源码,编译,部署 1 安装redis apt install redis-s…

LeetCode 第91题:解码方法

题目描述: 一条包含字母A-Z的消息通过以下映射进行了编码 1-A ...... 26-Z 要特别注意,11106可以映射为AAJF或KJF 06不是一个合法编码 给你一个只含数字的非空字符串s,请计算并返回解码方法的总数。如果没有合法的方法解码整个字符串&#xf…

Rocky Linux 9 源码包安装Mysql8

Rocky Linux 9 源码包安装Mysql8 大家好我是星哥,之前介绍了,Rocky Linux 9 源码包安装Mysql5.7。 本文将介绍如何在Rocky Linux 9操作系统上,从源码一步步安装MySQL 8,为您提供一个稳定、高效且可控的数据库解决方案。 为什么…

AI小智项目全解析:软硬件架构与开发环境配置

AI小智项目全解析:软硬件架构与开发环境配置 一、项目整体架构 AI小智是一款基于ESP32的智能物联网设备,集成了语音交互、边缘计算等功能。整体系统架构如下: 终端设备:ESP32模组作为核心通信方式: WebSocket实现实…

设计模式之上下文对象设计模式

目录 一、模式介绍 二、架构设计 三、Demo 示例 四、总结 一、模式介绍 上下文对象(Context Object)模式 最早由《Core J2EE Patterns》第二版提出,其核心目标是在多层或多组件间共享与当前作用域(如一次请求、一次会话、一次…

@Linux服务器加域退域

文章目录 **一、加入Active Directory域****1. 准备工作****2. 配置步骤****步骤1:验证网络和DNS****步骤2:发现域****步骤3:加入域****步骤4:配置SSSD(可选)****步骤5:配置sudo权限&#xff08…

鸿蒙系统(HarmonyOS)4.2 设备上实现无线安装 APK 并调试

在鸿蒙系统(HarmonyOS)4.2 设备上实现无线安装 APK 并调试的步骤与 Android 类似,但需注意鸿蒙系统的特殊设置。以下是详细操作指南: 鸿蒙系统特殊准备 开启开发者选项: - 设置 > 关于手机 > 连续点击"H…

MyBatis时间戳查询实战指南

在 MyBatis 中通过时间戳(Timestamp)作为查询条件,需注意数据库时间类型与 Java 类型的映射。以下是具体实现方式: 一、Java 实体类与数据库字段映射 实体类定义 使用 java.sql.Timestamp 或 java.time.LocalDateTime(…

【Verilog硬件语言学习笔记4】FPGA串口通信

串口通信是系统设计中比较基部分,其原理其实也很通俗易懂。单次建立通信会传输8个bit,其时序也很简单,这里就不再赘述了。其对应的实例代码如下所示; 首先是接受部分(因为我的变量命名也很规范,通俗易懂&a…

Go 语言安装教程(Windows 系统)

2025年07月02日 准备工作 确认系统为 Windows 7 及以上版本(推荐 Windows 10/11)。64 位系统选择 amd64 版本安装包,32 位系统选择 386 版本。确保安装目录(默认 C:\Program Files\Go\)有至少 1GB 空间。 下载安装包…

接口测试之postman

一、Postman功能简介 3天精通Postman接口测试,全套项目实战教程!! Postman是由Postdot Technologies公司打造的一款功能强大的调试HTTP接口的工具。在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各…

【记录】Ubuntu安装Mysql

本文记录Ubuntu系统下安装Mysql 1 查看系统信息 lsb_release -a 2 使用apt下载安装Mysql 1 打开终端,首先更新你的系统包索引,以确保所有包都是最新的 sudo apt update 2 安装mysql服务器 sudo apt install mysql-server (也可以选择对应的mysql-server 版本) 3 查看mysql状…