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