程序免杀技术之——特征码

发布时间:2014-10-23 23:31:01
来源:分享查询网

特征码(attribute code )是能识别一个程序是一个病毒的一段不大于64字节的特征串。为了减少误报率,一般杀毒软件会提取多段特征串,这时,我们往往改一处就可达到 免杀效果,当然有些杀毒软件要同时改几处才能免杀。 目前的核心免杀技术几乎都是围绕着特征码的修改,然后辅助之以花指令、压缩加密壳等手段。关于花指令的使用方法,我在上一篇文章中已经讲过了(http://bbs.honker.net/thread-28080-1-1.html)。本文我将讲述如何通过MyCCL复合定位特认证码以及特征码的几种修改方法。定位特征码可不是程序自动就可以定位的,需要大家手工操作,哇咔咔~~手工才是王道啊~o(∩_∩)o   这里我们生成一个Puppet的服务端,因为这个程序比较小,定位起来不费事。接下来我们首先要看看它加没加壳,因为如果加壳了的话,会影响我们对木马的定位。我们先把他载入PEID里检测一下。看来是加了UPX的壳,而且有附加数据,大家可以用UPX的专门脱壳程序或者通用脱壳程序,也可以在OD中用定律脱壳,至于如何脱壳,全看大家喜好了,不过千万要注意附加数据的处理,那个Overlay代表附加数据。   接下来我们把程序导入MyCCL,大家不要看着这么些参数晕,其实我们只需要修改一个地方就行了,就是分块数量。第一次定位我们不需要将程序分的太多,这里我们设置为50。我们点击生成,就会在桌面上生成一个文件夹,里面是分割后的木马服务端。   生成完分割块后,它会提示你用杀软检测生成块之后再进行二次处理。我么找到那个文件夹,右键用杀软检测(建议大家不要用小红伞,因为...因为小红伞每发现一个特征区域就会从主机的蜂鸣器中滴的提示一声,差点把我烦死...)。这里一定要注意,检测出来的文件当杀软询问是否删除时,一定要删除。   接下来我们点击二次处理,会出现如下提示,接下来我们的任务就简单了,继续对文件夹查杀,然后查杀完后二次处理,知道杀软检测不出文件夹里病毒为止(记住,询问时一定要删除)。       当我们杀不出病毒时,点击MyCCL上的特征区间,然后右边会出来一个窗口,里面有一个特征码,我们选中这个特征码,右键选择第一个选项,定位到此特征码,接下来主窗口中的单位长度会由原来的436变为2,然后在桌面的文件夹中生成新的特征块,这就是精确定位的开始。 接下来我们的工作就是重复第一次定位,不断的查杀,二次处理,精确定位的特征码会在右边出现。我杀到没有病毒后,出来四个特征码。分别是:0000525A 0000539E 00005406 00005412。这些是文件地址,可以在C32Asm中进行修改免杀(C32Asm的16进制文件使用文件地址标识)。当然有的时候我们需要在汇编状态修改,大家可以右键在C32Asm,选择对应到汇编,也可以用OD载入。如果我们进入汇编状态,就需要内存地址了,如何用OC转换内存地址,我在花指令一文中已经说明了,这里不再重复。以上四个文件地址的内存地址分别为:0041445A 0041459E 00414606 00414612 我们打开C32Asm,选择打开→打开16进制文件,然后右键选择跳到,选择一个特征码,就可以跳到对应的16进制。 对于特征码的修改方法,有以下几种,这里特征码较多,就不做演示了。 方法一:直接修改特征码的十六进制法 修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制. 适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用. 方法二:修改字符串大小写法 修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了. 适用范围:特征码所对应的内容必需是字符串,否则不能成功. 方法三:等价替换法 修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令. 适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等.如果和我一样对汇编不怎们精通的可以去查查8080汇编手册. 方法四:指令顺序调换法 修改方法:把具有特征码的代码顺序互换一下. 适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行 方法五:通用跳转法 修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行. 适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法. 刚才我们跳到的特征码,右边对应的是一个字符串e,我么可以通过修改它的大小写来实现免杀,我记得WIN执行程序时是不区分大小写的。至于另外几个特征码,以上几种方法也可以使用。 当然,除了MyCCL,这里还有一种定位特征码的方法,就是一半定位法,我在网上找了一下资料,很实用,但也很麻烦,大家可以看一下: 不知道是那位牛人想出来把这方法用到木马免杀上,这个方法让很多不会用偏移定位特怔码的朋友也能够很容易掌握到特怔码的位置,实在是很高明又很简单的免杀好方法.这里我就根据他的方法详细介绍OD一半定位法 所谓OD一半定位法很简单,就是用OD载入需要做免杀处理的文件,用NOP填充一半的代码然后保存,接着用杀毒软件查毒,如果有毒就在把另外一半用NOP填充,如果没报毒就证明特怔码就在刚刚填充的那一半,然后又对那一半进行1/2的NOP填充,这样不断缩小范围,很容易就找到需要修改的代码部分。如果是做内存免杀就把NOP填充好的文件用OD打开进行内存杀毒。怎么样?是不是很容易掌握的方法? 不过需要注意的是新手用这个方法最好每做一步都把NOP填充的开头和结局部分的地址用纪事本保存,免得一旦忘记又从头来. 如果特怔码不止一处,你就要大致定位到有特怔码这一大段,然后把这一段的一半用NOP填充并且保存,接着打开保存的文件对另外一半继续刚刚开始的步骤,这样很快就能够定位出几处特证码所在的位置. 还是那句话,熟练就好,另外需要注意填充后查出的病毒名字有没有改变,如果改变就证明你填充的那段存在特怔码,这样可以省掉不少时间。 http://blog.sina.com.cn/s/blog_5d6916a40100vize.html

返回顶部
查看电脑版