如何修改此 MOV 汇编指令以写入硬编码值?

How can I modify this MOV assembly instruction to write a hard coded value?

我正在尝试执行以下 x86 程序集行

mov     byte ptr [esp+1F4h+var_4], bl

编码为

88 9C 24 F0 01 00 00

...我想将其修改为写入硬编码字节而不是 bl 寄存器。 ...但我无法读取 x86 操作码 table here 以修改此字节码。另外,尾随的两个空字节是用来分隔下一条指令的字节码,还是可以覆盖它们(以防新指令更长)?

如有疑问,请使用汇编程序 ;)

the two trailing null bytes to delimit the byte code from the next instruction

这些不是定界符,它们是存储为 32 位的偏移量的一部分。新指令的长度应该相同。长的很难放,短的可以用NOP指令填充。不幸的是,带有常量的版本确实更长:

C6 84 24 F0 01 00 00 42 mov byte [esp+0x1f0], 0x42

你不能把它放在那里,你可能还得弄乱下面的说明,以防你可以缩短它们以腾出空间。