程序运行 栈帧分析 以及 修改栈帧中数据以及函数地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序运行 栈帧分析 以及 修改栈帧中数据以及函数地址相关的知识,希望对你有一定的参考价值。

1 在栈帧中 修改函数调用地址 使得程序运行 跳转到 自己指定的函数 而原程序的作者完全不知道这段程序的执行中已经执行了别人的代码【可能是恶意的】

技术分享

技术分享

2 修改栈帧中的变量的值 不通过变量名

如 修改变量b的值 不通过变量b的名称 【这需要对变量在栈帧中的分布有一定的了解 】

技术分享

技术分享

压栈是 a先压栈 b后压栈 压栈时 栈顶向低地址方向前进 

变量a在变量b的上面

变量a的地址 0xbfa92d88

变量b的地址 0xbfa92d84

本文出自 “城市猎人” 博客,请务必保留此出处http://alick.blog.51cto.com/10786574/1787145

以上是关于程序运行 栈帧分析 以及 修改栈帧中数据以及函数地址的主要内容,如果未能解决你的问题,请参考以下文章

栈帧 --- 程序运行中数据的更改问题

函数栈帧的创建与销毁

函数的调用过程(栈帧)

函数的调用过程(栈帧)

为啥ebx保存在一个简单函数的栈帧中,调用gets?

[C++] 内联函数inline 以及 auto关键字 -- C++入门