19-2

如何去过国内的杀软

1. 静态特征码检测

静态检测是指杀软在不运行程序的情况下,通过扫描文件本身的特征来判断是否为恶意软件。这包括特定的代码片段、哈希值、字符串等

应对方案:

  • 混淆代码:使用混淆器(Obfuscator)或手动对代码进行重构。这包括:
    • 花指令(Junk Instructions):在核心代码中插入大量无用的指令(如 NOP),改变代码结构,使得杀软无法匹配其已知的恶意代码特征码
    • 控制流平坦化(Control Flow Flattening):将程序的正常执行流程打乱,通过一个大的 switchif/else 结构来控制跳转,让杀软的分析引擎难以理解其逻辑
    • 字符串加密:将代码中使用的敏感字符串(如 URL、文件名、注册表键)进行加密,只在运行时解密使用。这可以有效绕过基于字符串的特征码检测
  • 改变编译参数:使用不同的编译器、编译选项,或更改代码,使得生成的机器码与杀软数据库中的特征码不匹配