【PWN】学习笔记(三)【返回导向编程】(中)

news2024/9/25 13:13:44

目录

  • 课程
  • 回顾
  • 动态链接过程

课程

课程链接:https://www.bilibili.com/video/BV1854y1y7Ro/?vd_source=7b06bd7a9dd90c45c5c9c44d12e7b4e6
课程附件: https://pan.baidu.com/s/1vRCd4bMkqnqqY1nT2uhSYw 提取码: 5rx6

回顾

在这里插入图片描述
管道符 | 把前一个指令的输出作为后一个指令的输入,等同于数据注入
grep 的作用等同于把输入中含有后一个参数(eax)的字符串输出
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
值得注意的是,除了用IDA找/bin/sh的地址,还可以用pwntools中的函数来找。

动态链接过程

在这里插入图片描述
在这里插入图片描述
之前的ret2syscall之所以都可以找到gadget是因为静态链接,都写入了elf中
在这里插入图片描述
在这里插入图片描述
相同的程序动态链接和静态链接的函数数量显然不同
在这里插入图片描述

在这里插入图片描述
.text是代码节
foo@plt,foo是我们写的自定义函数,plt是程序中代码段中保存函数解析真实地址的节
PLT0最开始的两个指令是push 以及 jmp
.got.plt保存两个数组,其存放的位置是数据段
在这里插入图片描述
编译这段程序之后会生成一段汇编代码,在汇编中调用一个用户函数会使用call这个指令,调用存在于动态链接库中的函数(foo)
但是这里没法直接找到foo(因为压根没有),所以会在代码段中一个特殊的位置plt节(里面也是代码),没有在动态链接库中找到的函数都会在plt中创建一个表项
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
进入fool@plt表项中,首先jmp到GOT表中fool的位置。
.got.plt的作用是保存所有全局函数真实地址的表
在这里插入图片描述
由于第一次调用GOT表还没有fool函数的真实地址,所以又返回plt中的fool;由此便知道应该去寻找fool函数的真实地址,将其填入GOT并且跳转到fool函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
dl_resolve用于解析fool函数实际地址的任务
在这里插入图片描述
解析完成后会把fool函数真实地址填入.got.plt的表项中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按空格键来到汇编代码的视图
在这里插入图片描述
向操作系统内核要了程序所需要的资源之后,首先ld.so是装载器,把这些内容装载在内存中
_start是程序的入口
在这里插入图片描述
虚线划分了表项,每个长度是16字节
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在没有调用时,got中保存的是plt的值

在这里插入图片描述
在这里插入图片描述
在调用一次puts函数后
plt是代码段是不会发生任何变化的,但是got中puts发生变化(填入真实地址)
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文了解java中volatile关键字

认识volatile volatile关键字的作用有两个:变量修改对其他线程立即可见、禁止指令重排。 第二个作用我们后面再讲,先主要讲一下第一个作用。通俗点来说,就是我在一个线程对一个变量进行了修改,那么其他线程马上就可以知道我修改…

树莓派zero w入坑指南

树莓派zero w入坑指南 入坑契机 说起创客不得不提到开源硬件Raspberry Pi(树莓派)。它是一款基于ARM的微型电脑主板,以MicroSD卡为硬盘,提供HDMI和USB等外部接口,可连接显示器和键鼠。以上部件全部整合在一张仅比信用卡稍大的主板上&#x…

MHA高可用实验(故障模拟+恢复)

实验前准备 MHA manager节点服务器:192.168.188.13 MHA node和manager组件 Master节点服务器:192.168.188.14 mysql5.7、MHA node组件 Slave节点服务器1:192.168.188.15 mysql5.7、MHA node组件 Slave节点服务器2:192.…

uniapp x 相比于其他的开发系统框架怎么样?

首先我们要知道niapp这是一种基于Vue.js开发的跨平台应用框架,可以将同一套代码同时运行在多个平台上,包括iOS、Android、H5等。相比其他开发系统框架,他有什么优点呢?让我们共同探讨一下吧! 图片来源:unia…

python每日学10:关于python实用版本的选择

用python也有好几年了,也会经常安装python,因为有工作需要,可能在各个地方使用python,自己的电脑也经常重装,重装后会装python,还有的时候,装的包太多了,影响整个环境的使用&#xf…

Meta 开启 Ray-Ban人工智能眼镜多模态 AI 功能测试,可识别物体、翻译语言

Meta 公司宣布他们将向部分用户推送其 Meta Ray-Ban 智能眼镜的多模态 AI 功能。这项功能允许 AI 助手通过眼镜的摄像头和麦克风了解佩戴者所看到和听到的事物,并提供相关信息和帮助。 Meta CEO 马克・扎克伯格在 Instagram 上展示了这项功能,他让眼镜推…

【WSL】Windows下的Linux子系统使用方法指南

▒ 目录 ▒ 🛫 导读需求开发环境 1️⃣ WSL安装启用或关闭windows功能安装分发命令行启动Linux 2️⃣ WSL 的基本命令显示帮助列出可用的 Linux 发行版列出已安装的 Linux 发行版检查 WSL 版本更新 WSL通过 PowerShell 或 CMD 运行特定的 Linux 发行版关闭WSL全部服…

Amazon SageMaker:让机器学习变得更简单、更强大

授权说明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 前言: 在大数据时代的浪潮中,数据不再只…

期末数组函数加强练习

前言:由于时间问题,部分题解取自网友,但都是做过的好题。 对于有些用c实现的题目,可以转化成c实现,cin看成c的读入,可以用scanf,输出cout看作printf,endl即换行符 开胃菜&#xff…

多项创新技术加持,汉威科技危化品企业、化工园区两大智能化管控平台重磅发布

化工产业是我国支柱产业,化学品产值约占全球的40%,位列第一。石油化工、煤化工、化肥、制药、冶金、氢能源等产业持续升级迭代,化工园区作为重要载体,不断推动产业朝专业化、集约化方向发展。 近年来我国危险化学品领域重特大事故…

动手学深度学习-注意力机制

10.1注意力提示 自主性注意力机制 有意识的注意力机制。非自主性注意力机制 无意识的注意力机制。 小结: 人类的注意力是有限的,有价值和稀缺的资源。受试者使用非自主性和自主性提示有选择的引导注意力,前者基于突出性,后者则依赖于意识。…

【Spring教程28】Spring框架实战:从零开始学习SpringMVC 之 请求与请求参数详解

目录 1 设置请求映射路径1.1 环境准备 1.2 问题分析1.3 设置映射路径 2 请求参数2.1 环境准备2.2 参数传递2.2.1 GET发送单个参数2.2.2 GET发送多个参数2.2.3 GET请求中文乱码2.2.4 POST发送参数2.2.5 POST请求中文乱码 欢迎大家回到《Java教程之Spring30天快速入门》&#xff…

【操作系统导论】内存篇——分段

引入 利用基址和界限寄存器,操作系统很容易将不同进程重定位到不同的物理内存区域。 但是,对于一整个地址空间,在栈和堆之间存在一块空闲空间,如果将整个地址空间分配给进程,无疑造成了大量的内存浪费。 为了解决这…

软件测试面试八股文(答案解析+视频教程)

1、B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行,可以实现跨平台,客户端零维护,维护成本低,但是个性化能力低,响应速度较慢。 C/S响应速度快,安全性强,一般应用于局域网中&#xf…

场景化文案怎么来的?媒介盒子拆解写作技巧

为什么有时候你的软文营销起不到作用、用户不买单?可能是引起你没有做好场景提醒,没有切中用户的切身利益点。今天媒介盒子就来和大家聊聊:场景化文案怎么写。 一、 场景文案核心点 在了解场景化文案的写作技巧前,咱们先来理清场…

如何将3dMax重置为默认的“出厂”设置?

如何将3dMax重置为“出厂”设置? 我们在使用3dMax软件时,有时会遇到一些问题,比如:启动时或使用程序内的特定功能时崩溃;3dMax界面显示问题;视口操纵缓慢或不稳定;键盘快捷方式丢失;…

Re9 Attention is all you need

变形金刚,启动! Abstract 主流序列转录模型基于复杂的循环神经网络和卷积神经网络,包括一个encoder和decoder,同时在这之中使用一个叫注意力机制attention的东西本文提出了一个简单的网络架构,仅仅使用注意力机制&am…

0基础学java-day19(IO流)

一、文件 1 什么是文件 2.文件流 3.常用的文件操作 3.1 创建文件对象相关构造器和方法 package com.hspedu.file;import org.junit.jupiter.api.DynamicTest; import org.junit.jupiter.api.Test;import java.io.File; import java.io.IOException;/*** author 林然* vers…

多模态融合slam技术学习

目录 前言 一、视觉-惯性SLAM算法 二、激光-惯性SLAM算法 三、激光与视觉融合算法 总结 前言 最近在找实习,又想着要怎么完成毕业论文,打算做下机器人导航实验,学习下相关算法。今天是多模态融合slam技术,课程链接:h…

严世芸龟法养生经

文章目录 严世芸理念荤素搭配,不偏嗜动静结合心平气和 龟息法 严世芸 严世芸,出生于1940年,现任上海中医药大学的主任医师,教授。他父亲是近代上海有名的中医,他又是著名医家张伯臾的亲传弟子。 从小就在父亲诊室里长…