1. 首页>财经 > 财经

ddddddddd(我定位特征码后应该如何修改)

作者:何龙华
2023年03月04日 00:09
财经

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

推荐阅读