如何使用十六进制编辑器更改指令?
Posted
技术标签:
【中文标题】如何使用十六进制编辑器更改指令?【英文标题】:How does one change an instruction with a hex editor? 【发布时间】:2012-08-15 21:00:30 【问题描述】:我在搞一些逆向工程,但我不知道如何使用十六进制编辑器将 jnz 更改为 jz。我知道它会因系统而异,但我不确定在哪里可以找到这些信息。我正在使用 Mac OS X 64 位,并使用 IDA Pro 反汇编代码。
【问题讨论】:
【参考方案1】:我假设正确的方法是找出感兴趣指令的操作码(操作码)。由于您对 jz 和 jnz 指令感兴趣,我推断您在 Intel x86-64 机器上。这意味着您需要查看英特尔的参考资料http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html。我相信,您可能会在此处找到有关英特尔 64 位程序集的所有信息。您将能够在任何地方应用这些知识,例如,在十六进制编辑器中编辑操作码。
【讨论】:
【参考方案2】:如果您找到了jz
,则它可能看起来像74 XX
或0F 84 XX XX XX XX
。如果是74
,请将其更改为75
。如果是84
,则将其更改为85
。此信息可在英特尔手册(第 2A 卷)等其他地方找到。
只要它们都是基于 x86 的,它不会因系统而异,如果不是,那么 jz
和 jnz
甚至可能不存在。..
【讨论】:
以上是关于如何使用十六进制编辑器更改指令?的主要内容,如果未能解决你的问题,请参考以下文章