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

ret2libc1

科普小知识:

void h(a,b){ } int main(){ int a=0,b=0; h(a,b); }

一下全程为32位演示

正常栈

函数调用函数需要call 函数

push 返回地址,jmp eip

如果被人为修改后的栈

a

b

b

a

eip 被修改为某个函数的地址,比如system的地址

函数执行的是leave ret

相当于直接jmp eip,并没有push 返回地址

以main函数为例

main函数以为自己执行完了,不需要再返回main函数了

这时原本的栈就相当于

a

b

b system的形参

a 相当于eip

被新压入的旧的ebp ebp指向此处

下面开始做题:

开启了栈保护,没办法shellcode

shift+f12

有/bin/sh字符串

并没有被system调用

plt表中有system函数

局部变量和ebp的距离

编写代码

http://www.jsqmd.com/news/631953/

相关文章:

  • vLLM-v0.17.1配置指南:如何启用Prefix Caching加速重复请求
  • 告别RDMA的复杂,用Xilinx CMAC在FPGA上实现100G UDP协议栈(附512位宽封包要点)
  • 万象奥科RK3506官方SDK内置LVGL移植 Gui Guider程序
  • VescUart库详解:嵌入式VESC UART通信协议与实时控制实践
  • 传送带撕裂检测数据集1263张VOC+YOLO
  • kafka Epoch机制
  • 英雄联盟玩家必备:LeagueAkari工具包深度解析与实战应用指南
  • FreeRTOS 线程本地存储(TLS)实战指南:从原理到应用
  • 从钓鱼邮件到Web后门:一次完整的攻击链流量分析复盘(基于BUUCTF案例)
  • C语言入门:代码例子讲透程序结构
  • Qwen3-ASR-1.7B开源大模型教程:PyTorch 2.5.0 + CUDA 12.4环境配置
  • QKeyMapper终极指南:5步掌握Windows按键自定义,提升操作效率300%
  • 全球海洋漂流浮标数据
  • LLM评估自动化不是写脚本,而是重构MLOps基建:17个生产级Checklist,含GPT-4/LLaMA-3实测基准
  • openclaw平替之nanobot源码解析(七):Gateway与多渠道集成汹
  • 编程基础(python)
  • HagiCode Skill 系统技术解析:如何打造可扩展的 AI 技能管理平台谠
  • GlobalMapper地形对比与方量计算实战:从两期数据到填挖方区域精准提取
  • WiFiPixels:ESP32上轻量级Wi-Fi控制NeoPixel的固件框架
  • 2026山东大学软件学院项目实训(二)——用户模块
  • LVGL嵌入式GUI开发:轻量级框架原理与硬件适配实战
  • 手把手教你用Qwen-Image-Edit-2511:小白也能玩的AI换装神器
  • HPH构造 一看就懂
  • 周报4.12
  • RAG工程化实践教程(非常详细),问题优化从入门到精通,看这一篇就够了!
  • 浏览器自动化六大技术路线深度对比:从模拟点击到 Chrome 扩展注入允
  • VibeVoice ComfyUI:解锁微软语音合成在AI内容创作中的无限可能
  • 《为什么只有镜像视界能做三维空间智能体?》——空间智能时代的技术门槛与体系壁垒解析
  • 千问 LeetCode 1359.有效的快递序列数目 public int countOrders(int n)
  • 别再为找数据发愁了!手把手教你下载并预处理LandSat8-38Cloud数据集(附Python代码)