admin 管理员组

文章数量: 1184232

OD直接加载svchost.exe  -k rpcss  以命令行参数形式加载
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

本文标签: 中的 解析 编程