rus*_*lik 18

是的,它表现出色

pop eip
Run Code Online (Sandbox Code Playgroud)

您可以使用

mov eax, [esp]
jmp eax
Run Code Online (Sandbox Code Playgroud)

避免它.

编辑:这正是它的ret作用.例如,jmp rel_offet无非是隐藏add eip, offset,或者jmp absolute_offsetmov eip, absolute_offset.当然处理器处理它们的方式有所不同,但从程序员的角度来看,这就是所有这一切.

此外,还有一种特殊形式ret:ret imm8还将此imm8值添加到esp:例如,__stdcall函数使用它从堆栈中丢弃其参数.更不用说retf在16位模式下使用的版本,它也会cs从堆栈中弹出.

EDIT2:

pop register
Run Code Online (Sandbox Code Playgroud)

手段:

mov register, [esp]
add esp, 4
Run Code Online (Sandbox Code Playgroud)