[反汇编]函数开始部分利用mov ebx,esp找到返回地址(_KTRAP_FRAME结构)

我们理解call原理,首先将返回地址压入栈中,之后执行调用。

因此,在一个函数开始部分,esp依旧是上一个栈帧的esp,此时esp指向返回地址。

这就意味着使用 mov ebx,esp,之后 [ebx]就是当前函数的返回地址。

我们应该意识到,SystemCall 就是通过这个 进入零环的,进入零环前将 mov ebx,esp。

因此,当进入零环时, _KTRAP_FRAME.ebx 就是保存着 esp 的地址,因此 [ _KTRAP_FRAME.ebx]为R3环的返回值。

这种概念你应该明确。

猜你喜欢

转载自www.cnblogs.com/onetrainee/p/11789465.html
今日推荐