前言

小伙伴们有没有对病毒感觉很神秘啊,本篇文章就来揭秘特征码免杀技术。


一、基础必备知识


1.1、特征码

               特征码又称电脑病毒特征码,它主要由反病毒公司制作,一般都是被反病毒软件公司确定为只有该病毒才可能会有的一串二进制字符串,而这字符串通常是文件里对 应程式码或汇编指令的地址。杀毒软件会将这一串二进制字符串用某种方法与目标文件或处理程序作对比,从而判定该文件或进程是否感染病毒。


1.2、免杀的原理


1.2.1>修改入口点.或直接入口点加1



     1.2.2>加壳加花伪装



     1.2.3>修改特征码



1.3、MYCCL简介


常用的定位木马病毒特征码的工具有三款,一款是CCL,一款是MultiCCL,另一款就是MYCCL。CCL程序出现后,使得特征码修改已经成为了对付杀毒软件的常用手法,但是杀毒软件开始使用多重复合特征码来对付特征码修改就是说只有你同时改掉程序所有的守护特征码此程序才不被杀。CCL这样的定位工具无法直接定位出特征码,要定位复合特征码必须手工划分,而MYCCL是CCL的改进版,可以进行多重特征码的定位,针对金山等杀软的反向定位等功能,并实现自动化代码定位和显示。

MyCCL定位原理



  假设一段木马程序代码是这样(0代表NULL,X代表程序代码,a、b、c等代表特征码):

001h:XXXXXaXXXbXXXXXXXXXX
  002h:XXXXXXXXcXXXXXxXXXXX
  003h:XXXXXXXXXaXXXXXXXXXX
  004h:XXXXXXXXXbXXXXXXXXXX
  005h:XXXXXXXXXXXXcXXXXXXX

  当文件同时包含a.b.c三种特征码的时候,杀软就报毒啦。这就是所谓的复合特征码。当然杀软在定义复合特征码的时候可能有好几种组合,好几套特征码。当是复合特征码的时候,在用CCL来定位结果是很困难的。而MyCCL在CCL的基础上又进步了。这里我们手动用MyCCL来生成5个文件。

========File1=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:00000000000000000000
  003h:00000000000000000000
  004h:00000000000000000000
  005h:00000000000000000000
  ========File2=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:XXXXXXXXcXXXXXxXXXXX
  003h:00000000000000000000
  004h:00000000000000000000
  005h:00000000000000000000
  ========File3=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:XXXXXXXXcXXXXXxXXXXX
  003h:XXXXXXXXXaXXXXXXXXXX
  004h:00000000000000000000
  005h:00000000000000000000
  ========File4=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:XXXXXXXXcXXXXXxXXXXX
  003h:XXXXXXXXXaXXXXXXXXXX
  004h:XXXXXXXXXbXXXXXXXXXX
  005h:00000000000000000000
  ========File5=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:XXXXXXXXcXXXXXxXXXXX
  003h:XXXXXXXXXaXXXXXXXXXX
  004h:XXXXXXXXXbXXXXXXXXXX
  005h:XXXXXXXXXXXXcXXXXXXX
  =========================

  从File2开始就有了abc特征码的组合,File2到File5就被杀了。被杀以后再用MyCCL,进行二次定位,这样我们就知道了特征码c的位置了。然后再把002h那行置0,再生成一次。

  第二次生成5个文件:

========File1=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:00000000000000000000
  003h:00000000000000000000
  004h:00000000000000000000
  005h:00000000000000000000
  ========File2=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:00000000000000000000
  003h:00000000000000000000
  004h:00000000000000000000
  005h:00000000000000000000
  ========File3=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:00000000000000000000
  003h:XXXXXXXXXaXXXXXXXXXX
  004h:00000000000000000000
  005h:00000000000000000000
  ========File4=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:00000000000000000000
  003h:XXXXXXXXXaXXXXXXXXXX
  004h:XXXXXXXXXbXXXXXXXXXX
  005h:00000000000000000000
  ========File5=============
  001h:XXXXXaXXXbXXXXXXXXXX
  002h:00000000000000000000
  003h:XXXXXXXXXaXXXXXXXXXX
  004h:XXXXXXXXXbXXXXXXXXXX
  005h:XXXXXXXXXXXXcXXXXXXX
  =========================

  因为002h被我们置0了,这里只有File5有abc特征码了,所以File5被杀,这时另一处c也暴露出来了,这样我们就把所有c特征码都定位出来了。MYCCL解决了CCL定位复合特征码的困难。


二、操作演示


2.1、木马配置

首先我们来配置一个木马


<ignore_js_op>

机器特征码 python 特征码解析_机器特征码 python

 

然后用360扫描一下

<ignore_js_op>

机器特征码 python 特征码解析_杀毒软件_02

 


2.2、免杀步骤解析

运行MYCCL.exe,单击“文件”载入刚才生成的木马文件。目录可不用修改。

<ignore_js_op>

机器特征码 python 特征码解析_字符串_03

 


成功载入后,可看见“PE文件 节表信息”,病毒特征码一般在CODE代码范文内

<ignore_js_op>

机器特征码 python 特征码解析_字符串_04

 


再把“起始位置”下的CODE 代码 复制到MyCCL的“开始位置”中。


<ignore_js_op>

机器特征码 python 特征码解析_杀毒软件_05

 


设置好分块数量,点击生成。


生成后可以看见桌面出现OUTPUT目录


用杀毒软件进行查杀,杀完后点击二次处理,再用杀软查杀,直到未发现病毒为止。


<ignore_js_op>

机器特征码 python 特征码解析_分块_06

 


处理掉。


可以发现找到特征码区间


<ignore_js_op>

机器特征码 python 特征码解析_分块_07

 


当然这个区间有点大。点击“特征区间” 右键点击 特征码处,选择 “复合定位此处特征”,填写“分块数量”再次重复前面的步骤 ,直至定位到特征码分段长度小于或等于2为止。


三、如何修改特征码


找到了特征码,但是如何修改呢。简单来说有几种:大小写转换,空白区域跳转,等值替换,填充。