首页 技术杂谈 正文
  • 本文约1795字,阅读需9分钟
  • 171
  • 0

免杀前置知识

摘要

简单了解免杀的前置基础知识

1、反病毒技术原理

1.1、Ring0层

  • 计算机中有个用于控制CPU完成各项功能的命令系统,叫做 “指令系统”
    • 指令系统分为:特权指令与普通指令
    • 特权指令只允许操作系统以及相关模块使用
    • 普通指令只能是普通的应用程序使用
  • Intel的CPU将特权级别分为4层
    • Ring0,Ring1,Ring2,Ring3
    • Ring0:指的是内核层
    • Ring3:指的是用户层

1.2、反病毒软件的基本工作原理

  • 反病毒软件一般由扫描器、病毒库与虚拟机组成
  • 程序结构
    • 扫描器:用于查杀病毒
    • 病毒库:用于存放病毒所具有的特征字符
    • 虚拟机:使病毒在一个由反病毒软件构建的虚拟环境中执行

1.3、基于文件扫描的反病毒技术

基于文件扫描的技术分为3种

  1. 第一代扫描技术
    1. 字符串扫描:从病毒库中提取病毒具有的一段特征,拿去和程序作匹配
    2. 通配符扫描:取代字符串扫描,使用正则去匹配特征码
  2. 第二代扫描技术
    1. 近似精确识别法
    2. 精确识别法
    3. 智能扫描法
    4. 骨架扫描法

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制定的标准,而是执行由虚拟机作者本身制定的标准
标签:免杀
评论