日不懂啊 - 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处的内容,被写到了被感染文件中,覆盖了原来的内容。
48694869 - 2010-8-14 18:05:00
等级低 看不见:kaka4:
DLLSRG - 2010-8-17 14:21:00
无权看附件
© 2000 - 2025 Rising Corp. Ltd.