5

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

4

2 回答 2

9

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

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

于 2012-08-20T14:28:42.267 回答
1

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

于 2012-08-20T15:43:14.273 回答