原文连接:http://hi.baidu.com/%BA%CE%B3%C9%B8%D5/blog/item/080ebd09b04d8e206b60fb21


MYCCL特征码定位器的详细使用
2008年02月09日 星期六 08:26
看见不少朋友对MYCCL这款特征码定位器不会使用,所以今天就给大家做一下这方面
的教程。
以前我们定位特征码都是应用CCL这款软件,对于特征码免杀来说确实很方便,但是随着杀毒软件的技术更新,我们所生成***的特征码不再是单一的,而是多区多段,比如以前我们用OD可以一半一半法定位特征码,但是现在,你把所有区段都NOP了,也是查不出来特征码的,为什么呢?因为现在的杀毒软件都是把文件特征码和内存特征码混在一起,并且设定的特征码位置比以前多了很多,并不象以前只是把特征码定位在CODE里而且只有一个。例如:
                PE文件 节表信息 这个是黑防灰鸽子的客户端共有8个区段              
文件名:D:Documents and SettingsAdministrator.BPLG桌面MYCLL(定位内存组合包)Server.exe
------------------------------------------------
节名称        起始位置        物理长度      
   CODE        00000400     000A1200   以前特征码多数在这个区段,并且只有一个
   DATA           000A1600       00002C00   现在的特征码有很多处。
   BSS           000A4200       00000000   
.idata         000A4200       00003400
   .tls             000A7600       00000000
rdata         000A7600       00000200
.reloc         000A7800       0000A400
   .rsrc         000B1C00      00008200
首先,我们要知道现在的杀软,以瑞星查杀内存是最厉害的,瑞星内存免杀能过的话,其他大多数杀毒软件的内存都基本能过的。所以今天我们就以瑞星杀软,对MYCCL进行讲解。修改特征代码免杀一般分为文件和内存二种,我们要先查找文件特征码进行免杀(表面免杀),然后才可以查找内存特征代码进行免杀。有的朋友错误的认为,给***加壳、加花、加密,这样文件(表面)免杀了,然后再用这个查找内存特征码,这样理解是错误的。
现在我们开始进行黑防灰鸽子的文件特征码定位查找:
首先我们要生成一个无壳的鸽子客户端,我已经生成好了。
打开MYCCL复合特征码定位器软件,把我们要查找的鸽子打开,带后缀不要选(这个在查找内存特征码时在选上)。目录,我在桌面已经建一个了,大家可以随便建一个。分块个数设置在50—100之间。单位长度和填充我们默认不写;开始位置我们写这里的:
区段         开始位置       分段长度
CODE        00000400        000A1200        95%的特征码都是在这个区段里
正向(反向)都可以,无所谓。结束位置是自动的,我们不用管它。选复合定位,因为特征码不是一个,会有很多个,所以选复合定位。开始点生成。2次处理前,我们对生成的文件用瑞星进行查杀并删除。我们继续2次处理,用瑞星杀毒删除,直到查不出为止。
特征码 物理地址/物理长度 如下:
[特征00092E3D_00001DB3
[特征000969A3_00001DB3
[特征0009C2BC_00005919
这里一共有3大段,我们看其中一个, 00092E3D这个是特征代码;00001DB3这个是此特征代码的偏移量,偏移量太大了,怎么办?我们继续。使它更精确一些。
选其中一个,复合定位此区间,它默认的分块个数太大,我们重新设置分块,我们设置100,重复上面的步骤。
刚才的偏移量由00001DB3缩小到0000004C。但是它还是比较大,我们继续对它进行缩小定位,步骤和上面一样。我们看单位长度已经在2了,所以我们就不用进行分块设置了,这里大家也看到了,分块越大,单位长度越小,但是分块越多,我们生成的文件数也越多,生成的文件数太多的话,我们的电脑会受不了的 呵呵。我们所要的精确定位就是偏移量在24,太大我们无法进行特征码的修改,下面我们继续把其他大的偏移量缩小,步骤是一样的。
[特征000969A3_00001DB3
[特征0009C2BC_00005919 这二个是大的偏移量,你们应该知道怎么精确的去定位了吧。
还有 要说明的是我们的分块个数是怎么设置的,大的文件(比如鸽子700k)一般设置在100—200之间,小的文件分块个数设置在100以内就可以了,二次处理的时候会出现分块个数是100多点(比如114),单位长度是2,这样我们就不需要在改回分块个数是100了,因为单位长度2或者是4,正好是我们所需要的大小。
这是我定位好的了,一共有9处:
特征码 物理地址/物理长度 如下:
[特征000949A7_00000002
[特征] 00094B3D_00000002
[特征] 000973E9_00000002
[特征] 0009CBBC_00000002
[特征0009F5A6_00000002
[特征000A0A46_00000002
[特征000A0DD2_00000002
[特征000A1250_00000002
[特征000A12A2_00000002
我们测试一下,看看是否正确。用WinHex进行修改,也可以用UltraEdit或者C32Asm都可以。我们找到特征码所在的位置,偏移量是2个字节,我们用0填充,为了节余时间,其他的你们填充吧。看到了,修改正确。教程到此,下次讲内存特征码的定位。