IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 本周学习(2) -> 正文阅读

[系统运维]本周学习(2)

栈迁移

栈迁移主要是为了解决栈溢出可以溢出空间大小不足的问题

主要用的就是利用 leave;ret;

leave; //mov esp,ebp; pop ebp;

ret ; // pop eip

通过在栈内写入地址,ret返回的是栈顶数据,而栈顶地址是由esp寄存器的值决定的,也就是说如果控制了esp寄存器的数据,那么也就能够控制ret返回的栈顶数据。首先将栈中保存ebp数据的地址空间控制为我们想要栈顶地址,再利用两次leave操作,将esp寄存器中的值变成我们想让它成为的值。

ELF文件

ELF文件类型

ELF文件类型说明实例
Relocatable File包含例代码和数据,可以被链接成可执行文件或共享目标文件Linux下的.o文件
Executable File包含可以直接执行的程序,ELF可执行文件,一般没有扩展名/bin/bash文件
Shared Object File包含代码和数据,和其他目标文件链接成新的目标文件,和可执行文件链接作为进程映像的一部分来允许Linux下的.so文件
Core Dump File进程意外终止时可以产生的文件,存储着该进程的内存空间中的内容等信息Linux下的core dump

ELF文件的结构

链接视角,通过节来进行划分

ELF header(ELF文件头)
Program header table(程序头表) 可选
Section 1(节区1)
……
Section n(节区n)
Section header table(节头表)

运行视角,通过段来进行划分

ELF header(ELF文件头)
Program header table(程序头表)
Segment 1(段区1)
Segment 2(段区2)
……
Section header table(节头表)可选

ELF文件头:位于文件最开始的位置,包含文件的一些基本信息,例如ELF文件类型,版本/ABI版本、目标机器、程序入口、段表和节表的位置和长度等。

节头表:一个文件包含很多节,这些节保证到节头表中,表中记录了节的名字、长度、偏移、读写权限等信息。

名称内容
代码节可执行代码、字符串常量
数据节已初始化全局变量、已初始化全局静态变量、局部静态变量、常量数据
BSS节未初始化全局变量,未初始化全局静态变量
当装载至内存中后需要如下两个段
局部变量、函数参数
动态内存分配

参考Linux[ELF]: ELF文件结构简单梳理_TaylorPotter的博客-CSDN博客_elf文件结构

栈迁移图解_夏天的知了的博客-CSDN博客

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:37:00  更:2022-02-14 21:39:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:20:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码