b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

svchostdll_system svchost_svchost dll casn(5)

电脑杂谈  发布时间:2017-05-07 01:01:07  来源:网络整理

.text:01001566 push ebx

.text:01001567 call ds:LeaveCriticalSection

.text:0100156D test ebp, ebp

.text:0100156F jz short loc_100157B

.text:01001571 push [esp10harg_4]

.text:01001575 push [esp14harg_0]

.text:01001579 call ebp

.text:0100157B

.text:0100157B loc_100157B: ; CODE XREF: FuncServiceMain6Bj

.text:0100157B pop edi

.text:0100157C pop esi

.text:0100157D pop ebp

.text:0100157E pop ebx

.text:0100157F pop ecx

.text:01001580 retn 8

.text:01001580 FuncServiceMain endp ; sp = -8

; ============================== FuncServiceMain() end ========================================

由于svchost已经调用了StartServiceCtrlDispatcher来服务调度函数,因此我们在实现DLL实现时就不用了,这主要是因为一个进程只能调用一次StartServiceCtrlDispatcher API。但是需要用 RegisterServiceCtrlHandler 来注册响应控制请求的函数。最后我们的DLL接收的都是unicode字符串。

由于这种服务启动后由svchost加载,不增加新的进程,只是svchost的一个DLL,而且一般进行审计时都不会去HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Svchost 检查服务组是否变化,就算去检查,也不一定能发现异常,因此如果添加一个这样的DLL后门,伪装的好,是比较隐蔽的。

4. 安装服务与设置

要通过svchost调用来启动的服务,一定要在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Svchost下有该服务名,这可以通过如下方式来实现:

1) 添加一个新的服务组,在组里添加服务名

2) 在现有组里添加服务名

3) 直接使用现有服务组里的一个服务名,但本机没有安装的服务

4) 修改现有服务组里的现有服务,把它的ServiceDll指向自己

其中前两种可以被正常服务使用,如使用第1种方式,启动其服务要创建新的svchost进程;第2种方式如果该组服务已经运行,安装后不能立刻启动服务,因为svchost启动后已经把该组信息保存在内存里,并调用API StartServiceCtrlDispatcher() 为该组所有服务注册了调度处理函数,新增加的服务不能再注册调度处理函数,需要重起计算机或者该组的svchost进程。而后两种可能被后门使用,尤其是最后一种,没有添加服务,只是改了注册表里一项设置,从服务管理控制台又看不出来,如果作为后门还是很隐蔽的。比如EventSystem服务,缺省是指向es.dll,如果把ServiceDll改为EventSystem.dll就很难发现。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-45628-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...