【逆向工程核心原理】——第10章笔记 函数调用约定

一.简单介绍

  1. 调用函数前要先把参数压入栈然后再传递给函数。
  2. 函数执行完成后栈中的参数不用管。下一次再向栈存入其他值时,原有值会被覆盖掉。
  3. 函数执行完毕后,ESP值要恢复到函数调用之前,这样可引用的栈大小才不会缩减。

二.主要的函数调用

  1. cdecl
    被调用者:RETN
    调用者:ADD ESP,8
    在这里插入图片描述

  2. stdcall
    被调用者:RETN 8
    调用者:没有看到加法指令
    在这里插入图片描述

  3. fastcall
    使用寄存器去传递需要传递给函数的部分参数。效率比前两种高。

猜你喜欢

转载自blog.csdn.net/wuwuhe99/article/details/130235368