我正在搞乱一些逆向工程,但我不知道如何用十六进制编辑器将jnz更改为jz。我知道它会因系统而异,但我不确定在哪里可以找到这些信息。我正在使用Mac OS X 64位,我用IDA Pro反汇编代码。
答案 0 :(得分:6)
如果您找到jz
,则其显示为74 XX
或0F 84 XX XX XX XX
。如果是74
,请将其更改为75
。如果是84
的那个,请将其更改为85
。此信息可以在英特尔手册(第2A卷)中找到。
系统之间不会有所不同,只要它们都是基于x86的,如果不是,那么jz
和jnz
可能根本不存在..
答案 1 :(得分:1)
我认为正确的方法是找出感兴趣的指令的操作代码(操作码)。由于您对jz和jnz指令感兴趣,我推断您使用的是Intel x86-64机器。这意味着您需要查看英特尔的参考http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html。我相信,你可能会发现有关英特尔64位汇编的所有信息。并且您将能够在任何地方应用这些知识,例如,在十六进制编辑器中编辑操作码。