zoukankan      html  css  js  c++  java
  • 杀毒与免杀技术具体解释之二:特征码定位-工具及原理

        特征码引擎如今依旧十分常见,家家户户都在用。
    小红伞
        打开360杀毒,以下显示的4个引擎中,”系统修复引擎、小红伞引擎”都是使用特征码进行病毒查杀的,其余的也实用特征码进行辅助。可见。如今的杀软中。特征码查杀的方法依旧占有不小的位置。
        可是,特征码引擎有很大的缺陷——easy被逃避。由于一般它仅仅要见着特征码就报毒。假设我们把一份病毒分成许多份,就能依据报毒的文件。轻松定位出特征码的位置。那么仅仅要稍作改动。特征码引擎就失效了。这就是我们今天要讨论的东西。
        如今就进入正题了,这次我们来看看特征码定位的原理和方法。实际操作的部分,以后会有实战篇。我会录制视频进行操作,大家能够一起来实验。

    1.特征码定位工具

        定位特征码有三款很不错的工具:MyCCL、CCL、MultiCCL。
        (tips: CCL就是Characteristic code locator。特征码定位器)
        以下是三种工具的简单介绍:

    工具名 功能说明
    CCL 通过逐块填充的方式,定位特征码
    MyCCL 通过逐块暴露的方式,定位特征码
    MultiCCL 通过混合定位。先用二分法定位出特征码的粗略位置,再用逐位測试法測出具体位置

        我们先来看看MyCCL工具的使用介绍。


        (tips:实验建议在虚拟机中做,毕竟网上的工具easy有毒。文章末尾有一个下载地址。測试可用。


        先看到主界面:
    MYCCL主界面
        功能区就在右下这一小块,所以它并不难用。各參数说明:

    • 文件路径(文件button左边的文本框): 要定位的文件路径
    • 文件夹路径: 要存放MyCCL分块文件的文件夹
    • 文件夹路径框右键点击: 能够选择TK.LOADER。以后进行内存免杀再具体讲
    • 分块个数: 分块文件的个数
    • 单位长度: 每次填充的字符长度
    • 填充: 用某个十六进制字节数据填充,如:”00”、”FF”
    • 開始位置&结束位置: 从某个位置開始/结束填充
    • 分段长度: 填充字符的总长度
    • 正向: 选择填充方向,从头到尾填充或者从尾到头填充
    • 复合定位: 一般都用这项,能够定位多处特征码
    • 单一定位: 仅仅定位一个特征码

        至于实际操作的流程,如今以一个小样例说明一下。
        我如今这里有一个病毒样本。正好进行一个免杀实验,大家仅仅要了解大概操作流程就可以。往后会有更具体的解说


        先四步走:

    1. 点击[文件]button,选择样本文件
    2. 点击[文件夹]button。选择分块文件存放文件夹
    3. 填写分块个数,建议在10-30之间,我们删除的时候方便,具体能够自己定
    4. 点击<生成>button,弹出的框都选’Yes’。生成第一批分块文件

        效果例如以下图所看到的:
    第一批分块文件生成实验
        点击OK,我们已经生成成功了,能够用WinHex观察下各文件,原理在下一节有具体解说
        我们再进行下一步——杀毒。就是用杀毒软件先扫描分块文件的文件夹,然后将报毒文件删除。
    演示查毒1
        仅仅要不是所有报毒,就说明能够定位。

    我们最好手动删除掉相应的文件。由于杀毒软件有时候是”修复”而不是”删除”
        (tips: 杀毒引擎最好设置成仅仅有一个,多引擎查杀时不好定位)
        接下来收点击”二次处理”,就能完毕第一次粗略定位了:
    二次处理演示
        然后我们点击特征区间,就能看到我们定位出来的特征码位置了。

    这时候我们应该再查毒。确定是否有第二个特征码的存在。假设再报毒,我们就再点击二次处理,一直循环到不报毒为止。
        总结下。MyCCL特征码定位,整个操作流程就是:

    Created with Raphaël 2.1.0启动MyCCL分块数量设置生成分块文件杀软扫描, 是否有毒删除报毒文件二次处理完毕特征码定位yesno

    2.特征码定位原理

        我们这里也以MyCCL为例解说下原理
        我们这里做了一个模拟的”特征码文件”。用于演示”逐块暴露”特征码定位原理。”1111……”代表常规数据。”FF”代表假定的特征码:
    样本
        将MyCCL的分块个数设置为3。MyCCL会将这个文件,用”00”(能够设置其他数值)填充,通过特定的办法分成三个文件。
        第一批分块文件:
    分块文件1
    分块文件2
    分块文件3
        由上图可知,第一个文件暴露出前1/3的数据,其余都用00填充;第二个暴露前2/3的数据;最后一个所有暴露。依据这三张图可知,MyCCL是从头到尾暴露的,这样的方式称为”正向”。还有从尾到头的方式,称为”反向”。
        可是我们发现。这三个都含有特征码,那它怎样能知道特征码的位置呢? 事实上还要看”二次处理”!


        将含有特征码的三个文件都删除掉,点击”二次处理”,生成第二批文件例如以下:
    第二批分块文件1
    第二批分块文件2
    第二批分块文件3
        从这次就能够看出来了,它事实上已经定位了一个大概的位置——第一行。由于第一批的三个文件都报毒。说明文件前1/3存在特征码

    然后第二批的文件,就会把这部分填充掉。以定位其他特征码。
        看到这里,已经能理解MyCCL的定位方法了。

    所谓的”逐块暴露”。就是”从上到下(反向也可)逐渐暴露,遇到特征码就将其填充,直到覆盖所有特征码”。

        这次我们已经讲清楚了特征码定位的原理及操作流程(MyCCL为例),下次会讲怎样改动特征码,并实战免杀几个引擎。建议大家在看的时候。自己认真理解、多实践,才干真正掌握。


        学习特征码定位,能够让我们了解这一传统引擎是怎样被击溃的,了解软件攻防的原理和技巧。

    看到这里,相信大家已经学到了不少。
        让我们一起学习吧,下篇见。

    MYCCL下载地址:
    http://www.3987.com/xiazai/2/43/7325.html

  • 相关阅读:
    算法的定义
    用标准的CSS定义你的表格样式
    Mysql存储过程中临时表的建立及游标遍历
    Ubuntu10.0下编译qt版webkit
    指针函数的一个范例,在单片机上运用它能让您的程序结构更明朗清晰,层次感强
    你若不自己爬上来,我就把你打死在水中——分享三个跟管理有关的小故事
    Windows 上使用 Github 手记
    IIS应用程序池由服务器引起常见错误号的原因分析及解决方法
    如何实施好基于MOSS的企业搜索项目(上)
    如何做好项目经理
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7226239.html
Copyright © 2011-2022 走看看