1.反病毒软件原理 构成: 多个扫描器,病毒库,虚拟机 特征码:病毒具有的独一无二的特征字符 虚拟机: 构建运行环境与实际cpu,硬盘隔离
2.扫描技术
1.基于文件扫描 字符串扫描,正则表达式匹配扫描 智能扫描:忽略nop无意义指令,脚本病毒和宏病毒通过替换多余格式字符如空格,换行 多套特征码和校验和, hash函数计算 骨架扫描:对脚本和宏病毒,去掉多余字符后分析代码骨架,提高对变种病毒的检测能力 ..... 2.基于内存扫描 与实时监控型扫描器协作. 检测只基于文件免杀的病毒
3.基于行为监控 :配合主动防御和虚拟机,识别程序的行为
4.云查杀 一个用户查到了病毒,将特征发到服务器,然后整个用户都能查杀到 .... 还有其他内容
5.多种技术一起查杀
6.神经网络的启发式分析
2.免杀原理 基本思想:破话特征码,包括文件,内存特征, 行为特征 1.文件免杀 字符串修改, 如果特征码是字符串的话 花指令: 插入垃圾代码干扰反汇编 加壳 2.内存免杀 内存中有是另外一套特征码. 建立代码虚拟机,破坏指令特征 3.行为免杀 内核级病毒 利用系统漏洞,软件漏洞掩盖自己的行为 3.特征码定位 文件分割识别特征码, 但是如果使用校验和就不行了 .....................
3.特征码定位
1.逐块填充
2.逐块暴露
4.免杀思路:
1.加1减1 汇编机器码相近的
2.空白区域跳转 基于特征码的偏移,这里修改了偏移.
3.上下互换 2条不影响执行流程的指令上下交换
4.等值替换 2条执行结果等价进行互换
5.修改入口点 .其实和空白区域跳转类似
6.使用补丁
7.利用花指令
8.利用seh
9.移动pe头部
10.移动导入表
11.为了避免启发式扫描,不应添加新的代码段,而是将原有代码段增大,然后增加新的内容
.如可疑的区段属性:代码段可写,数据段可执行,一般的程序代码段只有一个,且数据段属性为不可执行等
12.多个pe头部,内嵌pe程序.
5.源码免杀
基本思路,通过定位特征码,然后对比是哪些源码代码生成的,通过修改这些代码使特征消失.
需要干的事:
1.定位行为特征, 定位文件特征
可以修改编译选项和更换编译器
写垃圾代码(注意防止被优化)