逆向基础之函数工作原理

函数工作的基本原理:

这些代码区中的精确跳转都是在栈的巧妙配合下完成的。

当函数被调用时,系统会为这个函数开辟一个新的栈帧。这个栈帧中的内存空间被函数独占,正常情况下是不会和其他的函数共享的。当函数返回时,系统会弹出该函数索对应的栈帧

 如图:

每个函数都独占自己的栈帧空间,当前正在运行的函数的栈帧总是在栈顶

函数调用约定描述了函数参数传递的方式栈协同工作的技术细节

不同的编译器实现函数调用的原理基本相同,但具体的约定还是有区别的。包括参数入栈顺序、栈的恢复等。

整理下函数调用的基本过程;

函数返回的步骤如下:

猜你喜欢

转载自www.cnblogs.com/-qing-/p/10520774.html
今日推荐