免杀前置知识
1、反病毒技术原理
1.1、Ring0层
- 计算机中有个用于控制CPU完成各项功能的命令系统,叫做 “指令系统”
- 指令系统分为:特权指令与普通指令
- 特权指令只允许操作系统以及相关模块使用
- 普通指令只能是普通的应用程序使用
- Intel的CPU将特权级别分为4层
- Ring0,Ring1,Ring2,Ring3
- Ring0:指的是内核层
- Ring3:指的是用户层
1.2、反病毒软件的基本工作原理
- 反病毒软件一般由扫描器、病毒库与虚拟机组成
- 程序结构
- 扫描器:用于查杀病毒
- 病毒库:用于存放病毒所具有的特征字符
- 虚拟机:使病毒在一个由反病毒软件构建的虚拟环境中执行
1.3、基于文件扫描的反病毒技术
基于文件扫描的技术分为3种
- 第一代扫描技术
- 字符串扫描:从病毒库中提取病毒具有的一段特征,拿去和程序作匹配
- 通配符扫描:取代字符串扫描,使用正则去匹配特征码
- 第二代扫描技术
- 近似精确识别法
- 精确识别法
- 智能扫描法
- 骨架扫描法
1.4、基于内存扫描的反病毒技术
因为程序在运行后会将自身释放到内存中,释放后的文件结构与未执行的文件相比有较大的差异,因此一般会为内存扫描组件单独定义一套新的特征码
1.5、基于行为监控的反病毒技术
基于行为监控的反病毒技术一般需要与虚拟机、主动防御等技术配合工作。
其原理就是一旦程序执行了一些危险操作,匹配了"行为特征",那么就定为木马
1.6、基于新兴技术的反病毒技术
云查杀:可信继承,群策群力
- 以服务器为脑,以所有用户的机器为触角,从而使得服务器随时知道每个用户的情况,“其他用户”就是云查杀整个信任机制的基石。
- 可信继承
- 云的信任机制:包括用户参与的信任评价体系、样本信任分析体系、服务端自动判断信任体系、基于数字签名的认证信任体系
- 顶端的信任体系由数字签名、样本分析构成,其表现出来的形式就是“根可信任进程”,凡是由可信任进程开启的新进程都是可信的
- 例子:进程A是具有数字签名的根可信进程,那么它在被用户直接执行时不会触发反病毒软件的任何操作
- 群策群力
- 云的特点就是具有分布性,只要一台发现新病毒,它在被提交到服务端后,所有云中的计算机就都获取该病毒特征,从而进行防御
2、PE文件
- PE文件:在Windows系统中凡是可以直接以二进制形式被系统加载执行的文件都是PE文件
- PE文件其实是一种文件格式
2.1、PE文件的结构
- PE文件分为:DOS文件头、DOS加载模块、PE文件头、区段表、区段
- DOS文件头和DOS加载模块:如果程序在纯Windows环境下运行,则两个模块用不上,PE加载器会根据DOS文件头中最后一个标志跳过DOS加载模块,直接转到PE头
- 整个程序以DOS文件头的MZ标志位开始的
- PE文件头:以字母PE为开头的文件块
- 区块表:以.text、.data与.rsrc组成的区段表,也成为节表,相当于书中的目录
- 区段:通过区段名称可以猜测区段里大概包含的信息
3、免杀原理
3.1、特征码
特征码:就是防病毒软件用于判断文件是否带病毒的一段独一无二的代码,或是一段字符,或是在特定位置调用的一个函数
3.2、文件免杀
- 改特征码免杀:修改文件中特定区域的校验和,让其于病毒库中的特征不一致
- 花指令免杀:该方法针对第一代扫描器,通过添加垃圾指令,修改特征码在程序中的位置,使其产生偏移,让反病毒检测时其检测特征码的偏移量会整体位移一段位置
- 加壳免杀:对程序进行加密压缩, 当系统运行时,会首先运行程序的壳,然后由壳将加密的程序逐步还原到内存中
3.3、内存免杀
- 内存:内存是数据进入CPU之前的最后一个可控的物理存储设备.在这里数据往往已经被处理成可以直接被CPU执行的形式
- 内存扫描原理:其是和文件扫描原理一样,都是通过特征码去比对
3.4、行为免杀
- 从最早的"文件防火墙"到"主动防御",再到现在的"云查杀",其实都是应用了行为查杀
4、工具脱壳
4.1、壳的分类
- 压缩壳:主要目的是压缩应用程序的体积,例如UPX,程序本身不会被修改,而是换成一种更加节省空间的存储方式
- 加密壳:主要目的是保护原程序不被破解,一般情况下,经过加密壳处理的应用程序体积会增加,而且加密壳会对原程序进行一定的修改,例如:代码乱序、代码混淆
- 代码乱序:将本来线性执行的代码分成若干部分颠倒存储位置,再通过跳转指令将其按照正确的顺序连接起来
- 代码混淆:本质就是将一条指令扩展为若干条指令
- 虚拟机保护壳:其实现了软件版的CPU,被加密的程序不再遵守Intel制定的标准,而是执行由虚拟机作者本身制定的标准
推荐阅读: