64位逆向分析

函数

约定调用

x86的函数调用有多种,但是x64只有一种寄存器快速调用约定。前4个参数使用寄存器传递,如果参数超过4个,多于的参数就放在栈里,如栈顺序从右到左,由函数调用方平衡栈。前4个参数放的寄存器是固定的,从第一到第四分别是RCX、RDX、R8、R9。任何大于8字节或者不是1、2、4、8字节的参数必须由引用来传递。所有浮点参数的传递都是使用XMM寄存器完成的。有8个128位的XMM寄存器。它们从第一到第四个参数分别是XMM0~XMM4。

函数前4个参数虽然使用了寄存器,但是栈任然为这4个参数预留的空间(32字节),预留栈空间由函数调用者提前申请,由函数调用者负责平衡栈空间。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。