能力值:
(RANK:260 )
|
-
-
2 楼
是变形的跳转指令而已。
就是push加retn指令实现jmp指令的功能。
如果讲基础,要从retn指令的本质说起
retn指令本质相当于pop eip
仅此而已。请复习基础知识。函数的调用路径是保存堆栈中的。
如果有意地“非正确”使用堆栈(根据栈的定义,只有入栈和出栈两种基本操作),就可以控制函数
执行流程。
常见于反调试的加花指令
另外宝兰的编译器喜欢生成这样的代码。
你注意一下在retn的上面不太远(如果是有意思扰乱的话可能非常远)的地方的类似于
push app.0043ee2b
这样的指令,这就是retn指令要跳转的地方。
再次强调基础知识。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢楼上的。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢谢,了解了。
|
|
|