MB#SJCS 2024-11-07 11:48 采纳率: 100%
浏览 11
已结题

关于#win32API#的问题:在win32Msgbox函数中调用了Messagebox,调试发现执行到messagebox后栈空间会被污染rip寄存器指令执行异常

x64masm汇编调用MessageBoxA函数栈空间被污染。

img

img

在win32Msgbox函数中调用了Messagebox,调试发现执行到messagebox后栈空间会被污染rip寄存器指令执行异常。

但是给他开辟一个8大小的栈空间程序正常这是为什么?

img

  • 写回答

1条回答 默认 最新

  • Intel0011 2024-11-07 13:19
    关注

    x64汇编中,非叶函数调用要求栈16字节对齐
    函数调用前栈是16字节对齐的,调用时压入返回地址占用8字节
    进入函数后需sub rsp, 8h
    之后栈满足16字节对齐

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月7日