能力值:
( LV2,RANK:10 )
|
-
-
2 楼
je和任何条件跳转,一般是8位偏移量。而delphi好象只编译为8位偏移量吧。如果要支持32位偏移量,那编译的机器代码就是另外一种了,好象是0fXX XXXXXXXX要占6个字节。而一般是74 xx,只占2个字节。可能delphi只能生成74 xx这种2个字节的机器指令。
这种假设可能也不对。我又想了一下,应该是je和任何条件跳转,只能跳转偏移量,你如果要跳转到固定地址,那么偏移量为固定地址-je指令的当前地址,而je指令的当前地址是随着载入内存的位置不同而重定位的,所以不能生成je (偏移量xxxxxx)的指令,因为xxxx是变化的啊。而jmp可以jmp到固定地址,比如jmp [401008],而内存401008存储的就是500000,那么不管jmp的指令本身的地址如何重定位,都是jmp到500000这个固定地址,总结来说,就是je和任何条件跳转不能跳转到固定地址,而jmp可以jmp [xxxx],也可以jmp eax等等,所以可以跳转到固定地址。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
aait 你说的太对了 因为在OD下也不能那么跳 JE [00401000] JE EAX 都不行
|
|
|