我正在尝试更改汇编中的指令。尝试使用test eax, eaxto test eax, 1。我尝试修改操作码。例如操作码test eax, eax:85c0
test eax, eax
test eax, 1
85c0
试着理解为什么 85c0 是这张表:
85来自'test',好吧。但是c0从EB lb? 我有点困惑如何创建该操作码以及如何修改和获取test eax, 1.
85
c0
EB lb
谢谢,感谢任何帮助!
您感兴趣的操作码a9 01 00 00 00代表test eax, 1.
a9 01 00 00 00
获取汇编指令的操作码的最简单方法就是编译 它并反汇编结果(例如使用nasm然后使用objdump或仅使用此站点)-这样您就不必记住有关有时很奇怪的操作码的任何信息.
但是,您想要修补 2 个字节的指令,而我给出的操作码是 5 个字节。作为一种解决方法,您可以执行test al, 1( a8 01),这将执行相同的操作(test仅对 的最低有效字节执行eax)。
test al, 1
a8 01
test
eax