我正在拆卸具有以下je功能的代码:
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_00000105
:jne
至0F
任何帮助将不胜感激!
我尝试过改变:
0E
至0F
0B
至{{1}}
等...
答案 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。