重定位

2024/4/11 17:10:35

csapp-linklab

超详细csapp-linklab之第一阶段“输出学号”实验报告-CSDN博客 csapp-linklab之第二阶段“输出学号”实验报告-CSDN博客 csapp-linklab之第3阶段“输出学号”实验报告(强弱符号)-CSDN博客 csapp-linklab之第4阶段“输出学号”实验报告(swi…

第7章链接:重定位、可执行目标文件、加载可执行目标文件

文章目录 7.7 重定位7.7.1 重定位表目7.7.2 重定位符号引用重定位PC相关的引用重定位绝对引用 7.8 可执行目标文件7.9 加载可执行目标文件 7.7 重定位 一旦链接器完成了符号解析这一步,它就把代码中的每个符号引用和确定的一个符号定义(也就是&#xff…

段的概念_重定位的引入

段的概念 代码段、只读数据段、可读可写数据段、BSS段。 char g_Char A; //可读可写,不能放在ROM上,应该放在RAM里 const char g_Char2 B; //只读变量,可以放在ROM上 int g_A 0; //初始值为0,没有必要浪费空间 int g_B; //没…

Linux ELF 可执行链接格式学习

ELF 可执行链接格式(Executable and Linking Format)最初是由 UNIX 系统实验室(UNI XSystem Laboratories,USL)开发并发布的,作为应用程序二进制接口(Application Binary Interface,…

csapp-linklab之第3阶段“输出学号”实验报告(强弱符号)

题目 新建一个phase3_patch.o,使其与main.o和phase3.o链接后,运行输出自己的学号: $ gcc -o linkbomb main.o phase3.o phase3_patch.o $ ./linkbomb $学号 提示 利用符号解析中的强弱符号规则。(COOKIE字符串未初始化&#xff…

3. 加载器与加载连接用户程序

加载器与加载连接用户程序 加载器创建用户程序的呆子内核用户程序 加载器加载32位呆子内核 ;MBR本身占用512字节,起始地址0x7c00 ;GDT的位置:0x7c000x200(512) 0x7e00 ;GDT的界限:2的16次方:2^1664k0x10000 ;因此启动程序的位置放在: 0x7e000x10000 0x17e00 ;启动程序所在的…

深入理解计算机系统:链接(第二章:符号解析、重定位和可执行目标文件)

1、符号解析 链接器解析符号引用的方法是将每个引用与它输入的可重定位目标文件的符号表中的一个确定的符号定义关联起来,即使用的符号一定要找到相应的定义。可分为局部符号解析和全局符号解析。 局部符号解析:引用定义在相同模块中的局部符号的引用&…

C语言编译与链接过程详解

C语言编译与链接过程详解 源文件 main.c #include <stdio.h>extern int data; extern int add(int a,int b);int a1; int a2 0; int a3 10;static int b1; static int b2 0; static int b3 20;int main() {int c1;int c2 0;int c3 30;static int d1;static int …