美文网首页
(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的值

    JMP指令 无条件跳转。修改EIP的值,而且只影响EIP的值。 MOV EIP, 寄存器/立即数 ;不能执行简写为...

  • 6.汇编-修改EIP的指令

    6.汇编-修改EIP的指令 EIP寄存器 EIP寄存器表示CPU下次执行的位置 JMP指令 JMP指令相当于给EI...

  • 修改EIP

    JMP指令:修改EIP的值 CALL指令 RET指令:

  • 9.汇编-JCC

    9.汇编-JCC 之前可以修改EIP寄存器的指令JMP,CALL,RETN 所有JCC指令的动作->根据标志寄存器...

  • 修改EPI指令

    EIP 寄存器 指向CPU下一次要执行的程序地址。 指令注释用法JMP修改EIP的值JMP r/m/immCALL...

  • 其他汇编

    Win32汇编-寄存器 如eax、ebx、ecx、edx、eip、esp、ebp、esi、edi等都是32位的寄存...

  • Windows汇编(1)Win32汇编

    Win32汇编-寄存器 如eax、ebx、ecx、edx、eip、esp、ebp、esi、edi等都是32位的寄存...

  • ARM寄存器

    汇编: 分析和修改汇编指令: 用户模式(usr): ARM处理器:

  • 栈帧模拟(协程前奏)

    EIP Instruction Pointer Register The EIP register always ...

  • CPU寄存器

    这篇文章主要针对eip,esp,ebp寄存器进行介绍,有关别的通用寄存器在很多汇编相关书籍中都有介绍,由于篇幅有限...

网友评论

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

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