恶意代码分析必备知识 - 简书
2018-09-07 tech security troubleshooting 9 mins 12 图 3488 字
反病毒软件原理
- 反病毒软件一般由扫描器、病毒库和虚拟机组成,并由主程序将它们整合为一体
- 一般情况下,扫描器用于查杀病毒,是反病毒软件的核心。一个反病毒软件的效果好坏直接取决于扫描器的技术与算法是否先进
- 病毒库中存储着病毒所具有的独一无二的特征字符,我们称之为“特征码”,而病毒库存储特征码的存储形式则取决于扫描器采用哪种扫描技术
- 特征码可能存在于任何文件中,例如exe文件、dll文件、apk文件、php文件、甚至是TXT文件中,所以它们都有可能被查杀。
- 虚拟机,可以使病毒在一个反病毒软件构建的虚拟机环境中执行,这样就与现实的cpu、硬盘等物理设备完全隔离,从而可以更加深入的检测文件的安全性
常见的防病毒技术(基于文件扫描)
基于文件扫描的反病毒技术可以分为: “第一代扫描技术” “第二代扫描技术” “算法扫描” 对于恶意代码分析师来说,非常有必要对每一种扫描技术有所了解
第一代扫描技术可以用“在文件中检索病毒特征序列”这句话高度概括,这一扫描技术直到现在也仍然被各大反病毒软件厂商使用着,其主要分为“字符串扫描技术”与“通配符扫描技术”两种。
第二代扫描技术的代表有
- 智能扫描法
- 近似精确识别法
- 骨架扫描法
- 精确识别法
智能扫描法
这种方法是在大量变异病毒出现后提出的。智能扫描法会忽略检测文件中像nop这种无意义的指令。而对于文本格式的脚本病毒或者宏病毒,则可以替换掉多余的格式字符,例如空格,换行符,制表符等。由于这一切替换动作往往是在扫描缓冲区中执行的,从而大大提高了扫描器的检测能力
近似精确识别法
多套特征码
该方法采用两个或者更多的字符集来检测每一个病毒,如果扫描器检测到其中一个特征符合,那么就会警告发现变种,但不会执行下一步操作。如果多个特征码全部符合,则报警发现病毒,并执行下一步操作