Linux下栈溢出是什么原因,栈溢出的程序是怎样的
Admin 2022-07-19 群英技术资讯 922 次浏览
本篇内容介绍了“Linux下栈溢出是什么原因,栈溢出的程序是怎样的”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在linux中,栈溢出的原因是系统栈是由高地址往低地址增长,而数据的写入是按低地址往高地址的顺序写入,所以程序一旦没有对输入的字符数量做出限制,就会存在数据溢出当前栈的可能。栈溢出是缓存区溢出的一种,本质上是写入栈的数据超过栈的大小造成的。

本教程操作环境:linux7.3系统、Dell G3电脑。
概述
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等;和堆相比,栈通常很小,在Linux下,通过ulimit -s可以查看栈的大小。
所谓栈溢出,是缓冲区溢出的一种,本质上是写入栈的数据超过栈的大小,使得数据写入其他单元,往往造成不可预期的后果,最常见的就是程序崩溃。
造成栈溢出的原因
系统栈是由高地址往低地址增长的, 而数据的写入是按低地址到高地址的顺序写入. 如果程序没有对输入的字符数量做出限制, 就存在数据溢出当前栈帧以及覆盖返回地址的可能, 从而实现控制程序的执行流。
实例如下
一个栈溢出的程序:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Centos搭建开发环境,PHP7+ Nginx1.12+ Mysql5.7
今天给大家整理一些关于linux监控比较常用的命令内容,有需要的小伙伴可以自行查阅。如果你想要了解清楚这方面的内容,可以来看看小编所整理的资料。
相信很多朋友都玩过虚拟机,在虚拟机里装linux系统。一般大家装linux系统后,第一件事就是去配置静态IP。配置静态IP,除了要配置IP、子网掩码外,还需要填写网关地址。
linux下su和sudo命令如何使用?本篇文章今天主要给大家着重介绍下linux系统的su和sudo命令的相关资料,对此有疑惑的小伙伴可以跟随小编来看一看,希望这篇文章能帮助到你们。
简单的说,就是某些不法的网站,通过在其自身网站程序里为经许可非法调用其他网站资源然后在自己的网站上显示这些调用的资源,达到了填充自身网站显示的效果,但是浪费了调用资源网站的网站流量,造成其他网站的带宽及服务压力吃紧,甚至宕机。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008