码我就不说了特征码怎么用,前面两位说的很清楚了。我说说免杀吧,特征码用ccl特征码定位器,或者其他特征码定位器来定位,通常是这样用,把程序分成10段,先把第一段填充成0,然后查杀,如果不报警说明特征码在这段,如果报警就重新打开原来的程序填充第二段。一次类推,哪段不报警就是在那段里,然后继续对那段细分,用同样的办法,直到精确到几条指令为止。用od或者win32asm等反汇编软件载入,找到那个特征码的地址出,进行功能相同的代码修改,这需要有汇编知识。

特征码怎么用,特征码怎么用手机迅雷下载

怎么用myccl定位特征码?

1.ccl定位原理

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

001h:xxxxxxxxxxxxxxxxxxxx

002h:xxxxxxxxxxxxxxaxxxxx

003h:xxxxxxxxxxxxxxxxxxxx

004h:xxxxxxxxxxxxxxxxxxxx

005h:xxxxxxxxxxxxxxxxxxxx

当用ccl进行手动定位的时候,它生成了5个文件

==========file1===========

001h:00000000000000000000

002h:xxxxxxxxxxxxxxaxxxxx

003h:xxxxxxxxxxxxxxxxxxxx

004h:xxxxxxxxxxxxxxxxxxxx

005h:xxxxxxxxxxxxxxxxxxxx

==========file2===========

001h:xxxxxxxxxxxxxxxxxxxx

002h:00000000000000000000

003h:xxxxxxxxxxxxxxxxxxxx

004h:xxxxxxxxxxxxxxxxxxxx

005h:xxxxxxxxxxxxxxxxxxxx

==========file3===========

001h:xxxxxxxxxxxxxxxxxxxx

002h:xxxxxxxxxxxxxxaxxxxx

003h:00000000000000000000

004h:xxxxxxxxxxxxxxxxxxxx

005h:xxxxxxxxxxxxxxxxxxxx

==========file4===========

001h:xxxxxxxxxxxxxxxxxxxx

002h:xxxxxxxxxxxxxxaxxxxx

003h:xxxxxxxxxxxxxxxxxxxx

004h:00000000000000000000

005h:xxxxxxxxxxxxxxxxxxxx

==========file5===========

001h:xxxxxxxxxxxxxxxxxxxx

002h:xxxxxxxxxxxxxxaxxxxx

003h:xxxxxxxxxxxxxxxxxxxx

004h:xxxxxxxxxxxxxxxxxxxx

005h:00000000000000000000

=========================

当你用杀软来扫这5个文件时只有file2没有报毒,很明显因为file2的特征码a被填0了,这样也就暴露

了特征码a的位置了。ccl定位原理就是这样,然后反复的循环定位,缩小范围。最后就可以定位出我

们想要的特征码了。当然这是针对单一特征码。

----------------------------------------------------------------------------------------------

2.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特征码都定位出来了。解决了ccl定位复合特征码的困难。然而我们回过头来想想,如果你想修改a或b特征码呢?又如何定位出a或b的特征码呢?这就是myccl的一个缺陷。不是定位不出来,而是很费劲。没有特征码保护机制。

----------------------------------------------------------------------------------------------

3.multiccl定位原理

1.假设一种比较极端的情况:

某杀毒软件针对某样本

抽取了如下 a b c d e 的五个特征码片段

而其中的任何一个单独的片段都不构成完整的特征码

更极端的情况是可能有两套这样的组合。

却以其中任何两处来识别。(见 图1)

这样,如果用原来的ccl就很难定位了,就算能定位,操作也

变得很复杂。

(图1)

..............................aaaaaaaaa........................

...............................................................

.............bbbbbbb.........ccc...............................

...............................................................

...................ddddddddd...............eeeee...............

2.针对这种情况

有个思路是从一端开始盖零(考虑到pe文件文件头的重要性

multiccl选择了从尾端开始往前盖)。

直到如图2所示时,杀毒软件才不能识别

(b片段被破坏了一个字节)

这样b尾端就出来了。

(图2)

..............................aaaaaaaaa.........................

................................................................

.............bbbbbb000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

------------------------------------------------------------------

下面是定b片段的头端了

看看图3 图4 图5 ,注意看b片段中间那个字节的零的移动

(后来发现有时用一个字节的零不行,可改用n个零)

(图3)

..............................aaaaaaaaa.........................

................................................................

.............bbbb0bbb0000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

----------------------------------

(图4)

..............................aaaaaaaaa.........................

................................................................

.............0bbbbbb00000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

----------------------------------------------------------------------

(图5)

..............................aaaaaaaaa.........................

................................................................

............0bbbbbbb00000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

--------------上图的a 和 b 两个片段都暴露了--------------------------

图5 中,暴露出完整的a b 两个片段,这下又被杀毒软件认出来了

这样就定位出b段了。

接下来把b希用0盖掉作为新的样本,用杀毒软件检测一下是否被杀,还杀就

重复前面的步骤定 c 段,如图6

(图6)

..............................aaaaaaaaa........................

...............................................................

.............0000000.........ccc...............................

...............................................................

...................ddddddddd...............eeeee...............

-----------------------------------------------------------------------

如果定好c段盖掉后还是被杀就再定 d 段

如图7

(图7)

..............................aaaaaaaaa........................

...............................................................

.............0000000.........000...............................

...............................................................

...................ddddddddd...............eeeee...............

-----------------------------------------------------------------------

这样重复,直到片段d e ……都被找出盖掉后,杀毒软件再也不认了

(后来又发现有些杀毒软件针对零覆盖有干扰,改用随机串)

-----------------------------------

一个字节一个字节来显然太费时间,效率很低的,一次性

生成上千个文件也是不现实的。

所以考虑先用二分法粗定。到范围小时再逐字节替换。

-----------------------------------

从尾端开始数,以1.2.4.6.8……的大小往前盖

即取2的指数阶 , 2^n

一次生成20个左右的样本文件,用杀毒软件检测

以例图说明吧(见 图8图9)

下面这个盖了128 bytes 的还被识别

(图8)

..............................aaaaaaaaa........................

...............................................................

.............bbbbbbb.........ccc...............................

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

-----------上面这个盖了128 bytes的还被识别-------------

--------------下面这个盖了256 bytes 的不被识别了--------------------

(图9)

..............................aaaaaaaaa........................

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

--------------------------------------------------------------------

那就说明距文件末尾256--128之间有个特征码片段,

下一步就以图8为样本,

定位的范围是 图10 中经xxxx标记的区域

(图10)

..............................aaaaaaaaa........................

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

---------------------------------

如此反复,当范围缩小到32字节或更小,二分法就显得效率低下了,

改用逐字节替换法,一次生成最多32个文件。

-----------

另外,

图8 图9 图10 之外,还有一种情况,

就是某次用二分法生成的所有文件

杀毒软件都不识别,那就说明特征码集中在最大盖0范围之前

即图9中 未盖0的区域,这时只要以图9为样本,

定位图11中以yyyy标记的区域

(图11)

yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

-----------------------------------

后来实际测试及应用中发现这种算法效率不高。

文件定位时改用等分法,内存定位时用一半一半法,这样效率最高。

------------

尾端定出后,再用 图3图4图5 所示的方法把0还字节前移,一次生成32个

文件用杀毒软件检测,如果32个全不被杀时,就取这32个字节作为定位结果

对于这种大尺寸的片段,没必要完全定位出片段的头端。

  • 160 views
    a
发布日期:2021年12月21日 03:07:21  所属分类:seo小工具
标签:  |  |