更改程序集操作码

时间:2014-07-25 20:15:23

标签: assembly hex opcode ida

我有以下代码: enter image description here

我正在使用IDA PRO。我正在尝试修补此代码并更改该行 mov eax,[rax + 10h]到mov eax,3。 mov eax,3是B8 03 00。

我在十六进制编辑器中以及从

更改代码时执行此操作

8B 40 10 8D 48 01 41 89 4B 10 EB 05 B8 01 00 00

B8 03 00 8D 48 01 41 89 4B 10 EB 05 B8 01 00 00

我在同一行中得到 B8 03 00 8D 48 ,这是与我的意图不同的命令。

我在做错了什么?我怎样才能做出这种改变?

enter image description here

1 个答案:

答案 0 :(得分:4)

这些是64位模式下mov *a*, 3的机器代码:

mov eax, 3:  b8 03 00 00 00
mov  ax, 3:  66 b8 03 00
mov  al, 3:  b0 03

正如您所看到的,mov eax, 3需要 5 个字节。你可以尝试:

6a 03    push 3
58       pop rax

但是你会遇到以下指令lea ecx, [rax+1]的问题!