深入了解 ELF:探索可执行文件的核心

Inside ELF: Exploring the Core of Executable Files

了解 Linux 中的可执行文件和链接格式

 学习内容

  • 对ELF(可执行和可链接格式)文件结构有深入的理解。
  • 剖析 ELF 文件并解释其内容的分析技术。
  • 通过真实世界的示例和教程获得实践经验,以巩固他们对 ELF 文件格式的了解。
  • 编写一个非常小的 ELF 文件

要求

  • 熟悉Unix/Linux操作系统环境。
  • 使用基于 Unix/Linux 的操作系统的计算机进行动手练习(推荐,但不是强制性的)。

描述

这门综合课程将引导您逐步完成引人入胜的视频教程,并教您需要了解的有关 Linux 可执行文件格式的所有基本概念和主题:Linux 中的 ELF

ELF 是类 Unix 操作系统上可执行文件、目标代码、共享库和核心转储的标准二进制格式。在本课程中,我们将解开 ELF 的复杂性,探索其结构、部分、标题和动态链接机制。


您将在这门课程中学到什么

  • 了解 ELF 文件的内部详细信息

  • 了解编译过程的不同阶段(预处理、编译、组装、链接)

  • 了解什么是机器码或操作码(opcode)

  • 编写 ARM 汇编代码并在 QEMU 上运行

  • 理解汇编代码的语法(标签、指令、注释、汇编器指令)

  • 不同的部分:.text、.data、.bss

  • 在 QEMU 监视器界面中查看 ARM 寄存器

  • 汇编程序指令(.byte、.asciiz、.ascii、.align、.global、.text、.data)

  • 查看符号表并了解符号分辨率

  • 了解汇编程序和链接器的角色

  • Linker 执行的搬迁操作(Section Merging 和 Section Placement)

  • 什么是链接器脚本,并编写一个简单的链接器脚本文件并在编译时使用它

  • 运行时间地址和加载时间地址

  • 从链接器脚本创建节

  • 编写用于将数据复制到 RAM、bss 和初始化堆栈的启动代码

  • 使用 readelf 命令了解 ELF 头文件

  • 如果我更改 ELF 文件的第一个字节会发生什么

  • 生成核心转储并验证 ELF 标头

  • 了解 ELF Header 的不同成员

  • 更改 ELF Header 的不同成员

  • 了解谁使用 gdb 和 _start() 调用 main()

  • 从 C 代码编写 ELF 头文件

  • 部分与段

  • ELF 文件的链接器和加载器视图

  • 不同的 readelf 命令 (readelf -h , readelf -WS, readelf -Wl, readelf -a..)

  • 了解节标题和程序标题的各种字段

  • dumpelf 命令以 C 结构格式转储 ELF 结构

  • 编写 C 代码以打印 ELF Section Header 的一些字段

  • 当我们在 ELF 文件内使用调试信息 (-g) 编译用户空间程序时会发生什么

  • 使用“size”命令获取文本、数据和 bss 部分的大小

  • 更深入地了解符号表以及运行“strip”命令时会发生什么

  • 编写一个非常小的 ELF 可执行文件,大小小于 200KB

也没有风险!

本课程保证 30 天退款! 如果您对课程不满意,您将退还您的钱

那么,您还在等什么,立即注册并迈出成为 ELF 文件格式专家的下一步

本课程适合谁:

  • 对了解可执行文件的内部工作原理感兴趣的软件开发人员。
  • 网络安全专业人员,旨在提高他们在分析和保护软件二进制文件方面的技能。
  • 寻求加深对低级编程概念理解的计算机科学专业学生

 

2024-10-14 更新 遗漏的文件

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。