我有以下代码:
我正在使用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 ,这是与我的意图不同的命令。
我在做错了什么?我怎样才能做出这种改变?
答案 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]
的问题!