我瞎搞一些逆向工程,但我不知道如何改变一个JNZ用十六进制编辑器JZ。 我的理解是因系统而异,但我不知道到哪里找到这些信息。 我工作在Mac OS X 64位和我反汇编代码与IDA Pro的。
Answer 1:
如果你发现了一个jz
,它要么看起来像74 XX
或0F 84 XX XX XX XX
。 如果它是一个74
,将其更改为75
。 如果它是一个与84
,将其更改为85
。 这些信息可以发现,在其他地方,在Intel的手册(体积2A)。
它不会因系统而异,只要它们是基于所有x86,如果他们不那么jz
和jnz
可能根本不存在..
Answer 2:
我认为这样做的正确方法是找出感兴趣的指令操作码(操作码)。 既然你感兴趣的JZ和JNZ指令,我推断你是英特尔的x86-64机器上。 这意味着你需要看一下英特尔的参考http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html 。 这里你会发现,我相信,你想了解更多有关英特尔的64位汇编一切。 而你就可以随时随地运用所学知识,比如,例如,在编辑操作码的十六进制编辑器。
文章来源: How does one change an instruction with a hex editor?