经典定长指令下(修改EIP)
1、0x70 - 0x7F
opcode一个字节
条件跳转,后跟一个字节立即数的偏移(有符号),共两个字节。
如果条件成立,跳转到 当前指令地址 + 当前指令长度 + Ib(immediate byte(一个长度为一字节的立即数)
最大值:向前跳7f,向后跳80


2、0x0F 0x80 - 0x0F 0x8F
opcode就站两个字节,后面的立即数四个字节
条件跳转,后跟四个字节立即数的偏移(有符号),共六个字节。
如果条件成立,跳转到 当前指令地址 + 当前指令长度 + Id(immediate dword)
最大值:向前跳7FFFFFFFF,向后跳80000000


3、其他改变EIP指令
LOOP

LOOP比较前先进行ECX--

jrcxz

这个实际上是比较rcx,这是64位中的寄存器,在32位中表示ecx
E8 E9

经典也是最常用的E8 E9
还有两个JMP

 
EB只是跳的范围更小
RET

RET 后跟一个数,多数情况下是平衡堆栈,内平栈
RETF就是多传一个值给CS段寄存器

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号