更改 mov 以设置常量 0
Change mov to set constant 0
这是一条可执行指令:
mov dword_1006530C, esi -> 89 35 0C 53 06 10
如何更改十六进制以将零移动到地址?
没有足够的空间来写入将零写入该地址的指令序列。
单独的地址,编码为立即数,将占用四个字节。只留下两个字节用于:a) 保存寄存器 b) 将其归零 c) 执行存储 d) 恢复寄存器。
如果您碰巧在其他寄存器中有一个零,您可以将指令更改为
mov DWORD [1006530ch], <reg>
你可以使用NASM快速找出此类代码的机器码:只需将代码写在文件中,在开头添加BITS 32
。
Assemble 它并用十六进制编辑器检查输出文件。
例如 mov DWORD [1006530ch], edi
是 89 3D 0C 53 06 10
。
如果您没有准备好零,唯一的解决办法是将指令替换为 jmp
到文本部分的空闲位置(始终有空闲位置),您可以在其中粘贴你的机器代码,最后跳回原来的程序流程。
这是一条可执行指令:
mov dword_1006530C, esi -> 89 35 0C 53 06 10
如何更改十六进制以将零移动到地址?
没有足够的空间来写入将零写入该地址的指令序列。
单独的地址,编码为立即数,将占用四个字节。只留下两个字节用于:a) 保存寄存器 b) 将其归零 c) 执行存储 d) 恢复寄存器。
如果您碰巧在其他寄存器中有一个零,您可以将指令更改为
mov DWORD [1006530ch], <reg>
你可以使用NASM快速找出此类代码的机器码:只需将代码写在文件中,在开头添加BITS 32
。
Assemble 它并用十六进制编辑器检查输出文件。
例如 mov DWORD [1006530ch], edi
是 89 3D 0C 53 06 10
。
如果您没有准备好零,唯一的解决办法是将指令替换为 jmp
到文本部分的空闲位置(始终有空闲位置),您可以在其中粘贴你的机器代码,最后跳回原来的程序流程。