当前位置: 首页 > news >正文

CTFshow-PWN-栈溢出(pwn67-pwn68)nop sled 空操作雪橇-对抗栈帧地址随机化

目录

1、解题思路

2、画栈帧计算偏移

3、nop sled 介绍

4、关于 scanf 读入 v5 地址的位置放在哪里

5、关于填充 nop 指令的长度

6、32 位 exp(pwn67)

7、对于 64 位(pwn68)


1、解题思路

32 位程序,未开启 NX 保护 

主函数如下:

第一次 fgets 可以将 shellcode 写到 seed;

第二次 scanf 读入一个地址给 v5,那么我们再将 seed 的地址给它,后面就可以直接执行 shellcode。

问题在于如何获取 seed 的地址

在此之前会打印出 position 的地址

position 来自 query_position 函数的返回值

我们跟进 query_position 函数

http://www.dtcms.com/a/296413.html

相关文章:

  • 数字化转型-埃森哲集团数字化顶层规划
  • SQL中的占位符、@Param注解和方法参数
  • vue递归树形结构删除不符合数据 生成一个新数组
  • HTTPS如何保障安全?详解证书体系与加密通信流程
  • AI 在金融:重塑金融服务的智能革命
  • 《小白学习产品经理》第十章:方法论之MVP
  • Windows 下配置 GPU 用于深度学习(PyTorch)的完整流程
  • 让复杂 AI 应用构建就像搭积木:Spring AI Alibaba Graph 使用指南与源码解读
  • 测试学习之——Pytest Day5
  • 关闭 Chrome 浏览器后,自动删除浏览历史记录
  • 3.7 综合挑战项目
  • C语言(长期更新)第5讲:数组练习(三)
  • 跑步有氧训练
  • MegaTTS3 使用
  • Elasticsearch 的聚合(Aggregations)操作详解
  • Mysql窗口函数
  • 数据库垂直拆分和水平拆分
  • 面经 - 车载多媒体系统
  • 【已解决】YOLO11模型转wts时报错:PytorchStreamReader failed reading zip archive
  • PyTorch数据选取与索引详解:从入门到高效实践
  • es 和 lucene 的区别
  • 【REACT18.x】CRA+TS+ANTD5.X实现useImperativeHandle让父组件修改子组件的数据
  • R study notes[1]
  • linux入门 相关linux系统操作命令(二)--文件管理系统 ubuntu22.04
  • 二分查找-153-寻找旋转排序数组中的最小值-力扣(LeetCode)
  • unordered_map和unordered_set特性以及解决哈希冲突
  • Gemini拿下IMO2025金牌的提示词解析
  • Redis Lua脚本语法详解
  • Redis ①⑦-分布式锁
  • 跨模态理解的基石:非文本内容向量化方法全景解析