美文网首页
(32位汇编 十一)修改EIP的值

(32位汇编 十一)修改EIP的值

作者: 1301c72 | 来源:发表于2017-09-26 08:43 被阅读0次

    JMP指令

    无条件跳转。修改EIP的值,而且只影响EIP的值。

    MOV EIP, 寄存器/立即数 ;不能执行
    简写为:JMP 寄存器/立即数

    CALL和RET指令

    执行call前

    CALL指令

    PUSH 地址B
    MOV EIP, 地址A/寄存器

    简写为:CALL 地址A/寄存器

    执行call后

    理解:调用call时,会首先把call当前指令的下一条指令地址压入栈中,相应的ESP寄存器会减4,然后将EIP的值修改为call指令指定的地址,然后继续执行程序。

    RET(RETN)指令

    LEA ESP, [ESP + 4]
    MOV EIP, [ESP - 4] ;相当于POP EIP

    简写为:RET
    相当于POP EIP

    执行ret后

    理解:调用RET时,会首先弹出栈顶,ESP加4,然后将EIP的值修改为ESP - 4指定的内存单元的值,然后继续执行程序。

    相关文章

      网友评论

          本文标题:(32位汇编 十一)修改EIP的值

          本文链接:https://www.haomeiwen.com/subject/jlwjextx.html