【发布时间】:2013-07-11 19:41:41
【问题描述】:
我对汇编很陌生,我不明白在 proc 结束时用ret 语句写一个数字的确切含义。
像这样:
Function Proc
push ax cx
.
...body...
.
pop cx ax
ret 2
Function endp
我知道这与函数结束时堆栈指针应返回的位置有关吗?
它有什么作用?
【问题讨论】:
-
Assembly 不是一种语言 - 每个处理器都有自己的。您应该询问特定架构(似乎是 x86)。
-
题外话:
ret是一个功能强大的小指令,长期以来一直是利用漏洞软件的中心:它根据调用堆栈的内存内容指导程序的控制流。如果你控制了内存(strcpy,我在看着你),你就控制了程序的执行流程。