吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 683|回复: 4
收起左侧

[求助] 有关栈的一些问题

[复制链接]
城南彼岸花复开 发表于 2021-10-29 23:10
大佬们栈中是从高地址往低地址填充,那栈的buffer到底是往那边填充啊,看视频好像是从低地址往高地址填充,直接给我整疑惑了(因为图内是高地址溢出而不是低地址溢出)
溢出的话是溢出到下一个EBP还是ESP还是什么?如果溢出到return的话要做什么操作呢?萌新有点迷糊了,还请各位大神赐教
8AC5F5AC0FB336C4AA2B3B1EC6895C14.jpg

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

minibeetuaman 发表于 2021-10-29 23:29
肯定是高地址被溢出嘛,函数里面的局部变量都在堆栈里面,在函数开头esp已经向低地址开辟了一段空间用于储存局部变量。而且你用memcpy之类的函数肯定是从低地址向高地址填充数据嘛!
DEATHTOUCH 发表于 2021-10-29 23:39
你搞个缓冲区数组,这个数组是放到栈中的,编译器会自动减小 ESP 开辟一片空间(固定大小的)给他,但是访问数组是从小到大的,所以要溢出的话就是往大了去的,那么 return 可能会出错。
 楼主| 城南彼岸花复开 发表于 2021-10-30 08:03
minibeetuaman 发表于 2021-10-29 23:29
肯定是高地址被溢出嘛,函数里面的局部变量都在堆栈里面,在函数开头esp已经向低地址开辟了一段空间用于储 ...

是每一个函数都会开辟一段固定长度的空间大小用于储存变量,然后变量储存时是从所开辟的最高地址向最低地址储存,大佬我这样理解对吗
minibeetuaman 发表于 2021-10-30 09:32
城南彼岸花复开 发表于 2021-10-30 08:03
是每一个函数都会开辟一段固定长度的空间大小用于储存变量,然后变量储存时是从所开辟的最高地址向最低地 ...

变量都放在这片区域,并且区域大小是固定的,存储顺序是编译器决定的,最先设置的变量就在最低的地址,以此类推。具体你可以用IDA打开一个简单的函数观察一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表