E8/E9/FF 15/FF25指令--汇编学习笔记

E8/FF 15:这两个指令都是call指令,两个指令后面跟的数据有不同的含义。

011472A1 E8 9F A3 FF FF       call        Sub_1 (01141645h) 
011472B6 FF 15 D0 00 1A 01    call        dword ptr [__imp__MessageBoxW@16 (011A00D0h)]  

如上面代码所示:
Sub_1的地址是 011472A1 + 5 + FFFFA39F = 目标地址
也就是说E8后面跟的是偏移地址,再加上5个字节的偏移。
MessageBoxW是 FF 15指令后面直接跟的绝对地址。

E9/FF 25:这两个指令时jmp指令,两个指令后面跟的数据有不同的含义。

01141645 E9 D6 3A 00 00       jmp         Sub_1 (01145120h)  

E9指令和E8的计算方法是一样的:
01141645 + 5 + 00003AD6是目标地址。
FF 25指令后面跟的是绝对地址。
“To live is to risk it at all.”

你可能感兴趣的:(Ring3注入和Hook)