美文网首页
修改EPI指令

修改EPI指令

作者: 欧皇ff | 来源:发表于2020-04-02 11:40 被阅读0次

EIP 寄存器 指向CPU下一次要执行的程序地址。

指令 注释 用法
JMP 修改EIP的值 JMP r/m/imm
CALL 修改EIP的值,入栈CALL指令下一行的程序地址 CALL r/m/imm
RET 出栈CALL指令入栈的程序地址到EIP RET

JMP 指令:jmp相当于 mov eip,r/m/imm

由下图可见,不支持直接mov eip的值(Intel并没有提供mov eip支持)。


mov eip,imm
//EIP改变 程序跳转到空白(堆栈外的地址)
JMP 1
jmp 1 结果
jmp 0044335A
jmp eax
jmp dword ptr ds:[0x0012FFCC]
jmp 0044335A

CALL 指令:

  1. 修改EIP的值
  2. call指令下面一行指令的地址存入堆栈
  3. esp地址减4
    (2、3步骤相当于 PUSH CALL指令下面一行指令的地址)
    注:CALL指令在DTDebug中按F7执行。
CALL 0044335C 结果
CALL 0044335C

MOV EAX,0044335C
CALL EAX

MOV DWORD PTR DS:[0012FFC8],0044335C
CALL DWORD PTR DS:[0012FFC8]
//1 
//自定义实现CALL
jmp 0044335C
push 00443355
//2 解释push
jmp 0044335C
mov 0012ffC0 00443355
sub esp,4

思考:
还可以怎么实现CALL指令功能?

RET 指令:

  1. ESP加4
  2. EIP重新指向栈顶指向指令地址
RET
//
RETN
//1
jmp dword ptr ds:[esp]
add esp,4

思考:
如何自定义实现RETN?

相关文章

  • 修改EPI指令

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

  • 修改EIP

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

  • EPI社区正式入驻OK Chat

    区块财经8月4日 消息 EPI各大社区已正式入驻OK Chat,持续推进EPI生态落地,实现通证流通。打造EPI生...

  • 修改指令

    IDA 目的 修改执行文件中的指令,练习IDA的使用,在X86和arm下分别实验 将跳转指令jle改成jne ht...

  • EPI_PrimitiveTypes_No.001_Parity

    关于EPI EPI即Elements Programming Interviews这本书,是除了CC189以外我见...

  • <<汇编语言>>第9~10章笔记

    转移指令 jmp指令 jmp 为无条件转移指令,可以只修改IP,也可以同时修改CS和IPjmp指令要给出的两种信息...

  • 9.《汇编语言》-王爽第三版学习笔记 转移指令的原理

    1.可以修改 IP, 或通知修改 CS 和 IP 的指令 统称为 转移指令。 概括的讲,转移指令就是可以控制 CP...

  • 处理工单方法的归类2018-10-24

    如图 包括有以下几类 简单型:指令重新执行、子指令重执行 技术型:指令参数编辑修改、工单状态修改 偷懒赖皮型:退单...

  • chmod指令

    chmod指令 修改权限

  • 8086汇编(22)转移指令

    转移指令 1、可以修改IP,或同时修改CS和IP的指令统称为转移指令。 8086CPU的转移行为有以下几类。 只修...

网友评论

      本文标题:修改EPI指令

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