-- 作者:aimulin
-- 发布时间:2009/5/28 18:45:41
-- 反病毒教程(提升篇)第6课
一.环境变量与命令 命令分为内部命令和外部命令,以前用到的cd就是一个内部命令,内部命令只能在cmd中执行,其他的还有del(删除文件的命令),rd(删除目录的命令),md(创建目录的命令)等.外部命令很多,每个外部命令都有一个与命令同名的文件,这些文件都可以在path环境变量所设定的目录中找到. 广义上讲,窗体程序也可以算命令,如regedit(注册表编辑器),services.msc(服务)等. 我们天天用的QQ当然也可以算哈,试下在运行中输入QQ,结果如图: 让QQ这个命令可用吧,跟我操作: 我的电脑,属性,高级,环境变量,系统变量(用户变量也是一样的) 找到变量Path,双击,可以看到变量值是由很多文件路径组成的,每个路径是用分号隔开的. 所有在最后面先加个分号,再在后面加上QQ的安装目录,比如我的就加X:\\Program Files\\Tencent\\QQ 确定,再点确定. 如果没有path变量,可以新建一个,然后直接输入QQ的目录.(没有的话,后面的结果就会有不同) 现在在运行中输入qq就可以直接运行了. path变量的值也是系统搜索目录 到%SystemRoot%\\System32目录(或%SystemRoot%目录)把notepad.exe重命名为qq.exe,然后在运行中输入qq 这时运行的程序不再是QQ,而是记事本. 原因是系统优先搜索%SystemRoot%\\System32目录,再是我设定的目录,如果在前面的目录中可以找到名为qq的程序,则直接运行它了,不再搜索后面的目录. 把那个文件改回notepad.exe吧.
二.减少开机自动运行的程序 Win+R,输入msconfig,确定,切换到启动页.软件装多了的话,这里可以看到好多. 我这里可以看到5个,三个打勾的,表示已启用,如图:
启动项目的名字一般就是程序的文件名或描述 第二列,命令,就是开机自动运行的程序所在的路径,可以带参数运行. 第三列是位置,很多是注册表路径.
Startup这个位置表示的是当前用户的开始菜单,所有程序,启动这个位置,文件路径为C:\\Documents and Settings\\你的用户名\\「开始」菜单\\程序\\启动,也就是说你往这个目录放程序,下次及以后一开机就会自动运行这个程序了(只对指定的用户有效). Common Startup,路径为C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动,这里放的程序对所有用户有效,其他和上面的一样,可以是程序快捷方式等. HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run,这个大家肯定熟悉,是注册表路径,只是前面的根键缩写了,写全了就是HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run,只是这个位置比较特殊,大家打开注册表定位到这里,和刚才在系统配制实用程序中看到的对比下. 这里的键名和msconfig中的名称是不一样的,但键值却和命令是一样的. 事实上这里的键名可以任意更改,键值就是你想开机时自动运行的命令(或程序) 这里就可以把不需要的删除,哪些不需要? 百度一下文件名就知道了,比如我这里第二个wesec.exe,搜索下就知道了,它是365门神,一款优秀的恶意网页广告等的标示及拦截工具 (对于进程名,不知道的也去百度一下吧,百度不到的google) 第三个估计大部分都有吧,输入法图标,呵. 第一个google工具条. 开始,运行,输入services.msc,确定.(或者,控制面板,管理工具,服务) 选中某个服务时,左上角会显示该服务的具体描述(如果你的不显示,请点击左下角的扩展)
图中是部分已被我禁用的服务,因为我根本不需要它们,开了只会浪费资源.当然需要的时候可以再次开启它. 双击或者右键选择属性就可以看到更多的信息,我们所要关注的就是可执行文件的路径,依存关系,启动类型,服务状态. 比如这个Print Spooler,因为我根本就没有打印机,更不需要打印,所以我把它停止并禁用了,于是任务管理器中将看不到映像名为spoolsv.exe的进程了. 作为服务启动的程序在任务管理器中看到的用户名一列均为system.
所有服务在注册表中都有相对应的位置,这些位置有如下几个(可能你的没有第三个或还有其他的): HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002\\Services HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet003\\Services HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services 不过这样找某个具体的服务麻烦了点,因此一般不直接找,而是搜索. 怎么来搜索打印服务? 展开到并选中该项,点编辑,查找,输入spoolsv.exe,查看那里的三个全选上(也可以只选数据,这样搜索速度会快一点),全字匹配不要选上,点查找下一个. 很快就搜索到了,在左边空白处点一下,可以看到它的完整注册表路径为HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\Spooler 项名即为服务名称. DisplayName为服务的显示名称 Description的值为该服务的描述,这些都可以修改 ImagePath的值为可执行文件的路径 Start的值表示服务的启动方式,4表示禁用,3表示手动,2表示自动 ObjectName的值表示服务类型,如本地服务(LocalSystem),网络服务等. 将整个项删除可以完全删除这个服务,不建议这样做.按F3继续查找,在HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002\\Services下又发现有... 这里有必要解释一下了: Currentcontrolset一般是ControlSet001的映射,也就是当前生效的项.修改其中的一个,另一个会跟着变化. ControlSet002保存上次生效的配置(最后一次正确配制所加载的内容.开机时按F8就知道了) ControlSet003如果使用过上次有效的配置则这里的是备份的ControlSet001 后面如果还有的话以此类推. 为什么我上面说Currentcontrolset一般是ControlSet001的映射,因为有些情况下并不是这样的,可能是ControlSet002的映射,这个由HKEY_LOCAL_MACHINE\\SYSTEM\\Select下面的键来决定.具体是: Cturren 当前,值为1表示当前使用的是ControlSet001下面的配制,值为2表示使用的是ControlSet002下的配制,其他以此类推. Default 默认,通常和上面键的值一样 LastKnownGood 最后一次正确配置,默认应该是3吧,也就是指向了ControlSet003. Failed 指向上次启动失败的设置项 禁用最后一次正确配置 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon] ReportBootOk的值改为0,没有就新建. 这一课的内容,想要完全掌握,是要下点工夫的,呵呵,不要以为很简单. 附件是一张服务对照图,比较完整,包括是否需要禁用等.图片大小908*2721,比较大,所以用windows图片和传真查看器打开时,请放大,否则看不清楚.
|