栈(局部)变量生长方向问题
## 栈(局部)变量生长方向问题
背景
学过一些汇编后,我们可以根据栈的定义知道栈是从高地址向低地址生长的。但是在学习到栈溢出原理时,发现了一个问题,往局部变量写入数据时,是从低地址向高地址填充数据的。为了验证这一结论,特此采用样例程序(C语言)测试。
工具
IDA Pro、gdb+gef插件
验证过程
- 使用IDA,反汇编出代码,找到调用get函数时的地址,记下0x080486AE、0x080486B3地址。

- 运行gdb调试测试程序

- 打下断点,运行程序

- 查看信息表,找到局部变量基地址

- 再次打下断点,运行程序,输入字符串123456

- 查看内存,验证结论


结论
在C语言在编译后,函数中局部变量从低地址向高地址填充数据。
浙公网安备 33010602011771号