缓冲区溢出攻击原理——内存模型 在应用程序的一次动态执行过程中,内存分为三部分:文本区、数据区和堆栈区。 堆栈区 数据区 文本区 内存高址 内存低址 内存增长方向 由程序确定,包括代码和只读数据,该区域标记为只读 存放全局的、静态的数据,程序编译时分配 存放动态的数据,以及用于函数调用、返回等。 函数调用时缓冲区模型 程序运行时,操作系统会分配每个进程独立的地址空间,包括代码区、数据区和堆栈区。 缓冲区溢出攻击就是利用动态的堆栈区内容进行操作达到攻击的目的。 C程序中,每当调用函数时就会自动处理堆栈分配。 堆栈作用:保存有关当前函数调用上下文信息的容器。 被调用函数所需的参数入栈 指令寄存器EIP内容(指向下一条将要被执行的指令)入栈,作为函数返回的地址。 堆栈的基址寄存器EBP内容(指向当前堆栈底部)入栈 预留出函数的动态局部变量值空间 当实际输入局部变量的值长度超出缓冲区长度,而程序中又缺乏边界检查机制时,数据就会继续向栈底写入,导致栈中旧的数据被覆盖。 只要在程序运行时传送给它一个足够大的参数,就可以在返回地址中填入一个希望程序转到的任意内存地址,从而控制程序的运行权。 实际操作中存在两个问题: 攻击代码植入目标程序地址空间 改写返回地址为攻击代码地址以获得程序控制权 常见的缓冲区溢出攻击都是一次完成攻击代码植入和程序转向攻击代码两种功能。 缓冲区溢出攻击原理 缓冲
您可能关注的文档
最近下载
- 小学生饮水健康知识教育课件.pptx VIP
- 某区乡镇区划调整社会稳定风险评估报告.pdf VIP
- 2025年潍坊亚星化学股份有限公司校园招聘模拟试题附带答案详解审定版.docx VIP
- (译林2024版三起)英语三年级下册 Unit5 单元测试(含解析+听力音频).pdf VIP
- 第8课建设法治中国第二框(课件+视频)-【中职专用】2025-2026学年中职思政《职业道德与法治》(高教版2023·基础模块).pptx
- 信号与系统(刘泉)习题详解.docx
- 小学体育与健康运动前后的饮水卫生教学课件.pptx VIP
- [2025秋期版]国开电大本科《西方行政学说》一平台形考任务三在线形考试题及答案.docx
- CECS267-2009 橡胶膜密封储气柜工程施工质量验收规程.pdf VIP
- 上财社企业会计综合模拟实训-石琳课件第一章-第八章-企业会计综合模拟实训.pptx VIP
原创力文档

文档评论(0)