花指令

花指令是一种防止程序被反汇编调试的手段。

种类

跳转到多字长指令的参数中

一般来说,反汇编器会按顺序进行反汇编,但是,如果程序跳转到多字长指令的参数中,反汇编的结果就会和实际情况不符。

示例(使用 6502 指令集,数字如无特殊说明均为十六进制
内存地址012345
机器码4C0400A9A960
反汇编出的指令JMP $0004LDA #$A9RTS
释义跳转到地址 4将 A9 载入累加器子程序返回
实际执行的指令JMP $0004这里不会被执行LDA #$60
释义跳转到地址 4将 60 载入累加器中

这个例子过于简单,是可以被调试器检测到的。实际应用的花指令比这个更复杂,含有条件跳转指令。

参见

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.