ToB企服应用市场:ToB评测及商务社交产业平台

标题: 菜鸟条记之PWN入门(1.1.0)ELF 文件格式和程序段解析(简版) [打印本页]

作者: 用多少眼泪才能让你相信    时间: 前天 17:22
标题: 菜鸟条记之PWN入门(1.1.0)ELF 文件格式和程序段解析(简版)
ELF (Executable and Linkable Format): 是一种用于 可执行文件、目标文件 和 库 的文件格式,类似于 Windows 下的 PE 文件格式。
ELF 主要包罗三种类型的文件:
ELF 文件包罗多个段,每个段负担不同的作用。以下是一些入门级 PWN 可能需要用到的段(仅介绍这些根本段):
ELF 文件中的段在程序执行前会被加载到内存中,然后在计算机内存中
一个程序可以以为由bss段、data段、text段三个部分组成的。
text段和data段都存在可执行文件当中,程序执行时,体系从可执行文件中加载至内存
而bss段在可执行文件中只是一个符号用于占位,由体系根据其符号进行初始化
怎样加载:

.text 段

.data 段

例子:
  1. #include <stdio.h>
  2. int str[30] = "i_am_xidp_and_i_love_pwn";
  3. int main() {
  4.     printf("%s", str);
  5.     return 0;
  6. }
复制代码
在上述例子中,已经被赋值好的数据 str 会被放在 .data 段中。由于其大小是固定的,因此 .data 段中的数据也是固定大小的。
.bss 段

例子:
  1. #include <stdio.h>
  2. int str[30];
  3. int main() {
  4.     scanf("%s", str);
  5.     printf("%s", str);
  6.     return 0;
  7. }
复制代码
.bss 段本身不会占用 ELF 文件的现实大小,它在 ELF 等可执行文件中只是一个符号用于占位。程序执行时,会根据这个符号在计算机中分配相应的内存大小。
数据区: .data 段和 .bss 段通常被称为数据区。
参考文献:
Linux可执行文件格式-ELF结构详解 - 我叫平沢唯 - 博客园 (cnblogs.com)
PWN入门(1-1-2)-bss段、data段、text段、堆(heap)和栈(stack) (yuque.com)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4