刷题时偶然发现的64位程序的堆栈平衡问题
题目:
ciscn_2019_en_2

运行exp时发现报错:


这里是栈没有对齐
64位程序相对于32位多了堆栈需要平衡的问题

  1. 如果要返回父程序,则当我们在堆栈中进行堆栈的操作的时候,一定要保证在RET这条指令之前,ESP指向的是我们压入栈中的地址。
  2. 如果通过堆栈传递参数了,那么在函数执行完毕后,要平衡参数导致的堆栈变化。

含义:

  • 当函数在一步步执行的时候 一直到ret执行之前,堆栈栈顶的地址 一定要是call指令的下一个地址。
  • 函数执行前一直到函数执行结束,函数里面的堆栈是要保持不变的。
  • 如果堆栈变化了,那么,要在ret执行前将堆栈恢复成原来的样子。

修改exp:


在第二个payload溢出返回点加入‘ret’,使其栈对齐

再次运行:


发现没有出错~


成功拿到flag!

【Pwn】对64位程序的exploit.py运行报错“timeout: the monitored command dumped core\n“相关推荐

  1. pwn远程的时候遇到 timeout: the monitored command dumped core 怎么办

    最近沉迷于pwn无法自拔 先夸一波星盟的课程,确实挺不错的 [星盟安全]PWN系列教程(持续更新)_哔哩哔哩_bilibili 但是最近老是遇到一个问题,明明本地打通了,远程却打不了,经常遇到这个问题 ...

  2. 程序没问题,运行报错:Directory not empty

    程序没问题,运行报错:Directory not empty 解决: 位于/Users/你电脑名/Library/Developer/Xcode/DerivedData  下的缓存文件占很大的缓存空间 ...

  3. PWN入门(5)32位程序与64位程序和构造ROP链

    简介 "pwn"这个词的源起以及它被广泛地普遍使用的原因,源自于魔兽争霸某段讯息上设计师打字时拼错而造成的,原先的字词应该是"own"这个字,因为 'p' 与 ...

  4. python 64位程序 打包用于32位系统_python分别打包出32位和64位应用程序

    由于我们分发的python应用可能运行在64位环境,也可能运行在32位环境,所以我们需要为同一套应用代码配置两套打包环境,怎么配置? 步骤如下 1,在电脑上分别下载安装32位和64位的python,安 ...

  5. VS中编译64位程序以及遇到的问题(E0000235)

    安装64位操作系统不是编译64位程序的必要条件,关键是要装64位程序的编译器. 1. 选择"Build" – "Configuration Manager"菜单 ...

  6. Android编译32或64位程序

    ★★★ 个人博客导读首页-点击此处 ★★★ 1.查看一个程序是32位还是64位: $ readelf -h tee-supplicant ELF Header: Magic: 7f 45 4c 46 ...

  7. 说说windows下64位程序和32位程序

    对于两者的区别先不说,先说说两者的影响吧. windows操作系统,尤其是win7下64位和32位的程序对一般用户来说影响都不是很大,只要程序能够正常运行就ok了,不需要关心那么多. 可是对于很多大型 ...

  8. Windows判断是否为64位程序(C++)

    思路: 1.先判断是否为64位系统 2.判断是否为64位程序 代码: // ProcessType.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. //判 ...

  9. windows下编译64位程序时没有没_WIN32定义

    _WIN32定义的初衷是为了区分16位和32位程序,但是目前很多项目的代码都是使用_WIN32来判定是否是windows平台,所以目前在windows平台下编译32位和64位程序时,编译器都会预定义了 ...

最新文章

  1. 请教个问题,ajax.net 的效率如何
  2. 复习之 c实现 通讯录
  3. createTextRange 创建文本对象
  4. 计算机考研英语词汇书,考研英语词汇参考书推荐
  5. zabbix 通过import批量导入新增主机和批量删除旧的主机
  6. Vue-Access-Control:前端用户权限控制解决方案
  7. leap通过掌心或手指的某一关节做一条射线
  8. 中国移动MM7API开发问题
  9. 从html源码中获取图片链接地址和视频链接地址
  10. 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(7):欧氏空间
  11. 运筹优化(十)--整数规划求解
  12. TVYJ1172 自然数拆分Lunatic版(完全背包问题)
  13. Jira实战 | 版本和组件管理
  14. Python爬取 美剧《纸牌屋》字幕(可可英语)---BeautifulSoup版
  15. 基于用户的协同过滤算法详解
  16. 本草纲目pdf彩图版下载_本草纲目下载|本草纲目彩色图集精编珍藏版下载pdf高清版_最火软件站...
  17. Mixed Strategy Game
  18. 哪些是伺服驱动器最常见的故障?解决方法?
  19. 精通DDR3 PCB设计
  20. 基于JSP的小型汽车票务管理系统

热门文章

  1. 总体方差和样本方差大小值的比较
  2. python中的类是什么意思_如何理解python中的类和方法(转)
  3. 销售分析怎么做?掌握3个思路,让你“躺平”秒变“躺赢”
  4. Jetpack Compose
  5. Liferay研究之廿九:Liferay5.2基础架构变动收藏
  6. 替柴静说几句话--针对那些不做事的愤青
  7. 自动驾驶——自适应控制理论
  8. 汇川PLC串口和UDP使用注意事项及INT型数据占用寄存器情况
  9. 如何在Windows上设置开发机器
  10. 【第49天|● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II 】