【发布时间】:2017-03-25 10:09:39
【问题描述】:
这是一条可执行指令:
mov dword_1006530C, esi -> 89 35 0C 53 06 10
如何更改十六进制以将零移动到地址?
【问题讨论】:
-
你能澄清一下吗?你到底想做什么?
-
您的意思是将值零作为 32 位位戳写入绝对地址 0x1006530C?如果是这样,那么您将需要一些关于周围代码的额外上下文,因为没有足够的代码空间来就地修补当前指令。顺便说一句,地址是常量还是您需要在要修补的磁盘可执行文件中保留重定位记录?
-
最终目标是修补可执行文件。我是这个领域的新手,但我的猜测是我只能更改属于该指令的字节。也许我可以检查寄存器,看看在那个执行点是否有一个值为 0 的寄存器并将 esi 更改为那个?那会有点冒险,但如果没有可行的简单解决方案?
-
mov dword_1006530C, edi 的十六进制是什么?
-
如果你手头有一个零值的寄存器,这将是一个字节的变化(指令的第二个字节)。
标签: assembly x86 reverse-engineering ida