2018/10/03-函数调用约定cdeclstdcallfastcall- 《恶意代码分析实战》

Posted fingerprint

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018/10/03-函数调用约定cdeclstdcallfastcall- 《恶意代码分析实战》相关的知识,希望对你有一定的参考价值。

  cdecl是最常用的约定之一,参数是从右到左按序被压入栈,当函数完成时由调用者清理栈,并且将返回值保存在EAX中。

  stdcall约定是被调用函数负责清理栈,其他和cdecl非常类似。

  fastcall调用约定跨编译器时变化最多,但是它总体上在所有情况下的工作方式都是相似的。在fastcall中,前一些参数(典型的是前两个)被传到寄存器中,备用的寄存器是EDX和ECX(微软fastcall约定)。如果需要的话,剩下的参数再以从右到左的次序被加载到栈上。通常使用fastcall比其他约定更高效,因为代码不需要涉及过多的栈操作。

以上是关于2018/10/03-函数调用约定cdeclstdcallfastcall- 《恶意代码分析实战》的主要内容,如果未能解决你的问题,请参考以下文章

《逆向工程核心原理》读书笔记——第10章 函数调用约定

C/C++学习笔记 关于调用约定

函数调用约定

C/C++函数的调用约定详解

C语言函数调用约定

几种调用约定