如何使用十六进制编辑器更改指令?

时间:2012-08-20 14:07:38

标签: assembly hex reverse-engineering instructions ida

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

2 个答案:

答案 0 :(得分:6)

如果您找到jz,则其显示为74 XX0F 84 XX XX XX XX。如果是74,请将其更改为75。如果是84的那个,请将其更改为85。此信息可以在英特尔手册(第2A卷)中找到。

系统之间不会有所不同,只要它们都是基于x86的,如果不是,那么jzjnz可能根本不存在..

答案 1 :(得分:1)

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