在集会中

时间:2016-02-20 08:15:29

标签: debugging assembly x86 reverse-engineering decompiling

我正在拆卸具有以下je功能的代码:

je loc_00000105je

我被指示通过将jne修改为74 F1来绕过比较功能。这是一个奇怪的案例,因为我经历过这个:

jne loc_fffffff374

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

jne loc_fffffff30F 84 FF 00 00 00

但我真的很困惑,我怎么能改变:

je loc_00000105jne0F

任何帮助将不胜感激!

我尝试过改变:

0E0F

0B至{{1}}

等...

2 个答案:

答案 0 :(得分:2)

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

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

74 - > 75

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

0F 84 - > 0F 85

以下是一些操作码表供参考:

答案 1 :(得分:2)

这是一个很好的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。