作者:木子0031970_651 | 来源:互联网 | 2023-06-05 09:07
花指令的作用花指令是对抗反汇编的有效手段之一,正常代码添加了花指令之后,可以破坏静态反汇编的过程,使反汇编的结果出现错误,使ida和ollydbg等搜索不到字符串。错误的反汇编结果
花指令的作用
花指令是对抗反汇编的有效手段之一,正常代码添加了花指令之后,可以破坏静态反汇编的过程,使反汇编的结果出现错误,使ida和ollydbg等搜索不到字符串。错误的反汇编结果会造成破解者的分析工作大量增加,进而使之不能理解程序的结构和算法,也就很难破解程序,从而达到病毒或软件保护的目的。
缺点:不能防止动态调试
以以下代码为例:
#include
int main()
{_asm {xor eax,eaxtest eax,eaxje Label1_emit 0e8hLabel1:}std::cout <<"Test Junk Code" <}
原理
通过加入汇编代码构成恒成立跳转,在ollydbg中的效果
在ida中的效果
如何去除花指令进行反编译?
找到花指令的地方,并将这个E8改为90(即nop)
改完后的效果,返现字符串已经吐出来了
可以看到在ida中就可以反汇编了