能力值:
( LV2,RANK:10 )
|
-
-
2 楼
jmp分为0xE9,0XEA,0xEB
E9 XX XX XX XX
是五个字节
EA XX XX XX XX XX XX
七个字节
EB XX
两个字节
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
jmp分为0xE9,0XEA,0xEB
那为什么会分为0xE9,0XEA,0xEB呢???
什么时候是0xE9,0XEA,0xEB呢??
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
这个问题问的好。虽然还没学到JMP,但先了解下也不错
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
直接的jmp分3种
Short Jump(短跳转)机器码 EB rel8
只能跳转到256字节的范围内
Near Jump(近跳转)机器码 E9 rel16/32
可跳至同一个段的范围内的地址
Far Jump(远跳转)机器码EA ptr 16:16/32
可跳至任意地址,使用48位/32位全指针
要注意的是,短跳转和近跳转指令中包含的操作数都是相对于(E)IP的偏移,而远跳转指令中包含的是目标的绝对地址,所以短/近跳转会出现跳至同一目标的指令机器码不同,不仅会不同,而且应该不同。而远跳转中包含的是绝对地址,因此转移到同一地址的指令机器码相同。
看雪以前的一个帖子:http://bbs.pediy.com/showthread.php?t=30746
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
在这里谢谢各位的大力支持,经过上面几位的指点,又查了点资料,在这里补充一下
--------------------------------------
还有一个寄存器的跳转,不知道种说法对不
jmp eax
FF XX;两个字节
还有一个就是远跳转
EA XXXXXXXXXXXX
去掉操作码,还剩6个字节,但是一个地址是4个字节,还有2字节是段地址
也就是说远跳转是 EA+段地址+段便宜量
--------------------------------------
如果以上有何错误望各位高手提醒,谢谢
|
|
|