je to jne 在装配

je to jne in assembly

我正在反汇编具有以下 je 函数的代码:

0F 84 FF 00 00 00 : je loc_00000105

我被指示通过将 je 修改为 jne 来绕过比较功能。这是一个奇怪的案例,因为我到处都遇到过这种情况:

74 F1 : jne loc_fffffff3

我可以通过将 74 更改为 75 来轻松更改:

75 F1 : jne loc_fffffff3

但是我真的很困惑我该如何改变:

0F 84 FF 00 00 00 : je loc_00000105jne

任何帮助将不胜感激!

我试过更改:

0F0E

0F0B

等...

74 是 x86 短 je 操作码,0F 84 是近 je 操作码。

所以这个 je -> jne 短跳转操作码补丁:

74 -> 75

相当于这些 je -> jne 近跳操作码。

0F 84 -> 0F 85

这里有一些操作码表供参考:

这里有一个不错的 x86 指令集参考:

http://ref.x86asm.net/coder32.html

74 XX 和 75 XX 指令编码为 JE 和 JNE,跳转目标有 8 位相对偏移量。

0F 85 XX XX XX XX是JNE的指令编码,后跟32位偏移。

对应的JE指令为0F 84 XX XX XX XX。