局域网内的2台电脑,忽然不能访问网上邻居,但是可以正常访问外网

作者&投稿:褒绿 (若有异议请与网页底部的电邮联系)
局域网内有2台电脑不能相互访问——急~

出现字句“您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限”
在说明时没有特别指出的话我们都以默认的guest帐户连机
⑴当你在自己的电脑上点机网络邻居的时候出现的,可能的原因有:
① XP本身所自带的网络防火墙没有关闭,请关闭。设置如下:
我的电脑-控制面板-网络连接-本地连接右键属性-高级 就可以看到了,把那个勾去掉,不用管它的提示。
⑵当你在网络邻居的查看工作组计算机里面看到了对方,但点击的时候出现上面字句的原因:
①恭喜你原因是出在对方的计算机上的
②对方没有关掉防火墙(自身的,后来装的都有可能)
③对方没有开启guest帐户
④位于我的电脑-控制面板-管理工具-安全设置-本地安全策略-用户权利指派 中的“拒绝从网络登陆”看看有没,有guest 就删除
⑸对方在注册表里做过一些修改如下:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"restrictanonymous"=dword:00000001 ;禁止空连接 若改2则匿民用户无法连接你的IPC共享
把这个删除就可以了。
4.连机是不是一定要开启guest帐户
答案是否定的,连机不一定非要开启guest帐户。只要你愿意,你甚至可以有管理员帐户登陆,只要更改相关的设置就可以了。设置如下:
我的电脑-控制面板-管理工具-安全设置-本地安全策略-安全选项 中“网络访问:本地帐户的共享和安全模式”(默认是来宾)改为“经典”即可。然后连机点击对方的时候,用户那一栏是可以自己填的,可以用对方电脑上的任何已经开启了的用户进行登陆。不过需要注意的一点是在这个安全选项中还有一项那就是“帐户:使用空白密码的本地帐户只允许进行控制台登陆”也就是说对方电脑上的别的帐户,比如说管理员帐户密码是空的反而不能登陆。这时可以关掉这个项或者让对方给需要登陆的帐户设置个密码。
5.关于guest帐户的一些问题
一要使用guest帐户登陆,需要开启guest帐户。
可以用两种方法去开启。方法一.我的电脑-控制面板-管理工具-计算机管理-本地用户和组-用户 找到guest点击右键属性,将帐户已停用前面的勾去掉。方法二.我的电脑-控制面板-用户帐户 中直接开启guest 不过需要指出的是这两种方法在连机上效果是一样的。但对于本机还是有一些区别的,稍后就会讲到。
二关于guest的一些认识
首先我们要涉及到3个东西,先在前面说下后面就直接用简写。a.位于计算机管理-本地用户和组-用户中的guest的开启。b.位于控制面板中的用户帐户中的来宾帐户开启机制。 c.位于我的电脑-控制面板-管理工具-安全设置-本地安全策略-用户权利指派 中的“拒绝从网络本地登陆”。请看下图:
a
*******************
*计算机管理-本地用户和组*
*的用户中的guest的开启 *
*******************
b * * c
***************** ********************
*控制面板中的用户帐户 * *本地安全策略用户权利指派*
*中的来宾帐户开启机制 * *中的拒绝从网络本地登陆 *
****************** ********************

说明:关于guest帐户的开启有两个等级 。第一个等级(最高等级)就是a它的管制权利是最高的 ;第二级就是b和c 。现在来说下它们,a就是管理这台计算机到底要不要开启guest 帐户,不管是你自己本地用guest帐户登陆还是网络用guest帐户登陆,要是a说我禁止了,那就都不行。假设a已经打开了,那么你说我要在自己的电脑上用guest登陆,那就需要把b打开了,这样你就可以在本机上用guest帐户登陆了。接着你又要求别人能通过网络用guest帐户来登陆你的电脑,那你就在c里面看看,有guest那就登陆不了了,删除就可以了。
三 关于guest的另外一个问题
d.位于我的电脑-控制面板-管理工具-安全设置-本地安全策略-用户权利指派 中的“拒绝本地登陆”。我发现在d与b是互通的。比如说你在“拒绝本地登陆”中添加了guest那么b中的来宾帐户就会自动关闭。如果你又把来宾帐户打开,那“拒绝本地登陆”中的guest就会自动消失。但是如果你在计算机管理中禁止了guest,那在“拒绝本地登陆”中设置就没用。细心的人应该发现其实还有“本地登陆”这一项,不过经过我实验发现根本没什么用,起不到任何的效果。另外在默认的时候计算机管理中的guest是禁止的,“拒绝本地登陆”和“拒绝从网络登陆”“本地登陆”中都有guest 。我的系统是这样的。


补充:

在实际的网络运用中,安装Windows XP系统的电脑有时会出现不能与Windows 98、Windows 2000的电脑互相访问的问题,即使是开启Guest账号、安装NetBEUI协议、设置共享文件夹,问题也得不到解决。今天,e博士就来说说这个常见的网络故障。

右键点击Windows桌面上的“我的电脑”,选择“属性”,进入“计算机名”选项卡,查看该选项卡中出现的局域网工作组名称,如“MSHOME”,然后点击“网络ID”按钮,进入“网络标识向导”,单击“下一步”,选择“本机是商业网络的一部分,用它连接到其他工作着的计算机”,再单击“下一步”选择“公司使用没有域的网络”,随后输入局域网的工作组名,如“MSHOME”,再次单击“下一步”按钮。最后点击“完成”按钮完成设置。重新启动计算机后,局域网内的计算机就可以互访了。

经过这样的设置后,即使局域网内的计算机设置了不同的工作组,但在“网上邻居”中单击“查看工作组计算机”,在“其它位置”再单击“Microsoft Windows Network”,右面的窗口中就会出现所有工作组的名称,从而实现了对不同工作组的互访。

8.xp在中局域网访问其它的电脑没有权限
悬赏分:15 - 解决时间:2007-9-4 14:03
我有五台电脑,其中有一台做主机。我在网络邻居中可以看到那四台共享文件,想打开共享文件就会弹出《你没有权限访问这台计算机,请与这台计算机的管理员联系》
提问者: 匿名
最佳答案
局域网共享教程!
前言:局域网共享是个头疼的问题,只要找到的正确的设置方法,其实也很简单。原版也需要设置,否则也不能进行共享!
第一章:共享的前提工作:
1.更改不同的计算机名,设置相同的工作组!


2.我的电脑右键-管理-计算机管理-本地用户和组-用户:更改管理员用户名


3.手动设置IP,将ip设置在同一个网段,子网掩码和DNS解析相同


4.如何设置DNS解析:首先你可以使用自动获取,然后在开始-运行里面输入cmd后回车,在命令里面输入ipconfig/all后回车


5.运行里输入services.msc回车打开服务


第二章:共享的准备工作(注意设置完成后最好重启一下生效):
1.开始-设置-控制面板-防火墙-例外-勾选“文件和打印机共享”!当然你也可以关闭防火墙。


2.运行里面输入secpol.msc回车进入本地安全设置-本地策略-安全选项
将“网络访问:不允许SAM账户的匿名枚举”停用 注意此点只对来宾起效,将在第六章说到。
将“账户:使用空白密码的本地账户只允许进行控制台登录”停用


3.双击我的电脑打开资源管理器-工具-文件夹选项-查看-将“使用简单的文件夹共享”前面的勾去除!


4.设置共享文件夹或共享盘符(我这里设置D盘为共享盘符,当然你可以自己设置磁盘里面的任意文件夹为共享文件)
打开资源管理器-右键D盘-共享和安全-左键点选打开




注意:经过上两个图的共享资源设置,偶们进入对方的机子只有“只读”权限,只能看不能动的哦!
这可是XP默认的这安全性呵呵!当然你可以设置完全控制。这样你就可以为所欲为了哈哈。


第三章:用管理员登录的局域网共享方式
经过上面两章的设置,我们已经可以访问计算机today了
1.在主机中双击网上邻居-点击查看工作组计算机


2.双击today或是右键打开


3.还有一个更快捷的访问方法就是在主机的地址栏里面直接输入[url=file://\oday]\oday[/url]后回车,出现的界面和上面相同。


4.在登录框输入用户名play和密码(这里密码为空,所以不用输入),确定后就进入today的共享盘符了


小提示:以后我们再次登录today的时候就不用再输入用户名和密码了呵呵
第四章:以来宾登录的局域网共享方式
经过第一和第二两章的设置,我们还要进一步设置才能做到来宾共享
1.“我的电脑”右键-管理-本地用户和组-用户-启用来宾(注意:在这里启用来宾的效果和在控制面板-用户账户里面启用来宾是一样的。区别就是在此启用后面板里面的来宾还是显示没有启用的,而在面板里面启用来宾的话这里也就启用了。)


2..运行里输入secpol.msc启动“本地安全设置”-“用户权利指派”-将“拒绝从网络访问这台计算机”里面的guest用户删除。


3.运行里输入secpol.msc启动“本地安全设置”-“安全选项”-“网络访问:本地账户的共享和安全模式”-将“经典”改为“仅来宾”。


4.运行里输入secpol.msc启动“本地安全设置”-“用户权利指派”-将“拒绝作为服务器和批作业”里面的用户删除


注意:以上设置需重启后生效
5.我们现在可以象第三章的进入方法进入today的共享资源了。区别就是来宾登录的共享方式没有弹出登录框,不用输入用户名和密码就可以直接进入了。
小提示:从以上的设置方法我们可以看出,管理员登录的共享方式是狭义的共享,而来宾登录的共享方式就是广义的共享。
可以这么说:来宾共享里面已经包含了管理员共享的方式。不过启用来宾登录的方式就去除了管理员登录的方式了呵呵
第五章:用磁盘映射,将today的共享资源直接映射到主机中。以后在主机资源管理器里面就可以直接打开了。前提就是today在局域网内也必须开机。
1.在主机中右键“网上邻居”-点选“映射网络驱动器”


2.浏览today的共享盘符




3.完成后在主机里面出现了today的共享盘符


第六章:局域网访问常见的故障及解决方法
1.访问对方电脑时不弹出用户名框,打不开对方电脑上的共享文件夹


原因为本机的管理员用户名为Administrator,将其改为任意名即可!
注意:这个现象是用来宾登录的共享方式才会出现的。!
2.访问对方机子时,登录对话框中的用户名始终为灰色的guest不可选


解决方法:本地策略-安全选项-“网络访问:本地账户的共享和安全模式”改为“经典-本地用户以自己的身份验证”即可!
注意:以上这种现象是用来宾登录的共享方式以后,我们不注意禁用了来宾才出现的。禁用了来宾后我们就变成了以管理员登录的共享方式了呵呵!
3.以管理员登录的共享方式登录对方的机子时出现没有权限使用网络资源的现象


这是我们正常的共享使用之中因为在安装某些安全软件的时候给关闭了。我们只要再次把“使用简单的文件共享”前面的勾去除即可!
4.以来宾登录的共享方式在局域网使用中突然也会出现第3点的情况。原因也是使用了某些安全软件把我们的SAM账户恢复为默认的启用状态了。
我们只要进入组策略禁用后重启即可!
友情提示:需要注意的是我们安装有些软件比如金山杀毒软件,它会关闭了我们的共享设置里面的某些服务导致不能正常共享。我们只要按照以上各章的设置和本章的设置就可以解决了。
第七章:增加局域网安全性,为来宾用户设置密码。
其实我们在第二章的共享盘符设置里面已经提到权限的设置了,默认是只读这本身已经很安全了。
不过就是局域网内所有人都可以访问你。如果我们设置了密码,其他人就不可随意访问你的共享资源了。
1.运行里面输入control userpasswords2回车


2.设置密码后重启


3.设置密码后登录today出现灰色对话框,此对话框和第六章的故障可不同的哦。我们只要输入密码确定即可进入了。


4.在计算机管理里面-共享文件夹-会话里面就可以看到登录方式了

_______________________________________________________________{
光盘启动电脑,选择安装GhostXP到C盘,恢复过程中出现“A:\GHOSTERR.TXT”错误。
;b(f+Y$~3]-N我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!我是网管论坛;Y"x/h0u.o5i:T&I"a7P'\

%p/T8r5u*O6i-A6T2F我是网管论坛故障原因及解决方法:bbs.54master.com9k9A'U"A&W4z8K5F/Z
1.光盘表面有磨损。请重新下载并检验ISO文件的MD5是否正确,再刻录成光盘.我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!'d!G&s%h6Q(c
2.内存有问题时也会有这种现象。可以更换内存再试,或者可以把硬盘接到另一台电脑上,GHOST完成后再换回原来的机子。+m5l/Y/y8Q'\ O(X#x
3.硬盘有坏道。这个基本难搞了,如果硬盘里还有其它的重要数据,请先接到另一台电脑上复制出来,再进行硬盘修复。
&_-{5u!|4t7?7m5~bbs.54master.com4.硬盘分区表有问题。可以利用光盘里的分区表修复软件来修复一下。
7r6t$|8^7~*y&B-|- 畅通网络 因为有我5.在您准备恢复前,最好把光盘里的文件都复制到电脑里再恢复,文件夹要用英文名字.这样子可以防止你用光盘恢复系统时不成功又进不了系统就可以用硬盘里的文件再试试,顺便在复制时可以检查光盘是非可以正常读取数据.(或者你直接使用目录里的安装文件在当前的系统上恢复,恢复的时候会把文件复制到D盘,请先保证D盘有足够的空间)。我是网管论坛1?2b2J#M,N8n
6.如果您已经使用光盘恢复,但在恢复的过程中又恢复失败,而且硬盘里又没有GHOST的备份文件,那你只能把硬盘接到别的电脑上去复制GHOST文件再恢复了。
6P0o H.g8Q2m$K8q!f/Y*J我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!7.当内存不稳定有问题的时候不光GHOST恢复方法不成功,用完整的一步步安装的方法也会不成功。我是网管论坛5l)|%~!h7g7P)n2]:j$T0R
8.有的时候在重新分区后恢复GHOST完成后不能正确引导,那你就要用PQ检查一下C盘是否设置为作用了。- 畅通网络 因为有我4F/j3K8F2e)V"Z5d,v

给另一台电脑设置下,开始-控制面板-网络和共享中心-高级共享设置-全部选择启用即可。

进程文件: svchost.dll

进程名称: Trojan.W32.Agent

英文描述:
svchost.dll is a module which is registered as a trojan. This Trojan allows attackers to access your computer from remote locations, stealing passwords, Internet banking and personal data. This process is a security risk and should be removed from your system.

进程分析:
svchost.exe是一个属于微软Windows操作系统的系统程序,用于执行DLL文件。这个程序对你系统的正常运行是非常重要的。注意:svchost.exe也有可能是W32.Welchia.Worm病毒,它利用WindowsLSASS漏洞,制造缓冲区溢出,导致你计算机关机。更多详细信息参考:http://www.microsoft.com/technet/security/bulletin/ms04-011.mspx,该进程的安全等级是建议立即删除。

安全等级 (0-5): N/A (N/A无危险 5最危险)
间碟软件: 否
广告软件: 否
病毒: 否
木马: 否

系统进程: 否
应用程序: 否
后台程序: 是
使用访问: 是
访问互联网: 是

大家都要知道Svchost.exe,是系统必不可少的一个进程,很多服务都会多多少少用到它,但是我想大家也知道,由于它本身特殊性,高明的"黑客们"肯定是不会放过的,前段时间的Svchost.exe木马风波,大家应该是记忆犹新吧,而且现在还是有很多机器里都藏有此木马,因为它伪装和系统进程Svchost.exe一样,所以很多人分不清,那个是进程,那个是木马....

好的,还是让我们详尽了解一下Svchost.exe进程吧

1.多个服务共享一个 Svchost.exe进程利与弊

windows 系统服务分为独立进程和共享进程两种,在windows NT时只有服务器管理器SCM(Services.exe)有多个共享服务,随着系统内置服务的增加,在windows 2000中ms又把很多服务做成共享方式,由svchost.exe启动。windows 2000一般有2个svchost进程,一个是RPCSS(Remote Procedure Call)服务进程,另外一个则是由很多服务共享的一个svchost.exe。而在windows XP中,则一般有4个以上的svchost.exe服务进程,windows 2003 server中则更多,可以看出把更多的系统内置服务以共享进程方式由svchost启动是ms的一个趋势。这样做在一定程度上减少了系统资源的消耗,不过也带来一定的不稳定因素,因为任何一个共享进程的服务因为错误退出进程就会导致整个进程中的所有服务都退出。另外就是有一点安全隐患,首先要介绍一下svchost.exe的实现机制。

2. Svchost原理

Svchost本身只是作为服务宿主,并不实现任何服务功能,需要Svchost启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost,启动这些服务时由svchost调用相应服务的动态链接库来启动服务。

那么svchost如何知道某一服务是由哪个动态链接库负责呢?这不是由服务的可执行程序路径中的参数部分提供的,而是服务在注册表中的参数设置的,注册表中服务下边有一个Parameters子键其中的ServiceDll表明该服务由哪个动态链接库负责。并且所有这些服务动态链接库都必须要导出一个ServiceMain()函数,用来处理服务任务。

例如rpcss(Remote Procedure Call)在注册表中的位置是 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs,它的参数子键Parameters里有这样一项:

"ServiceDll"=REG_EXPAND_SZ:"%SystemRoot%system32 pcss.dll"
当启动rpcss服务时,svchost就会调用rpcss.dll,并且执行其ServiceMain()函数执行具体服务。

既然这些服务是使用共享进程方式由svchost启动的,为什么系统中会有多个svchost进程呢?ms把这些服务分为几组,同组服务共享一个svchost进程,不同组服务使用多个svchost进程,组的区别是由服务的可执行程序后边的参数决定的。
例如rpcss在注册表中 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs 有这样一项:

"ImagePath"=REG_EXPAND_SZ:"%SystemRoot%system32svchost -k rpcss"

因此rpcss就属于rpcss组,这在服务管理控制台也可以看到。

svchost的所有组和组内的所有服务都在注册表的如下位置: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost,例如windows 2000共有4组rpcss、netsvcs、wugroup、BITSgroup,其中最多的就是netsvcs=REG_MULTI_SZ:EventSystem.Ias.Iprip.Irmon.Netman.

Nwsapagent.Rasauto.Rasman.Remoteaccess.SENS.Sharedaccess.Tapisrv.Ntmssvc.wzcsvc..

在启动一个svchost.exe负责的服务时,服务管理器如果遇到可执行程序内容ImagePath已经存在于服务管理器的映象库中,就不在启动第2个进程svchost,而是直接启动服务。这样就实现了多个服务共享一个svchost进程。

3. Svchost代码

现在我们基本清楚svchost的原理了,但是要自己写一个DLL形式的服务,由svchost来启动,仅有上边的信息还有些问题不是很清楚。比如我们在导出的ServiceMain()函数中接收的参数是ANSI还是Unicode?我们是否需要调用RegisterServiceCtrlHandler和StartServiceCtrlDispatcher来注册服务控制及调度函数?

这些问题要通过查看svchost代码获得。下边的代码是windows 2000+ service pack 4 的svchost反汇编片段,可以看出svchost程序还是很简单的。

主函数首先调用ProcCommandLine()对命令行进行分析,获得要启动的服务组,然后调用SvcHostOptions()查询该服务组的选项和服务组的所有服务,并使用一个数据结构 svcTable 来保存这些服务及其服务的DLL,然后调用PrepareSvcTable() 函数创建 SERVICE_TABLE_ENTRY 结构,把所有处理函数SERVICE_MAIN_FUNCTION 指向自己的一个函数FuncServiceMain(),最后调用API StartServiceCtrlDispatcher() 注册这些服务的调度函数。

; =============================== Main Funcion =======================================
.text:010010B8 public start
.text:010010B8 start proc near
.text:010010B8 push esi
.text:010010B9 push edi
.text:010010BA push offset sub_1001EBA ; lpTopLevelExceptionFilter
.text:010010BF xor edi, edi
.text:010010C1 call ds:SetUnhandledExceptionFilter
.text:010010C7 push 1 ; uMode
.text:010010C9 call ds:SetErrorMode
.text:010010CF call ds:GetProcessHeap
.text:010010D5 push eax
.text:010010D6 call sub_1001142
.text:010010DB mov eax, offset dword_1003018
.text:010010E0 push offset unk_1003000 ; lpCriticalSection
.text:010010E5 mov dword_100301C, eax
.text:010010EA mov dword_1003018, eax
.text:010010EF call ds:InitializeCriticalSection
.text:010010F5 call ds:GetCommandLineW
.text:010010FB push eax ; lpString
.text:010010FC call ProcCommandLine
.text:01001101 mov esi, eax
.text:01001103 test esi, esi
.text:01001105 jz short lab_doservice
.text:01001107 push esi
.text:01001108 call SvcHostOptions
.text:0100110D call PrepareSvcTable
.text:01001112 mov edi, eax ; SERVICE_TABLE_ENTRY returned
.text:01001114 test edi, edi
.text:01001116 jz short loc_1001128
.text:01001118 mov eax, [esi+10h]
.text:0100111B test eax, eax
.text:0100111D jz short loc_1001128
.text:0100111F push dword ptr [esi+14h] ; dwCapabilities
.text:01001122 push eax ; int
.text:01001123 call InitializeSecurity
.text:01001128
.text:01001128 loc_1001128: ; CODE XREF: start+5Ej
.text:01001128 ; start+65j
.text:01001128 push esi ; lpMem
.text:01001129 call HeapFreeMem
.text:0100112E
.text:0100112E lab_doservice: ; CODE XREF: start+4Dj
.text:0100112E test edi, edi
.text:01001130 jz ExitProgram
.text:01001136 push edi ; lpServiceStartTable
.text:01001137 call ds:StartServiceCtrlDispatcherW
.text:0100113D jmp ExitProgram
.text:0100113D start endp
; =============================== Main Funcion end ===========================================
由于svchost为该组的所有服务都注册了svchost中的一个处理函数,因此每次启动任何一个服务时,服务管理器SCM都会调用FuncServiceMain() 这个函数。这个函数使用 svcTable 查询要启动的服务使用的DLL,调用DLL导出的ServiceMain()函数来启动服务,然后返回。
; ============================== FuncServiceMain() ===========================================
.text:01001504 FuncServiceMain proc near ; DATA XREF: PrepareSvcTable+44o
.text:01001504
.text:01001504 arg_0 = dword ptr 8
.text:01001504 arg_4 = dword ptr 0Ch
.text:01001504
.text:01001504 push ecx
.text:01001505 mov eax, [esp+arg_4]
.text:01001509 push ebx
.text:0100150A push ebp
.text:0100150B push esi
.text:0100150C mov ebx, offset unk_1003000
.text:01001511 push edi
.text:01001512 mov edi, [eax]
.text:01001514 push ebx
.text:01001515 xor ebp, ebp
.text:01001517 call ds:EnterCriticalSection
.text:0100151D xor esi, esi
.text:0100151F cmp dwGroupSize, esi
.text:01001525 jbe short loc_1001566
.text:01001527 and [esp+10h], esi
.text:0100152B
.text:0100152B loc_100152B: ; CODE XREF: FuncServiceMain+4Aj
.text:0100152B mov eax, svcTable
.text:01001530 mov ecx, [esp+10h]
.text:01001534 push dword ptr [eax+ecx]
.text:01001537 push edi
.text:01001538 call ds:lstrcmpiW
.text:0100153E test eax, eax
.text:01001540 jz short StartThis
.text:01001542 add dword ptr [esp+10h], 0Ch
.text:01001547 inc esi
.text:01001548 cmp esi, dwGroupSize
.text:0100154E jb short loc_100152B
.text:01001550 jmp short loc_1001566
.text:01001552 ; =================================================
.text:01001552
.text:01001552 StartThis: ; CODE XREF: FuncServiceMain+3Cj
.text:01001552 mov ecx, svcTable
.text:01001558 lea eax, [esi+esi*2]
.text:0100155B lea eax, [ecx+eax*4]
.text:0100155E push eax
.text:0100155F call GetDLLServiceMain
.text:01001564 mov ebp, eax ; dll ServiceMain Function address
.text:01001566
.text:01001566 loc_1001566: ; CODE XREF: FuncServiceMain+21j
.text:01001566 ; FuncServiceMain+4Cj
.text:01001566 push ebx
.text:01001567 call ds:LeaveCriticalSection
.text:0100156D test ebp, ebp
.text:0100156F jz short loc_100157B
.text:01001571 push [esp+10h+arg_4]
.text:01001575 push [esp+14h+arg_0]
.text:01001579 call ebp
.text:0100157B
.text:0100157B loc_100157B: ; CODE XREF: FuncServiceMain+6Bj
.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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost 检查服务组是否变化,就算去检查,也不一定能发现异常,因此如果添加一个这样的DLL后门,伪装的好,是比较隐蔽的。

4. 安装服务与设置

要通过svchost调用来启动的服务,就一定要在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下有该服务名,这可以通过如下方式来实现:

1) 添加一个新的服务组,在组里添加服务名
2) 在现有组里添加服务名
3) 直接使用现有服务组里的一个服务名,但本机没有安装的服务
4) 修改现有服务组里的现有服务,把它的ServiceDll指向自己

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

因此服务的安装除了调用CreateService()创建服务之外,还需要设置服务的ServiceDll,如果使用前2种还要设置svchost的注册表选项,在卸载时也最好删除增加的部分。

注: ImagePath 和ServiceDll 是ExpandString不是普通字符串。因此如果使用.reg文件安装时要注意。

5. DLL服务实现

DLL程序的编写比较简单,只要实现一个ServiceMain()函数和一个服务控制程序,在ServiceMain()函数里用RegisterServiceCtrlHandler()注册服务控制程序,并设置服务的运行状态就可以了。

另外,因为此种服务的安装除了正常的CreateService()之外,还要进行其他设置,因此最好实现安装和卸载函数。

为了方便安装,实现的代码提供了InstallService()函数进行安装,这个函数可以接收服务名作为参数(如果不提供参数,就使用缺省的iprip),如果要安装的服务不在svchost的netsvcs组里安装就会失败;如果要安装的服务已经存在,安装也会失败;安装成功后程序会配置服务的ServiceDll为当前Dll。提供的UninstallService()函数,可以删除任何函数而没有进行任何检查。

为了方便使用rundll32.exe进行安装,还提供了RundllInstallA()和RundllUninstallA()分别调用InstallService()及UninstallService()。因为rundll32.exe使用的函数原型是:

void CALLBACK FunctionName(
HWND hwnd, // handle to owner window
HINSTANCE hinst, // instance handle for the DLL
LPTSTR lpCmdLine, // string the DLL will parse
int nCmdShow // show state
);
对应的命令行是rundll32 DllName,FunctionName [Arguments]

DLL服务本身只是创建一个进程,该程序命令行就是启动服务时提供的第一个参数,如果未指定就使用缺省的svchostdll.exe。启动服务时如果提供第二个参数,创建的进程就是和桌面交互的。

svchost.exe是nt核心系统的非常重要的进程,对于2000、xp来说,不可或缺。很多病毒、木马也会调用它。所以,深入了解这个程序,是玩电脑的必修课之一。

大家对windows操作系统一定不陌生,但你是否注意到系统中“svchost.exe”这个文件呢?细心的朋友会发现windows中存在多个 “svchost”进程(通过“ctrl+alt+del”键打开任务管理器,这里的“进程”标签中就可看到了),为什么会这样呢?下面就来揭开它神秘的面纱。

发现

在基于nt内核的windows操作系统家族中,不同版本的windows系统,存在不同数量的“svchost”进程,用户使用“任务管理器”可查看其进程数目。一般来说,win2000有两个svchost进程,winxp中则有四个或四个以上的svchost进程(以后看到系统中有多个这种进程,千万别立即判定系统有病毒了哟),而win2003 server中则更多。这些svchost进程提供很多系统服务,如:rpcss服务(remote procedure call)、dmserver服务(logical disk manager)、dhcp服务(dhcp client)等。

如果要了解每个svchost进程到底提供了多少系统服务,可以在win2000的命令提示符窗口中输入“tlist -s”命令来查看,该命令是win2000 support tools提供的。在winxp则使用“tasklist /svc”命令。

svchost中可以包含多个服务

深入

windows系统进程分为独立进程和共享进程两种,“svchost.exe”文件存在于“%systemroot% system32”目录下,它属于共享进程。随着windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由 svchost.exe进程来启动。但svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。那这些服务是如何实现的呢?

原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向 svchost,由svchost调用相应服务的动态链接库来启动服务。那svchost又怎么知道某个系统服务该调用哪个动态链接库呢?这是通过系统服务在注册表中设置的参数来实现。下面就以rpcss(remote procedure call)服务为例,进行讲解。

从启动参数中可见服务是靠svchost来启动的。

实例

以windows xp为例,点击“开始”/“运行”,输入“services.msc”命令,弹出服务对话框,然后打开“remote procedure call”属性对话框,可以看到rpcss服务的可执行文件的路径为“c:\windows\system32\svchost -k rpcss”,这说明rpcss服务是依靠svchost调用“rpcss”参数来实现的,而参数的内容则是存放在系统注册表中的。

在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到[hkey_local_machine systemcurrentcontrolsetservicesrpcss]项,找到类型为“reg_expand_sz”的键“magepath”,其键值为“%systemroot%system32svchost -k rpcss”(这就是在服务窗口中看到的服务启动命令),另外在“parameters”子项中有个名为“servicedll”的键,其值为“% systemroot%system32rpcss.dll”,其中“rpcss.dll”就是rpcss服务要使用的动态链接库文件。这样 svchost进程通过读取“rpcss”服务注册表信息,就能启动该服务了。

解惑

因为svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm”)。但windows系统存在多个svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?这里仅举一例来说明。

假设windows xp系统被“w32.welchia.worm”感染了。正常的svchost文件存在于“c:\windows\system32”目录下,如果发现该文件出现在其他目录下就要小心了。“w32.welchia.worm”病毒存在于“c:\windows\system32wins”目录中,因此使用进程管理器查看svchost进程的执行文件路径就很容易发现系统是否感染了病毒。windows系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,如“windows优化大师”进程管理器,通过这些工具就可很容易地查看到所有的svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。

哪那么多废话。,
等看完了电脑用脚都可以玩了
直接设置共享就可以,如果不找不到跟IP地址和工作组有关,找到进不去,服务设置的问题,网上有更详细资料。,看你需要的,而不上楼上一大堆废话


怎样将两台电脑连成一个局域网?
我们要知道局域网最大的特点就是可以实现资源的最佳利用,如:共享磁盘设备、打印机等,从而可以在组建的局域网内部互相调用文件,并可在任何一台共享打印机上进行打印;当然我们也可以借助Wingate或Sygate等软件多机共享一台Modem上网;或者通过代理服务器连上Internet,享受非一般的速度。如果你家里有一台以上的电脑,如果...

两台电脑已用无线网络连接,如何设置文件共享?
设置在同一个没有域的工作组中,计算机名唯一; 4) 双方的计算机中都关闭了防火墙,或者防火墙策略中没有阻止网上邻居访问的策略。5) 共享文件夹用路由等硬件设置小型局域网文件共享:家里有两台或两台以上的电脑,很多人都想把它们联到一起组建一个小型局域网,这样就可以一起用ADSL和共享文件了。...

局域网内两台机器怎么互相传文件???
1.策略阻止网络访问(没有权限访问,登录失败)在运行里输入gpedit.msc,弹出组策略管理器,在‘计算机配置-Windows设置-本地策略-用户权利指派’中,有“拒绝从网络访问这台计算机”策略阻止从网络访问这台计算机,如果其中有GUEST账号,解决办法是删除拒绝访问中的GUEST账号。2.起用Guest(来宾)账户(双击网上...

两台电脑,局域网,用什么方法可以查看另外一台电脑的信息?
如果对方没有进行过什么措施,你可以在后面加入“\/$C”能进入对方C盘的系统内。这样别说查看,你完全可以控制他的电脑了。当然对方可以把这个关掉。所谓“网络邻居”里的东西,其实就是给这种方法添加个“快捷方式”第二种就是,通过软件或木马。这个比较邪恶,呵呵。为了大家的安全,不宣传坏的东西。只...

局域网就是用网线将两台电脑连接起来就可以了吗 都是插在宽带接口上吧...
这类问题是最好回答的,不上网,两台电脑互联共享 一条交叉双绞线。一头的顺序是标准568B线序:橙、白橙、绿、白绿、兰、白兰、棕、白棕;另一头的顺序是标准568A线序:白绿,绿,白橙,蓝,白蓝,橙,白棕,棕。把这根网线的两个水晶头分别插入两台电脑机箱上的网卡插口,这根网线的距离越短...

没有网,两台电脑之间怎么传数据?
可以通过局域网内设置共享文件夹传数据,使用一根网线连接两台电脑。1、在电脑A上,用鼠标右键点击需要共享的文件夹,选择【授予访问权限】>【特定用户】;2、下拉列表里选择【Everyone】,并点击【添加】;3、然后设置【Everyone】权限级别,再点击【共享】按钮,稍等几秒就会提示共享完成,最后点击【完...

两台电脑网线怎么连接
两台电脑用网线直接连接实现共享。工具\/原料 两台WIN7电脑 一条网线 设置\/步骤 一、用网线连接两台电脑(网线两头都选直连互联法)。二、设置A计算机IP地址。1、点击桌面右下角的小电脑图标,点击打开网络和共享中心。2、点击本地连接,点击属性,双击TCP\/IPV4。3、输入下图内的IP地址、子网掩码、...

二台局域网中的电脑,主机只能访问另一台共享的users文件夹,但另一台...
按照同样的方法设置另一台计算机。2.计算机资源的共享 在Windows XP局域网中,计算机中的每一个软、硬件资源都被称为网络资源,用户可以将软、硬件资源共享,被共享的资源可以被网络中的其他计算机访问。下面我们以文件夹的共享为例进行讲解。硬件资源的共享类似。a.右键单击需要共享的文件夹,在快捷菜单...

家里有两台电脑,怎么弄成局域网?
设置局域网方法如下:1、打开“我的电脑”。2、打开“控制面板”。3、选择“网络和internet”。4、打开“网络和共享中心”。5、点击“设置新的连接或网络”。6、在对话框里选择“设置无线临时”。并点击“下一步”。7、出现如图对话框后,继续点击“下一步”。8、如图输入网络名和安全密钥,并点击...

为什么我的两台电脑在局域网中只有一台看得到另一台?
局域网共享和访问出现问题时请考虑以下的步骤:1.检查guest账户是否开启 XP默认情况下不开启guest账户,因此些为了其他人能浏览你的计算机,请启用guest账户。同时,为了安全请为guest设置密码或相应的权限。当然,也可以为每一台机器设置一个用户名和密码以便计算机之间的互相访问。2.检查是否拒绝Guest用户从...

资中县15653453979: 局域网内有2台电脑不能相互访问——急 -
察晓盐酸: 1.开始-运行-services.msc- 找到server服务,属性启动类型-自动-确定,然后在左边最好点下重启动,确定.2.打开网上邻居属性-本地连接属性-安装-协议-nwlink ipx/spx/netblos compatible transport protocl 里面还有个network monitor driver也要安...

资中县15653453979: 局域网中,两台电脑不能正常访问 -
察晓盐酸: 开始---运行(win7是搜索程序和文件)--------输入:\\192.168.1.* 那台电脑的ip.输入对方电脑的系统帐号和登陆密码.登陆成功,看到对方共享文件,网上也有打开共享的小工具

资中县15653453979: 局域网中的两台机连不了网络 -
察晓盐酸: 清醒一下脑子,全面分析下,既然你的那2台机器跟其他机器都能互访,那么除了上面这位仁兄说的之外请确保以下说的几点都没问题. 1,开启GUEST账号; 2,安装NetBEUI协议;(如果在xp下就不用考虑.因为xp中,NetBEUI已经封装到了...

资中县15653453979: 同一局域网中的两台电脑为什么不能互相访问两台电脑 -
察晓盐酸: 同一局域网下的主机,原则上应该是可以互相访问的,如果不行,可能是以下几个方面的原因:计算机防火墙,比如开启防火墙的计算机,ping可能是被阻止的;路由器VLAN设置,如果为不同的网口设置了不同的VLAN ID,他们之间是不能互相访问的;路由器设置了SSID无线隔离,这种情况下,两台计算机如果都是Wi-Fi无线连接的,是不能互相访问的.

资中县15653453979: 局域网两台电脑不能互访 -
察晓盐酸: \\IP地址如果不能打开的话,请运行下段这段程序.@ ECHO OFF @ ECHO.@ ECHO. 说 明 @ ECHO -------------------------------------------------------------------- @ ECHO 本批处理执行后,将作以下一些设置:@ ECHO 1、允许SAM帐户和共享的匿名枚...

资中县15653453979: 同一个局域网内两电脑不通 -
察晓盐酸: 最简单,两个电脑的网卡坏了吧,或者手动设置一下IP地址与网关,这样都不行的话,那电脑自身网卡坏的可能性很高..

资中县15653453979: 为什么在同一局域网内的两台电脑不能相互访问?? -
察晓盐酸: 1.看看是不是设置了同样的工作组,把工作给设为相同2.如果防火墙开着,把防火墙关掉3 进入开始 设置 控制面板 管理工具 本地安全测略 用户权力指派 找到"允许从网络上访问这台计算机"添加上guest用户 再找到"拒绝从网络上访问这台计算机"去掉guest用户 试试看,应该可以

资中县15653453979: 局域网内两台电脑不能互访 -
察晓盐酸: 共享的电脑上面双击打开“我的电脑”,然后在需要共享的盘符或文件夹上面点击右键,然后选择“共享和安全”,按提示操作即可.1. 我的电脑”点击右键选择“属性”,打开的窗口中选择计算机名,继续点击“更改”,设定统一序列的计算机名.2. 设定同一个工作组,设定好以后重新启动机器.3. 文件共享:共享的电脑上面双击打开“我的电脑”,然后在需要共享的盘符或文件夹上面点击右键,然后选择“共享和安全”,按提示操作即可.4. 完成后在每个电脑的“网上邻居”里就可以相互看到了.5. 注意事项是“杀毒软件”的设置不能禁止来宾账户.

资中县15653453979: 局域网内电脑不能相互访问 -
察晓盐酸: 修改一下安全设置: 开始菜单==》运行 gpedit.msc==>计算机配置==》windows设置==》安全设置==》本地策略==》用户权利指派==》 1、删除“拒绝本地登录”和“拒绝从网络上登录”中的 guest选项 2、HKEY_LOCAL_MACHINE-SYSTEM-CurrentControlSet-Control-----Lsa 上将此子健中的值 restrictanonymous 1改为0

资中县15653453979: 两台电脑的局域网,突然电脑重启后连不上网
察晓盐酸: 1.应该是电压不稳导致路由器不稳定,建议你把路由器中的reset键按住一会后,重新设置一下路由器的基本信息就好了,千万别忘了DNS一定要填写正确. 2.路由器的问题绝对不会导致电脑重新启动的,应该是你的工作环境电压不稳,导致的电脑重新启动,如果有条件的话建议你配置一个UPS

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网