【2021.01.09】经典定长指令-修改EIP

0x70 - 0x7F

  1. 条件跳转,后跟一个字节立即数的偏移(有符号),共两个字节。
  2. 如果条件成立,跳转到 当前指令地址 + 当前指令长度 + lb。
  3. 最大值:向前跳7F,向后跳80。
硬编码 汇编
0x70 JO
0x71 JNO
0x72 JB/JNAE/JC
0x73 JNB/JAE/JNC
0x74 JZ/JE
0x75 JNZ/JNE
0x76 JBE/JNA
0x77 JNBE/JA
0x78 JS
0x79 JNS
0x7A JP/JPE
0x7B JNP/JPO
0x7C JL/JNGE
0x7D JNL/JGF
0x7E JLE/JNG
0x7F JNLE/JG

0x0F 0x80 - 0x0F 0x8F

  1. 条件跳转,后跟四个字节立即数的偏移(有符号),共五个字节。
  2. 如果条件成立,跳转到 当前指令地址 + 当前指令长度 + ld。
  3. 最大值:向前跳7FFFFFFFF,向后跳80000000。
硬编码 汇编
0xF0 0x80 JO
0xF0 0x81 JNO
0xF0 0x82 JB/JNAE/JC
0xF0 0x83 JNB/JAE/JNC
0xF0 0x84 JZ/JE
0xF0 0x85 JNZ/JNE
0xF0 0x86 JBE/JNA
0xF0 0x87 JNBE/JA
0xF0 0x88 JS
0xF0 0x89 JNS
0xF0 0x8A JP/JPE
0xF0 0x8B JNP/JPO
0xF0 0x8C JL/JNGE
0xF0 0x8D JNL/JGF
0xF0 0x8E JLE/JNG
0xF0 0x8F JNLE/JG

其他指令1

硬编码 汇编 长度 说明
0xE0 LOOPNE/LOOPNZ lb (Jb) 2字节 ECX = ECX - 1;当ZF = 0 && ECX != 0 时跳转到 当前指令地址 + 当前指令长度 + lb。
0xE1 LOOPE/LOOPZ lb (Jb) 2字节 ECX = ECX - 1;当ZF = 1 && ECX != 0 时跳转到 当前指令地址 + 当前指令长度 + lb。
0xE2 LOOP lb (Jb) 2字节 ECX = ECX - 1;当 ECX != 0 时跳转到 当前指令地址 + 当前指令长度 + lb。
0xE3 JrCXZ lb (Jb) 在32位中rCX为ECX 2字节 当 ECX = 0 时跳转到 当前指令地址 + 当前指令长度 + lb。自行控制步长。
0xE8 CALL ld (Jd) 5字节 CALL 指令的下一条地址入栈后,跳转到 当前指令地址 + 当前指令长度 + ld。
0xE9 JMP ld (Jd) 5字节 跳转到 当前指令地址 + 当前指令长度 + ld。

其他指令2

8个顺序固定的段寄存器:ES、CS、SS、DS、FS、GS、LDTR、TR

猜你喜欢

转载自blog.csdn.net/qq_18120361/article/details/112408193