admin管理员组文章数量:1516870
1)svchost.exe加载到内存中
01002509 >/$ E8 EEFCFFFF call svchost.010021FC
0100250E |. 8BFF mov edi,edi
01002510 |. 56 push esi
01002511 |. 57 push edi
01002512 |. 68 A22E0001 push svchost.01002EA2 ; /pTopLevelFilter = svchost.01002EA2
01002517 |. FF15 94100001 call dword ptr ds:[<&KERNEL32.SetUnhandledExceptionFil>; \SetUnhandledExceptionFilter
0100251D |. 6A 01 push 0x1 ; /ErrorMode = SEM_FAILCRITICALERRORS
0100251F |. FF15 90100001 call dword ptr ds:[<&KERNEL32.SetErrorMode>] ; \SetErrorMode
01002525 |. FF15 8C100001 call dword ptr ds:[<&KERNEL32.GetProcessHeap>] ; [GetProcessHeap
0100252B |. 50 push eax
0100252C |. E8 61FAFFFF call svchost.01001F92
01002531 |. B8 68400001 mov eax,svchost.01004068
01002536 |. 68 40400001 push svchost.01004040 ; /pCriticalSection = svchost.01004040
0100253B |. A3 6C400001 mov dword ptr ds:[0x100406C],eax ; |
01002540 |. A3 68400001 mov dword ptr ds:[0x1004068],eax ; |
01002545 |. FF15 88100001 call dword ptr ds:[<&KERNEL32.InitializeCriticalSectio>; \InitializeCriticalSection
0100254B |. FF15 84100001 call dword ptr ds:[<&KERNEL32.GetCommandLineW>] ; [GetCommandLineW
01002551 |. 50 push eax
01002552 |. E8 5AFDFFFF call svchost.010022B1 ; 2)对命令行进行解析,获得启动的服务组netsvcs
01002557 |. 8BF0 mov esi,eax
01002559 |. 85F6 test esi,esi
0100255B |. 74 28 je Xsvchost.01002585
0100255D |. 56 push esi
0100255E |. E8 6BFEFFFF call svchost.010023CE ; 3)查询键值等跟进函数 这里我发现 直接看regedit 看不到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost 下的服务,但是跟踪却能看到
(
01001563 . 8938 mov dword ptr ds:[eax],edi
01001565 . 8D45 FC lea eax,dword ptr ss:[ebp-0x4]
01001568 . 50 push eax ; /pBufSize
01001569 . 57 push edi ; |Buffer => NULL
0100156A . 8D45 F8 lea eax,dword ptr ss:[ebp-0x8] ; |
0100156D . 50 push eax ; |pValueType
0100156E . 57 push edi ; |Reserved => NULL
0100156F . FF75 0C push dword ptr ss:[ebp+0xC] ; |ValueName
01001572 . 897D FC mov dword ptr ss:[ebp-0x4],edi ; |
01001575 . FF75 08 push dword ptr ss:[ebp+0x8] ; |hKey
01001578 . FFD6 call esi ; \RegQueryValueExW
0100157A . 8BD8 mov ebx,eax ; 查询出该路径下子键名为netsvcs的键值
0100157C . 3BDF cmp ebx,edi ; 这里先获得大小
·············
01001858 . 6A 0E push 0xE
0100185A . 5B pop ebx
0100185B . FF75 FC push dword ptr ss:[ebp-0x4]
0100185E . 57 push edi
0100185F . E8 4DFAFFFF call svchost.010012B1 ; 知道了键值大小就分配大小的内存给初始化键值
01001864 . 3BC7 cmp eax,edi
01001866 . 8945 10 mov dword ptr ss:[ebp+0x10],eax
01001869 .^ 0F84 15FDFFFF je svchost.01001584
0100186F . 8D4D FC lea ecx,dword ptr ss:[ebp-0x4]
01001872 . 51 push ecx
01001873 . 50 push eax
01001874 . 8D45 F8 lea eax,dword ptr ss:[ebp-0x8]
01001877 . 50 push eax
01001878 . 57 push edi
01001879 . FF75 0C push dword ptr ss:[ebp+0xC]
0100187C . FF75 08 push dword ptr ss:[ebp+0x8] ; 这里开始查询 查询出了大量服务
0100187F . FFD6 call esi ; ADVAPI32.RegQueryValueExW版权声明:本文标题:SVChost中的RPCCS功能剖析:以k模式下的操作秘籍 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1772206733a3272251.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论