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

目录

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

课程

课程链接: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.mzph.cn/news/218785.shtml

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

相关文章

用python打印出菱形图案

你可以使用Python编写一个简单的函数来打印菱形图案。下面是一个例子,这个函数接受一个参数n,表示菱形的高度,然后打印出一个菱形图案: def print_diamond(n): # 上半部分 for i in range(n): print(" " …

springboot098基于web的网上摄影工作室的开发与实现

springboot098基于web的网上摄影工作室的开发与实现 源码获取: https://docs.qq.com/doc/DUXdsVlhIdVlsemdX

微搭低代码实现登录注册功能

目录 1 创建用户数据源2 实现登录逻辑3 搭建登录页面4 设置登录框5 实现登录的逻辑6 用户注册总结 原来产品在创建应用的时候可以创建模型应用,模型应用对应我们小程序的后端。最新的更新已经将模型应用的能力下线,那我们不得不自己实现一下后端的逻辑。…

计网Lesson10 - 网络层之IP协议分析

文章目录 网络层协议IPv4 数据报格式IPv4 数据报首部格式版本(Version)首部长度(Header Length)区分服务(Differentiated Services Field)可选字段填充总长度(Total Length)标识、标…

记录 | vscode无法在这个大型工作区中监视文件更改,请按照说明链接解决问题

在 VSCode 上打开一个项目时,突然弹出以下错误: 无法在这个大型工作区中监视文件更改。请按照说明链接解决问题。 原因: 由于工作区太大包含太多文件导致vs code监视文件达到上限而因此这个错误。在 Linux 上执行以下命令: cat …

spingboot项目实战之若依框架创建新模块

前言 目前的脚手架系统很多,比较早接触诺依框架,以若依框架为参考如何创建新模块 步骤 1. 下载诺依框架,依照参考说明一步步,能做到系统运行起来。 2. 准备好mysql文件,创建新数据库表 3. 数据库管理工具navicat…

操作系统原理-作业三-存储器

某页式虚拟存储管理系统中,页面大小为 2KB ,某一进程分配到的内存块数为 3 ,并按下列地址顺序引用内存单元: 2531 、 6632 、 4140 、 3584 、 2892 、 5743 、 1700 、 2148 、 6940、 4345 、 3209 、 0732 、 6202 、 4541 。…

[MySQL] MySQL中的索引

文章目录 一、初识索引 1、1 索引的概念 1、2 索引案例 二、认识磁盘 2、1 磁盘结构 2、2 操作系统与磁盘的数据交互 2、3 磁盘随机访问与连续访问 2、4 MySQL与磁盘的数据交互 三、索引的理解 3、1 建立测试表 3、2 为何MySQL与磁盘IO交互是 Page 3、3 理解Page 3、3、1 页目录…

在线教育培训系统搭建,打造方便快捷的学习模式

教育在我国是一件重中之重的事业发展,所谓“活到老学到老”,人们都离不开教育。 而在当下互联网的发展下,教育、职业培训的方式也变得越来越多样,在线教育模式成为了不少高校的选择,也成为了不少学生的选择。 在线教…

Flutter 上了 Apple 第三方重大列表,2024 春季 iOS 的隐私清单究竟是什么?

这个话题的起因来自 2023 年 WWDC 之后苹果发布的「App Store 提交隐私更新」政策,政策主要提出了两点:第三方 SDK 隐私清单和签名和需要提供必要理由的 API 流程。 其实先简单总结,就是 Apple 想通过隐私清单来进一步提升用户数据收集和使用…

共创共赢|美创科技获江苏移动2023DICT生态合作“产品共创奖”

12月6日,以“5G江山蓝 算网融百业 数智创未来”为主题的中国移动江苏公司2023DICT合作伙伴大会在南京成功举办。来自行业领军企业、科研院所等DICT产业核心力量的百余家单位代表参加本次大会,共话数实融合新趋势,共拓合作发展新空间。 作为生…

I/O设备模型

I/O设备模型 绝大部分的嵌入式系统都包括一些I/O(Input/Outut,输入/输出)设备,例如仪器上的数据显示屏、工业设备上的串口通信、数据采集设备上用于保存数据的Flash或SD卡,以及网络设备的以太网接口等。 I/O设备模型…

【人工智能Ⅰ】实验8:DBSCAN聚类实验

实验8 DBSCAN聚类实验 一、实验目的 学习DBSCAN算法基本原理,掌握算法针对不同形式数据如何进行模型输入,并结合可视化工具对最终聚类结果开展分析。 二、实验内容 1:使用DBSCAN算法对iris数据集进行聚类算法应用。 2:使用DBS…

macOS Sonoma 14.2RC(23C63)发布

系统介绍 黑果魏叔12 月 6 日消息,苹果今日向 Mac 电脑用户推送了 macOS 14.2 RC更新(内部版本号:2323C633),本次更新距离上次发布隔了 49 天。 预计正式版会在下周到来。届时用户可以打开“设置”->“通用”->…

ATFX汇市:美联储12月利率决议来袭,或将连续第三次暂停加息

ATFX汇市:明日3:00,美联储将公布12月份利率决议结果,市场普遍预期联邦基金利率上限将维持在5.5%不变,美联储将连续第三次暂停加息。上周五公布的11月非农就业报告显示,新增非农就业人口19.9万人,远高于前值…

windows禁用系统更新

1.在winr运行框中输入services.msc,打开windows服务窗口。 services.msc 2.在服务窗口中,我们找到Windows update选项,如下图所示: 3.双击windows update服务,我们把启动类型改为禁用,如下图所示&#xff…

图片怎么去文字水印?分享三个简单无痕方法

图片怎么去文字水印?大家在遇到好看的图片时,是否曾想过将其用作自己的头像?然而,很多时候从网上保存的图片会带有平台或作者的水印,这会严重影响头像的整体视觉效果,导致我们不得不放弃使用这张图片&#…

代驾系统开发:驶向未来的智能交通服务

随着科技的迅速发展,代驾系统的开发成为改善出行体验和提升交通服务智能化的重要一环。本文将聚焦于代驾系统开发的技术创新,为读者呈现其中涉及的一些令人振奋的技术代码。 1. 区块链技术的运用: 区块链技术被引入代驾系统,可…

11.机器人系统仿真搭建gazebo环境、仿真深度相机、雷达、RGB相机

目录 1 gazebo仿真环境搭建 1.1 直接添加内置组件创建仿真环境 1.2 urdf、gazebo、rviz的综合应用 2 ROS_control 2.1 运动控制实现流程(Gazebo) 2.1.1 已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加传动装置以及控制器 …