ximo 发表于 2009-7-21 23:28

又见感染。。 by ximo[LSG]

好挫的感染,非得附带个.mdf才能正常运行,而且图标也变得这么粗超,哎,我说能不能伪装的好点,别不被这么容易发现中毒啊。。。

修复也不难,简单的分析下(其他的病毒行为懒得分析):

1、判断是否存在mdf文件,若无则无法正常运行原来的文件了。.text:00402987               mov   eax,
.text:00402989               lea   ecx,
.text:0040298F               push    ecx
.text:00402990               push    eax
.text:00402991               call    ?GetStatus@CFile@@SGHPBDAAUCFileStatus@@@Z ; CFile::GetStatus(char const
*,CFileStatus &)
.text:00402996               lea   ecx,
.text:00402999               mov   esi, eax
.text:0040299B               call    ??1CString@@QAE@XZ ; CString::~CString(void)
.text:004029A0               lea   ecx,
.text:004029A3               call    ??1CString@@QAE@XZ ; CString::~CString(void)
.text:004029A8               cmp   esi, ebx      ; 比较本地目录下是否存在同名文件.mdf文件
.text:004029AA               jz      loc_402BB4      ; 不存在则跳走
.text:004029B0               movzx   dx, byte_40502D
.text:004029B8               movzx   ax, byte_405043
.text:004029C0               movzx   cx, byte_405056
2、复制本身文件到同目录下,命名为文件名.exe.lnk.text:00402A2E               mov   ecx,
.text:00402A31               push    1               ; bFailIfExists
.text:00402A33               lea   edx,
.text:00402A39               push    ecx             ; lpNewFileName
.text:00402A3A               push    edx             ; lpExistingFileName
.text:00402A3B               call    ds:CopyFileA
3、解密过程:把mdf文件里的字符与0x40个密匙挨个XOR解密,密匙以0x40为周期。解密后的文件即为原始的PE头。.text:00402B3C loc_402B3C:                           ; CODE XREF: sub_402880+2D7j
.text:00402B3C               inc   ecx
.text:00402B3D               cmp   ecx, 40h
.text:00402B40               jle   short loc_402B44
.text:00402B42               xor   ecx, ecx
.text:00402B44
.text:00402B44 loc_402B44:                           ; CODE XREF: sub_402880+2C0j
.text:00402B44               mov   dl, byte_405020
.text:00402B4A               xor   , dl
.text:00402B51               inc   eax
.text:00402B52               cmp   eax, 8000h
.text:00402B57               jl      short loc_402B3C
转化为C为:      v5 = -1;   
      v4 = 0;
      do
      {
      ++v5;
      if ( v5 > 64 )
          v5 = 0;
      DstBuf ^= byte_405020;
      }
      while ( v4 < 32768 );
4、把解密出来的PE信息覆盖原来文件的前0x8000个字节,覆盖后即为正常的可执行的文件。修复成功。
.text:00402B60               push    ebx             ; File
.text:00402B61               push    8000h         ; Count
.text:00402B66               lea   eax,
.text:00402B6C               push    1               ; Size
.text:00402B6E               push    eax             ; Str
.text:00402B6F               call    ds:fwrite
5、执行原来的文件:.text:00402B78               mov   ecx,
.text:00402B7B               add   esp, 14h
.text:00402B7E               push    1               ; uCmdShow
.text:00402B80               push    ecx             ; lpCmdLine
.text:00402B81               call    ds:WinExec
7、设置文件属性为系统隐藏.text:00402B87               mov   edx,
.text:00402B8A               push    4               ; dwFlags
.text:00402B8C               push    0               ; lpNewFileName
.text:00402B8E               push    edx             ; lpExistingFileName
.text:00402B8F               call    ds:MoveFileExA
.text:00402B95               cmp   ebx, 18Ah
.text:00402B9B               nop
.text:00402B9C               mov   eax,
.text:00402B9F               push    6               ; dwFileAttributes
.text:00402BA1               push    eax             ; lpFileName
.text:00402BA2               call    ds:SetFileAttributesA
以上就是修复的过程了,按照上面的过程了,就能修复了。

如下的工作就是去下载文件并执行了,和普通的下载者没什么区别了。也就不继续分析了。

smallyou93 发表于 2009-7-22 21:23

超神教我看代码

zapline 发表于 2009-7-22 21:25

:LMFC都用出来了

zzdwilliam 发表于 2009-7-30 14:28

楼主好幽默啊

户名 发表于 2009-8-2 00:47

好可怕啊!:funk:

户名 发表于 2009-8-2 00:59

不让人活了啊

wojiao4235 发表于 2009-8-2 13:31

:victory: 哈哈 学习了就要顶

MyCracker 发表于 2009-8-3 17:34

来看看,学习下内容!

neinei 发表于 2011-4-5 12:05

清晰明了,~~ 学习了。

ayweihang 发表于 2013-8-24 06:25

这个东西真心看不懂
页: [1] 2
查看完整版本: 又见感染。。 by ximo[LSG]