Jmp的等价变形

1.

mov eax,Addr

push eax

retn

第二条把这个数压入堆栈,

第三条执行retn,

正是这条指令把刚才压入堆栈的立即数Addr弹出并赋给IP,

并跳转到这个地址继续执行,

从而实现了与jmp Addr指令完全相同的功能,

 

2.

mov eax,Addr

jb eax

jnb eax

3.

mov eax,Addr

jmp eax

 

4.

1.mov eax,Addr

2.call eax

3.以前的指令地址

因为

call eax

第3.以前的指令地址push到stack之中

所在在我们的HOOK函数之中不要再Jmp回来了,会自动实现JMP回来的功能,

不过要考虑运行 mov eax,Addr   call eax  所占位置的原始代码.

 

 

 

 

你可能感兴趣的:(ASM,职场,休闲,JMP)