瑞星卡卡安全论坛

首页 » 技术交流区 » 可疑文件交流 » 上传一个样本。
日不懂啊 - 2008-5-16 17:52:00
这个是被感染的EXE文件~~

瑞星20.44.41  报毒~~

如下:trojan.dl.win32.mnless.abu

但是按删除来处理的,我选择的是清除病毒~~

瑞星还无法修复被感染的文件~~

如果把这些EXE文件都删除了,那被感染的程序都无法运行了~~~

所以...



这个病毒就是猫叔分析过的,文件被感染成压缩包
http://bbs.ikaka.com/showtopic-8502762.aspx

用户系统信息:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

附件: Launcher.zip
轩辕小聪 - 2008-5-16 19:35:00
以下是病毒体中感染文件的子函数内容:

传入的参数是文件完整路径。
00401AAD  /$  B8 A42B4000  mov    eax, 00402BA4
00401AB2  |.  E8 C90C0000  call    <jmp.&MSVCRT._EH_prolog>
00401AB7  |.  56            push    esi
00401AB8  |.  68 70404000  push    00404070                                                    ; /mode = "rb+"
00401ABD  |.  FF75 08      push    dword ptr [ebp+8]                                          ; |path
00401AC0  |.  FF15 48324000 call    dword ptr [<&MSVCRT.fopen>]                                ; \fopen
00401AC6  |.  8BF0          mov    esi, eax
00401AC8  |.  59            pop    ecx
00401AC9  |.  85F6          test    esi, esi
00401ACB  |.  59            pop    ecx
00401ACC  |.  74 1E        je      short 00401AEC
00401ACE  |.  56            push    esi                                                        ; /stream
00401ACF  |.  FF35 20404000 push    dword ptr [404020]                                          ; |n = 6000 (24576.)
00401AD5  |.  6A 01        push    1                                                          ; |size = 1
00401AD7  |.  68 38464000  push    00404638                                                    ; |ptr = Launcher.00404638
00401ADC  |.  FF15 54324000 call    dword ptr [<&MSVCRT.fwrite>]                                ; \fwrite
00401AE2  |.  56            push    esi                                                        ; /stream
00401AE3  |.  FF15 4C324000 call    dword ptr [<&MSVCRT.fclose>]                                ; \fclose
00401AE9  |.  83C4 14      add    esp, 14
00401AEC  |>  834D FC FF    or      dword ptr [ebp-4], FFFFFFFF
00401AF0  |.  8D4D 08      lea    ecx, dword ptr [ebp+8]
00401AF3  |.  E8 C20A0000  call    <jmp.&MFC42.#800_CString::~CString>
00401AF8  |.  8B4D F4      mov    ecx, dword ptr [ebp-C]
00401AFB  |.  5E            pop    esi
00401AFC  |.  64:890D 00000>mov    dword ptr fs:[0], ecx
00401B03  |.  C9            leave
00401B04  \.  C3            retn

看完这一段,就很明显了,病毒将从自身文件中读取出来的前0x6000字节内容,覆盖了被感染文件的最前方。这样就没有修复的可能了。
轩辕小聪 - 2008-5-16 19:54:00
在上面列的代码被执行前,程序作了如下操作:

00402117  .  BE 34424000  mov    esi, 00404234
0040211C  .  33FF          xor    edi, edi
0040211E  .  68 E8030000  push    3E8                                                        ; /BufSize = 3E8 (1000.)
00402123  .  56            push    esi                                                        ; |PathBuffer => Launcher.00404234
00402124  .  57            push    edi                                                        ; |hModule => NULL
00402125  .  897D FC      mov    dword ptr [ebp-4], edi                                      ; |
00402128  .  FF15 1C304000 call    dword ptr [<&KERNEL32.GetModuleFileNameA>]                  ; \GetModuleFileNameA
0040212E  .  68 4C404000  push    0040404C                                                    ; /mode = "rb"
00402133  .  56            push    esi                                                        ; |path => ""
00402134  .  FF15 48324000 call    dword ptr [<&MSVCRT.fopen>]                                ; \fopen
0040213A  .  8BF0          mov    esi, eax
0040213C  .  59            pop    ecx
0040213D  .  3BF7          cmp    esi, edi
0040213F  .  59            pop    ecx
00402140  .  0F84 9B000000 je      004021E1
00402146  .  56            push    esi                                                        ; /stream
00402147  .  FF35 20404000 push    dword ptr [404020]                                          ; |n = 6000 (24576.)
0040214D  .  6A 01        push    1                                                          ; |size = 1
0040214F  .  68 38464000  push    00404638                                                    ; |ptr = Launcher.00404638
00402154  .  FF15 50324000 call    dword ptr [<&MSVCRT.fread>]                                ; \fread
0040215A  .  56            push    esi                                                        ; /stream
0040215B  .  FF15 4C324000 call    dword ptr [<&MSVCRT.fclose>]                                ; \fclose
00402161  .  83C4 14      add    esp, 14

调用GetModuleFileNameA得到自身的程序文件名。
然后将自身文件的前0x6000字节内容,拷贝到内存00404638处。

显然,再跟2楼贴出来的代码对比,正是00404638处的内容,被写到了被感染文件中,覆盖了原来的内容。
艾玛 - 2008-5-16 22:44:00
:default6:
花蝶乱舞 - 2009-6-10 8:52:00
真是高深!
48694869 - 2010-8-14 18:05:00
等级低 看不见:kaka4:
DLLSRG - 2010-8-17 14:21:00
无权看附件
1
查看完整版本: 上传一个样本。