复合特征码定位原理及方法
前言:大家好,我是nafish,今天介绍一下复合特征码定位原理及方法,主要是为了那些想做免杀,不知道从那开始的朋友,因为我也是从那里开始的。希望我的一点学习心得,能对大家有所帮助。高手就闪吧,不浪费时间。(看不见图的在图片上点鼠标右键,选显示图片就可以看见了^_^)
1.特征码:特征码就是杀毒软件公司定义的一段或多段程序代码,杀毒软件用特征码来定义
病毒,就
象我们用名字来定义人名一样。
2.复合特征码,其实就是多处特征码,因为单一特征码很容易被修改,从而杀毒软件定义了复合特征
码,就是我们只修改一处特征码,还是会被杀掉的,就需要通通改掉。
3.复合特征码的定位原理,主要是讲一下MyCCL的原理,我这里举个例子:
一段程序:a---b-----------------c---c---a-----b-----------a--b----a------
这里a,b,c是特征码,只有当a,b,c同时存在的时候,杀毒软件才会报毒!我们使用的方法还是把程序填0,然后试杀,被杀的说明是特征码(注意这里是复合特征码的情况)。我们把这段程序分成3段。
0_0_20: a---b--------------00000000000000000000000000000000000000000000
1_20_20: a---b-----------------c---c---a-----b---00000000000000000000000
2_20_20: a---b-----------------c---c---a-----b-----------a--b----a------
我们把这段程序分成这样的3段,用杀毒软件查杀的时候,杀软会报1_20_20,2_20_20是病毒!这样我们就知道特征码是在1_20_20这段里了。然后二次处理,把1_20_20这段用0填,然后在杀!二次处理后就是这样的:
0_0_20: a---b---------------0000000000000000000000000000000000000000000
1_20_20: a---b---------------0000000000000000000000000000000000000000000
2_20_20: a---b---------------00000000000000000000--------a--b----a------
这样杀毒软件就不会报毒了,如果程序的后面还有c特征码的话,可以象这样继续分析,直到把所有的c特征码都填0,找到为止!找到了特征码的大段之后,再详细定位,详细定位就是这样反复操作。
4.下面我们来实战定位,瑞星vs黑防鸽子
1>这是定位复合特征码的工具,下载地址:
http://www.allinhack.com/blog/
首先是文件特征码的定位,大家看我的参数~
分块个数我们选10,开始的时候选小一点。开始位置:00000400 分段长度:000A1200这里是文件特征码定位,所以我们选CODE段,有的是TEXT段。当然也不绝对,有的时候杀毒软件会把特征码放到PE的文件头部,这样就需要我们把整个木马的都填上,才能定出来!OUTPUT是分块后的文件输出目录,0000_00000400_000101CC-->0000样本的序号,00000400开始位置,000101CC偏移大小。也就是说从00000400到00000400+000101CC=000105CC是第一段!后面都填0。然后用杀毒软件杀一下,被杀掉的是特征码,二次处理是把特征码替换成0,然后继续找!直到杀毒软件不杀为止!我把我的操作步骤,按先后顺序截图贴上来~
1.点生成
2.点yes
3.点ok,然后用杀毒软件杀一下你的output目录
0009_0009142C_000101D5被杀,说明在这段里存在特征码.我们点二次处理.
4.提示找到一处特征码,我们点yes继续
5.点ok,进行第二轮定位.
这就是文件复合特征码的定位全过程了,以后就是重复了,只到把所有的特征码都找出来,杀毒软件不在提示是病毒就可以了!
这是我定位的结果:
[特征] 00094B3E_00000003
[特征] 000A1250_00000002
2>下面我们来定位内存特征码,大家都知道,瑞星对黑防鸽子的特征码是多区多段特征码,所以用od一半一半定位的话会很麻烦,要一个区段一个区段的试,下面我就介绍一下用MyCCL来定位内存复合特征码,作者还写了一个小工具,就是把文件载如内存的tk.loader.exe,有了它我们就可以顺利的完成定位啦!参数设置和文件定位的基本一样,就是在后缀上把勾挑上,这样生成的文件就可以载入内存了.分块我个人建议填10,
开始位置填00000400,结束位置填000b9d6a,然后回车,它会自动把分段长度计算出来的.点生成,然后用
tk.loader.exe把文件加载到内存中去.我把过程截个图贴上来.
然后用瑞星杀一下内存
发现0000_00000400_000128F1.exe被报毒,我们手动把它从删掉!这样MyCCL才会知道,哪段存在特征码,再点二次处理.以后就是重复这个过程了.知道内存不在报毒为止.这里我建议大家在分块的时候,分成10块这样内存扫描的速度会很快.4个来回就可以定出来结果了.
这是我的定位结果:
[特征] 0000563B_00000002
[特征] 000A15E1_00000004
[特征] 000A6EFA_00000002
[特征] 000A6F20_00000003