吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17345|回复: 37
收起左侧

[PC样本分析] 感染型病毒的处理方法

  [复制链接]
virusdefender 发表于 2012-7-17 17:57
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 virusdefender 于 2012-7-17 18:03 编辑

感染型病毒有多种感染方式,有的是在文件上添加一个新节,有的是捆绑到文件尾部,有的把目标程序放到病毒程序的资源中。
今天我们来演示一个添加节的病毒的手工处理方法。
P.S.  今天图片上传功能不知怎么回事,上传的图片看不到,也无法引用,导致文章的一些图片跑到了最后边,大家就这么看吧。本人第一次发这样的帖子,还望大家多多指教。
我们可以看到这两个文件大小和MD5都已经发生变化。
使在分析感染性的病毒时,原文件和感染后的文件对比将有助于分析。我们今天就对比两个文件。
用PeiD软件查看这两个文件,发现infected.exe文件尾部添加了一个.boy的节,大小为000001B4。
2.PNG

分析到此,我们可以初步判断,要清除该病毒,就要把新添加的节删除,然后将节数据清除,恢复PE头中镜像文件大小的实际大小。别忘了,还有恢复被感染程序的原始代码入口。
绝大多数的感染性的病毒,在执行完病毒代码后都回到会被感染程序的原始入口。这个入口时在感染之前保存的。
接下来我们的任务就是寻早原始程序入口地址的保存位置,看看病毒在执行完功能后在什么地方寻找原始入口地址。
使用OllDbg载入程序,在内存窗口看到了那个节。

6.PNG

我们可以看到病毒代码新增节数据所在内存起始地址为00412000处,大小为00001000.载入样本到OD中代码停留地址为00412054,也就是病毒新增的节数据区域中,代码如下。

00412054 >  55              push    ebp
00412055    8BEC            mov     ebp, esp
00412057    83EC 34         sub     esp, 34
0041205A    53              push    ebx
0041205B    56              push    esi
0041205C    57              push    edi
0041205D    E8 00000000     call    00412062
00412062    5E              pop     esi
00412063    83EE 62         sub     esi, 62
00412066    8975 E8         mov     dword ptr [ebp-18], esi
00412069    8B1E            mov     ebx, dword ptr [esi]
0041206B    895D DC         mov     dword ptr [ebp-24], ebx
0041206E    83C6 04         add     esi, 4
00412071    8B1E            mov     ebx, dword ptr [esi]
00412073    895D CC         mov     dword ptr [ebp-34], ebx
00412076    C745 D0 0000000>mov     dword ptr [ebp-30], 0
0041207D    C745 F4 0000000>mov     dword ptr [ebp-C], 0
00412084    C745 E4 0000000>mov     dword ptr [ebp-1C], 0
0041208B    C745 D8 0000000>mov     dword ptr [ebp-28], 0
00412092    C745 F0 0000000>mov     dword ptr [ebp-10], 0
00412099    C745 D4 0000000>mov     dword ptr [ebp-2C], 0
004120A0    C745 FC 0000000>mov     dword ptr [ebp-4], 0
004120A7    C745 E0 0000000>mov     dword ptr [ebp-20], 0
004120AE    8B45 E8         mov     eax, dword ptr [ebp-18]
004120B1    83C0 08         add     eax, 8
004120B4    8945 D0         mov     dword ptr [ebp-30], eax
004120B7    8B4D E8         mov     ecx, dword ptr [ebp-18]
004120BA    83C1 15         add     ecx, 15
004120BD    894D F4         mov     dword ptr [ebp-C], ecx
004120C0    8B55 E8         mov     edx, dword ptr [ebp-18]
004120C3    83C2 24         add     edx, 24
004120C6    8955 E4         mov     dword ptr [ebp-1C], edx
004120C9    8B45 E8         mov     eax, dword ptr [ebp-18]
004120CC    83C0 2F         add     eax, 2F
004120CF    8945 D8         mov     dword ptr [ebp-28], eax
004120D2    8B4D E8         mov     ecx, dword ptr [ebp-18]
004120D5    83C1 3B         add     ecx, 3B
004120D8    894D F0         mov     dword ptr [ebp-10], ecx
004120DB    8B55 E8         mov     edx, dword ptr [ebp-18]
004120DE    83C2 47         add     edx, 47
004120E1    8955 D4         mov     dword ptr [ebp-2C], edx
004120E4    60              pushad
004120E5    33C0            xor     eax, eax
004120E7    64:8B1D 3000000>mov     ebx, dword ptr fs:[30]
004120EE    8B5B 0C         mov     ebx, dword ptr [ebx+C]
004120F1    8B73 1C         mov     esi, dword ptr [ebx+1C]
004120F4    AD              lods    dword ptr [esi]
004120F5    8B40 08         mov     eax, dword ptr [eax+8]
004120F8    8BD8            mov     ebx, eax
004120FA    53              push    ebx
004120FB    6A 02           push    2
004120FD    8B7D D0         mov     edi, dword ptr [ebp-30]
00412100    EB 03           jmp     short 00412105
00412102    8B7D F4         mov     edi, dword ptr [ebp-C]
00412105    33C0            xor     eax, eax
00412107    50              push    eax
00412108    0BDB            or      ebx, ebx
0041210A    74 6E           je      short 0041217A
0041210C    66:813B 4D5A    cmp     word ptr [ebx], 5A4D
00412111    75 67           jnz     short 0041217A
00412113    53              push    ebx
00412114    035B 3C         add     ebx, dword ptr [ebx+3C]
00412117    66:813B 5045    cmp     word ptr [ebx], 4550
0041211C    75 5C           jnz     short 0041217A
0041211E    8B53 78         mov     edx, dword ptr [ebx+78]
00412121    5B              pop     ebx
00412122    03D3            add     edx, ebx
00412124    8B4A 18         mov     ecx, dword ptr [edx+18]
00412127    8B42 20         mov     eax, dword ptr [edx+20]
0041212A    03C3            add     eax, ebx
0041212C    41              inc     ecx
0041212D    52              push    edx
0041212E    50              push    eax
0041212F    8BD7            mov     edx, edi
00412131    58              pop     eax
00412132    49              dec     ecx
00412133    83F9 00         cmp     ecx, 0
00412136    74 42           je      short 0041217A
00412138    8BFA            mov     edi, edx
0041213A    8B7488 FC       mov     esi, dword ptr [eax+ecx*4-4]
0041213E    03F3            add     esi, ebx
00412140    50              push    eax
00412141    8A07            mov     al, byte ptr [edi]
00412143    0AC0            or      al, al
00412145    74 08           je      short 0041214F
00412147    3A06            cmp     al, byte ptr [esi]
00412149  ^ 75 E6           jnz     short 00412131
0041214B    47              inc     edi
0041214C    46              inc     esi
0041214D  ^ EB F2           jmp     short 00412141
0041214F    58              pop     eax
00412150    5A              pop     edx
00412151    8B42 24         mov     eax, dword ptr [edx+24]
00412154    03C3            add     eax, ebx
00412156    0FB74C48 FE     movzx   ecx, word ptr [eax+ecx*2-2]
0041215B    8B42 1C         mov     eax, dword ptr [edx+1C]
0041215E    03C3            add     eax, ebx
00412160    8B0488          mov     eax, dword ptr [eax+ecx*4]
00412163    03D8            add     ebx, eax
00412165    58              pop     eax
00412166    58              pop     eax
00412167    48              dec     eax
00412168    50              push    eax
00412169    83F8 00         cmp     eax, 0
0041216C    74 08           je      short 00412176
0041216E    895D FC         mov     dword ptr [ebp-4], ebx
00412171    58              pop     eax
00412172    5B              pop     ebx
00412173    50              push    eax
00412174  ^ EB 8C           jmp     short 00412102
00412176    895D E0         mov     dword ptr [ebp-20], ebx
00412179    58              pop     eax
0041217A    61              popad
0041217B    8B45 E4         mov     eax, dword ptr [ebp-1C]
0041217E    50              push    eax
0041217F    FF55 FC         call    dword ptr [ebp-4]
00412182    8945 EC         mov     dword ptr [ebp-14], eax
00412185    8B4D D8         mov     ecx, dword ptr [ebp-28]
00412188    51              push    ecx
00412189    8B55 EC         mov     edx, dword ptr [ebp-14]
0041218C    52              push    edx
0041218D    FF55 E0         call    dword ptr [ebp-20]
00412190    8945 F8         mov     dword ptr [ebp-8], eax
00412193    6A 00           push    0
00412195    8B45 D4         mov     eax, dword ptr [ebp-2C]
00412198    50              push    eax
00412199    8B4D F0         mov     ecx, dword ptr [ebp-10]
0041219C    51              push    ecx
0041219D    6A 00           push    0
0041219F    FF55 F8         call    dword ptr [ebp-8]
004121A2    FF65 CC         jmp     dword ptr [ebp-34]
 

通过分析样本和反汇编代码,得知原始入口地址被保存在病毒新增节数据区偏移4个字节出,去除恢复样本入口地址,值为00401000。

使用PEtools加载样本。其中镜像大小000121B4,其中病毒节大小为0X01EC,将其取出后为000121B4-0X01EC,然后把原始入口地址0000532C填到入口点。

单击OK,打开节编辑器。选中.boy节,从文件删除就可以了。

4.PNG
就像这样,病毒分析师弄清感染原理之后,就可以编制专杀工具了,或通过杀毒软件接口编写清除代码。

5.PNG
捕获.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

吾爱扣扣 发表于 2012-7-17 19:19
支持你!病毒?太深奥!
LoongKing 发表于 2012-7-17 19:26
txke 发表于 2012-7-17 19:47
希望能把这个教程中的样本发上来,给大家试试,要不然肯定有很多朋友还是不明白。还有希望在那处病毒文件载入点的汇编代码上加点注释,这样方便理解。要不然没有样本,也没有完整的注释和教程,看得晕乎乎的,只能看个大概
微默 发表于 2012-7-18 00:36
这个的话,很经典,遇事也知道处理的办法,谢谢LZ了啊
kilkilo502 发表于 2012-7-18 00:36
我也分析过病毒 一个属于虚拟文件的这种 然后感染  其实就是类似一层壳的代码然后这样释放驱动。
像是你这种的没有试过。
willJ 发表于 2012-7-18 09:10
不错
hackhd 发表于 2012-7-18 14:56
加油 继续发更多的好文章
hw2619 发表于 2012-7-18 16:12
好帖子,版小板凳慢慢学习
Aquamarine 发表于 2012-7-18 18:04
kilkilo502 发表于 2012-7-18 00:36
我也分析过病毒 一个属于虚拟文件的这种 然后感染  其实就是类似一层壳的代码然后这样释放驱动。
像是你这 ...

的确如此,楼主说了个思路,感觉对新手来说不太好操作。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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