Suppose I want to do a short jump using the following opcodes:
EB CB or JMP rel8
"Jump short, RIP = RIP + 8-bit displacement sign extended to 64-bits"
(where CB is a byte signed value representing the relative offset relating to direction in EIP register)
Maybe always the offset will be offset+2 because the EIP in execution time (the reference direction) in this short jump is the base of the twobyte instruction, but the addend occurs always
eb 30 = jmp 0x00000032 (+30)
eb e2 = jmp 0xffffffe4 (-30)
then EIP can be intentionally the same direction because fe + 2 is 00 or EIP.
eb fe = jmp 0x00000000
I find it surprising that the overoffset ocurred bifurcated although the number is negative. But in the Intel I find no mention (maybe because 3000 pages).
Intel® 64 and IA-32 Architectures Software Developer’s Manual: Vol. 2A 3-423
A near jump where the jump range is limited to –128 to +127 from the current EIP value.
Then I contemplate three possibilities:
- is +2 because is the after/future value of EIP in execution time
- The coded value is not a 2s component encoded signed number.
- this appears in the manual but I have not seen because i'm stupid