【问题标题】:How does one change an instruction with a hex editor?如何使用十六进制编辑器更改指令?
【发布时间】:2012-08-15 21:00:30
【问题描述】:

我在搞一些逆向工程,但我不知道如何使用十六进制编辑器将 jnz 更改为 jz。我知道它会因系统而异,但我不确定在哪里可以找到这些信息。我正在使用 Mac OS X 64 位,并使用 IDA Pro 反汇编代码。

【问题讨论】:

    标签: assembly hex reverse-engineering instructions ida


    【解决方案1】:

    我假设正确的方法是找出感兴趣指令的操作码(操作码)。由于您对 jz 和 jnz 指令感兴趣,我推断您在 Intel x86-64 机器上。这意味着您需要查看英特尔的参考资料http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html。我相信,您可能会在此处找到有关英特尔 64 位程序集的所有信息。您将能够在任何地方应用这些知识,例如,在十六进制编辑器中编辑操作码。

    【讨论】:

      【解决方案2】:

      如果您找到了jz,则它可能看起来像74 XX0F 84 XX XX XX XX。如果是74,请将其更改为75。如果是84,则将其更改为85。此信息可在英特尔手册(第 2A 卷)等其他地方找到。

      只要它们都是基于 x86 的,它不会因系统而异,如果不是,那么 jzjnz 甚至可能不存在。..

      【讨论】:

        猜你喜欢
        • 2018-02-01
        • 2016-11-29
        • 2013-02-22
        • 1970-01-01
        • 2018-03-05
        • 1970-01-01
        • 1970-01-01
        • 2013-12-17
        • 2020-11-29
        相关资源
        最近更新 更多