防反汇编技术


知识点

所谓对抗反汇编技术,就是在程序中使用一些特殊构造的代码或数据,让反汇编分析工具产生不正确的程序代码列表。这种技术由恶意代码编写者手工构造,在恶意代码编译和部署阶段使用一个单独的混淆工具,或是直接在源码中插入混淆代码。除了延缓或者防止人工分析以外,防反汇编技术也能在一定程度上阻碍特定的自动化分析技术。

线性反汇编:线性反汇编策略是遍历一个代码段,一次一条指令地线性反汇编,线性反汇编用已经反汇编地指令大小来决定下一个要反汇编的字节,而不考虑代码流的控制指令。

面向代码流的反汇编:面向代码流的反汇编算法是一种更先进的反汇编宣发,这种算法会根据后续代码的逻辑来选择汇编的字节流,因此结果一般情况下会更加准确。

相同目标的跳转指令:恶意代码中最常见的防反汇编技术是使用指向同一目标地址的两个连续条件跳转指令。例如jz loc_512之后是 jnz loc_512则这个指令就相当于无条件跳转指令jmp,另外程序可能会在代码中插入与指令相同额数据如用E8来冒充call指令,实际上使用的是E8后面的字节,E8并没有发挥作用。遇到这种情况可以使用快捷键D使代码变成数据。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×