1.CCL定位原理 假设一段木马程序代码是这样(0代表NULL,X代表程序代码,a、b、c等代表特征码):001h:XXXXXXXXXXXXXXXXXXXX002h:XXXXXXXXXXXXXXaXXXXX003h:XXXXXXXXXXXXXXXXXXXX004h:XXXXXXXXXXXXXXXXXXXX005h:XXXXXXXXXXXXXXXXXXXX当用CCL进行手动定位的时候,它生成了5个文件==========File1===========001h:00000000000000000000002h:XXXXXXXXXXXXXXaXXXXX003h:XXXXXXXXXXXXXXXXXXXX004h:XXXXXXXXXXXXXXXXXXXX005h:XXXXXXXXXXXXXXXXXXXX==========File2===========001h:XXXXXXXXXXXXXXXXXXXX002h:00000000000000000000003h:XXXXXXXXXXXXXXXXXXXX004h:XXXXXXXXXXXXXXXXXXXX005h:XXXXXXXXXXXXXXXXXXXX==========File3===========001h:XXXXXXXXXXXXXXXXXXXX002h:XXXXXXXXXXXXXXaXXXXX003h:00000000000000000000004h:XXXXXXXXXXXXXXXXXXXX005h:XXXXXXXXXXXXXXXXXXXX==========File4===========001h:XXXXXXXXXXXXXXXXXXXX002h:XXXXXXXXXXXXXXaXXXXX003h:XXXXXXXXXXXXXXXXXXXX004h:00000000000000000000005h:XXXXXXXXXXXXXXXXXXXX==========File5===========001h:XXXXXXXXXXXXXXXXXXXX002h:XXXXXXXXXXXXXXaXXXXX003h:XXXXXXXXXXXXXXXXXXXX004h:XXXXXXXXXXXXXXXXXXXX005h:00000000000000000000=========================当你用杀软来扫这5个文件时只有File2没有报毒,很明显因为File2的特征码a被填0了,这样也就暴露了特征码a的位置了。CCL定位原理就是这样,然后反复的循环定位,缩小范围。最后就可以定位出我们想要的特征码了。当然这是针对单一特征码。----------------------------------------------------------------------------------------------2.MyCCL定位原理假设一段木马程序代码是这样(0代表NULL,X代表程序代码,a、b、c等代表特征码):001h:XXXXXaXXXbXXXXXXXXXX002h:XXXXXXXXcXXXXXxXXXXX003h:XXXXXXXXXaXXXXXXXXXX004h:XXXXXXXXXbXXXXXXXXXX005h:XXXXXXXXXXXXcXXXXXXX当文件同时包含a.b.c三种特征码的时候,杀软就报毒啦。这就是所谓的复合特征码。当然杀软在定义复合特征码的时候可能有好几种组合,好几套特征码。当是复合特征码的时候,在用CCL来定位结果是很困难的。而MyCCL在CCL的基础上又进步了。这里我们手动用MyCCL来生成5个文件。========File1=============001h:XXXXXaXXXbXXXXXXXXXX002h:00000000000000000000003h:00000000000000000000004h:00000000000000000000005h:00000000000000000000========File2=============001h:XXXXXaXXXbXXXXXXXXXX002h:XXXXXXXXcXXXXXxXXXXX003h:00000000000000000000004h:00000000000000000000005h:00000000000000000000========File3=============001h:XXXXXaXXXbXXXXXXXXXX002h:XXXXXXXXcXXXXXxXXXXX003h:XXXXXXXXXaXXXXXXXXXX004h:00000000000000000000005h:00000000000000000000========File4=============001h:XXXXXaXXXbXXXXXXXXXX002h:XXXXXXXXcXXXXXxXXXXX003h:XXXXXXXXXaXXXXXXXXXX004h:XXXXXXXXXbXXXXXXXXXX005h:00000000000000000000========File5=============001h:XXXXXaXXXbXXXXXXXXXX002h:XXXXXXXXcXXXXXxXXXXX003h:XXXXXXXXXaXXXXXXXXXX004h:XXXXXXXXXbXXXXXXXXXX005h:XXXXXXXXXXXXcXXXXXXX=========================很明显,很明显从File2开始就有abc特征码的组合了,这样File2到File5就被杀了。被杀以后再用MyCCL,进行二次定位,这样我们就知道了特征码c的位置了。然后再把002h那行置0,再生成一次。第二次生成5个文件:========File1=============001h:XXXXXaXXXbXXXXXXXXXX002h:00000000000000000000003h:00000000000000000000004h:00000000000000000000005h:00000000000000000000========File2=============001h:XXXXXaXXXbXXXXXXXXXX002h:00000000000000000000003h:00000000000000000000004h:00000000000000000000005h:00000000000000000000========File3=============001h:XXXXXaXXXbXXXXXXXXXX002h:00000000000000000000003h:XXXXXXXXXaXXXXXXXXXX004h:00000000000000000000005h:00000000000000000000========File4=============001h:XXXXXaXXXbXXXXXXXXXX002h:00000000000000000000003h:XXXXXXXXXaXXXXXXXXXX004h:XXXXXXXXXbXXXXXXXXXX005h:00000000000000000000========File5=============001h:XXXXXaXXXbXXXXXXXXXX002h:00000000000000000000003h:XXXXXXXXXaXXXXXXXXXX004h:XXXXXXXXXbXXXXXXXXXX005h: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......................................................................................................bbbbbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000------------------------------------------------------------------下面是定b片段的头端了 看看图3 图4 图5 ,注意看b片段中间那个字节的零的移动 (后来发现有时用一个字节的零不行,可改用N个零)(图3)..............................aaaaaaaaa......................................................................................................bbbb0bbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000----------------------------------(图4)..............................aaaaaaaaa......................................................................................................0bbbbbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000----------------------------------------------------------------------(图5)..............................aaaaaaaaa.....................................................................................................0bbbbbbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000--------------上图的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
-
多家中小银行跟进下调存款利率,整体仍
10月下旬以来,多家农商行、村镇银行发布存款利率调整通知,对一年期、三年期、五年期等存款利率进行下调,同时,下调幅度从10个…
-
叮咚买菜正式入驻淘宝买菜,联手给消费
11月9日消息,天猫双11期间,叮咚买菜入驻淘宝买菜,将联手提供1小时到家服务,为消费者们带来优质、更低价的商品。据介绍,这是…
-
华为再次开启了先锋计划推出了Mate 60
今天上午,华为再次开启了先锋计划,推出了Mate 60 Pro+和Mate X5两款手机。尽管没有任何宣发,但Mate X5作为理财神器的继任者,仍然展现了…
-
华为推出新一代折叠屏手机Mate X5
华为推出新一代折叠屏手机Mate X5,该款手机于昨日开始预订,订金为1000元,最终价格尚未公布。Mate X5采用横向大折叠设计,内屏为7.85英…
-
鹅蛋的做法大全家常做法(鹅蛋的做法大
你们好,最近小元发现有诸多的小伙伴们对于鹅蛋的做法大全家常做法,鹅蛋的做法大全家常这个问题都颇为感兴趣的,今天小活为大家梳理了下,…