花指令的核心逻辑:
ida等工具反汇编机器码时,为了防止递归,只能按照前后顺序,将机器码翻译为汇编指令,若多条指令产生交叉,在跳转交叉处,反汇编工具会产生译码错误,只能人工干预才能避免此情况的发生。
如图所示:
指令EB FF的汇编代码为jmp -1,CPU执行到地址处0x6c80c0的指令EB FF时(jmp -1),EIP为6c80c2, 执行后,EIP为0x6c80c1。但是反汇编器无法自动识别该指令。
花指令的核心逻辑:
ida等工具反汇编机器码时,为了防止递归,只能按照前后顺序,将机器码翻译为汇编指令,若多条指令产生交叉,在跳转交叉处,反汇编工具会产生译码错误,只能人工干预才能避免此情况的发生。
如图所示:
指令EB FF的汇编代码为jmp -1,CPU执行到地址处0x6c80c0的指令EB FF时(jmp -1),EIP为6c80c2, 执行后,EIP为0x6c80c1。但是反汇编器无法自动识别该指令。