瑞星卡卡安全论坛

首页 » 技术交流区 » 反病毒/反流氓软件论坛 » 菜鸟学堂 » 反病毒教程(基础篇)第1课~第10课
左眼球 - 2009-5-19 10:15:00
第1课:
作者:网络转载 来源:网络转载

一,历史
第一台电子计算机出现于1946年2月.

二.组成(硬件和软件,软件分为系统软件和应用软件)
  1.硬件分类:输入设备(键盘,鼠标,扫描仪),输出设备(打印机),存储设备(硬盘,内存条,寄存器,光盘),控制器,运算器

  2.常见硬件:主板,CPU(中央处理器),内存(分为只读存储器(ROM)和随机存储器(RAM),我们常说的你的内存多大,指的是随机存储器),硬盘,显卡,显示器(微软称之为监视器),键盘,鼠标,光驱,网卡...

  3.系统软件:操作系统(OS,即Operating System)(windows XP,vista,linux Ubuntu,红旗),硬件驱动程序,编译软件.

  4,应用软件:winRAR,Word,QQ...

三,术语(带星号的暂时不要求掌握)
  1.程序:用汇编语言,高级语言等开发编制出来的可以运行的文件,即后缀为exe或com的文件.

  2.软件:程序,说明书,服务的总和.

  3.进制:计算机能极快地进行运算,但其内部并不像人类在实际生活中使用的十进制,而是使用只包含0和1两个数值的二进制.当然,人们输入计算机的十进制被转换成二进制进行计算,计算后的结果又由二进制转换成十进制,这都由操作系统自动完成,并不需要人们手工去做,学习汇编语言,就必须了解二进制(还有八进制/十六进制).你看到的中文,图片等最终也是以二进制方式处理的.

  4.数据:计算机能接受,存储,处理的任何信息.如数字,图片,音频,视频,控制信号...

  *5.数据类型:在处理各种数据时,为了便于处理、查错和充分利用存储空间,许多开发环境都要求对数据类型进行说明,一般有整数型,字符串型,布尔型,日期型,浮点型(小数)...

  6.病毒:一种计算机程序,它可以附属在可执行文件或隐藏在系统数据区中.隐蔽,传染,破坏.

  7.木马:同上,以窃取帐号密码信息或控制别人电脑为主,一般不以破坏系统为目的.

  8.独占:指文件(或数据)同一时刻只能被一个用户打开,其它用户只能等待此用户放弃后,才能打开和使用它.

  9.通配符:为了提高对文件处理的效率,用*或?表示任意多个或一个字符,这样就可以一次性处理一批文件,如*.*即代表当前目录下的全部可见文件.

  *10,内部命令:任何时候都能使用的命令,如DIR,COPY...

  *11.外部命令:由同名的程序文件提供的功能,若程序文件被删除,则此命令将不可使用,如
DISKCOPY,FORMAT...

四.实践
1.安装操作系统.(以光盘安装原版XP系统为例,其他均为默认设置)(请下载附件)
  a.在开机状态下插入安装光盘,重启,当屏幕上出现CD-ROM时按Enter键(大部分电脑不必按,等待一会儿就可以了).
  b.进入安装程序后有三种选择:安装,修复,退出.我们按Enter键安装.(按R修复,按F3退出)(到这一步时,大部分已经是中文环境了,我的示例还是英文)
  c.按F8同意协议.
  d.通过上下方向键选择C盘,按Enter键,此时会提示你如何格式化选中的分区,我们选择第一个(快速格式化为NTFS格式),然后按Enter键.
  e.此时会自动进行格式化,复制部分文件到你的硬盘,完成后会自动重启.
  f.重启后,系统会收集一些信息,全是自动的,你不用管,接下来会要你设置一些东西(这时鼠标已经可以动了),设置语言,也可不设置,安装完后再设置, 直接Next(下一步),填写注册名,公司名(随便写),点Next(下一步),填写KEY(示例中可随便写),点Next(下一步),填写计算机名,管理员密码,下一步,设置时间,下一步,等待一会儿,再点两次Next(下一步).
  g.电脑再次重启,安装完毕.

2.安装完了,先修改屏幕分辨率.

3.安装硬件驱动程序.
右键点击我的电脑,属性,硬件,设备管理器,选中带问号的其中一行,按右键,选择更新驱动程序,插入驱动程序光盘,点下一步...
要求每位会员都要学会如何安装操作系统.这里给大家一个模拟安装系统的程序,它不会格式化你真正的硬盘,也不会真的安装,只是一个练习程序,大家体验下.这个必须学会,学习反病毒,难免中招杀不了而重装系统.

4.ghost备份.
安装完系统后建议使用ghost备份当前操作系统,以后系统坏了就不用重装了,只要还原就是了,可以节省大量时间.
ghost下载地址http://www.onlinedown.net/soft/33492.htm

现行使用的有光盘版的GHOST备份程序和硬盘版的。见于大家使用光盘版不太方便,给予硬盘版一键GHOST图文教程。
一键GHOST 备份与恢复
左眼球 - 2009-5-19 10:18:00
作者:网络转载 来源:网络转载

一、名词解释(更详细的解释请查看百度百科)
1.文件:文件是一个具有符号的一组相关联元素的有序序列.文件可以包含范围非常广泛的内容.系统和用户都可以将具有一定独立功能的程序模块,一组数据或一组文字命名为一个文件.文件是以单个名称在计算机上存储的信息集合.文件可以是文本文档,图片,程序等.在大多数系统中,设备(如输入输出设备con,串口设备aux,并口设备com1,打印机pkn等)也是以文件或文件夹的形式出现的,我们建立文件时一般不能使用系统设备名,也不能包含/\":<>*?|这几个字符,文件还可以有扩展名,一般用3个字符表示.
DOS系统只支持最多8个字符的文件名和3个字符的扩展名,而windows中最多可以有255个字符.如何在DOS中访问文件名大于8个字符的文件或文件夹,等下实践部分会讲到.

2.文件路径:通俗地讲,就是文件在磁盘上的位置,这个位置是唯一确定的.
如C:\WINDOWS\inf94.PNF 这就是文件1394.PND的完整路径
在linux中访问这个文件的路径是不一样的,比如可能是/mnt/hda1/WINDOWS/inf/1394.PNF
大家都知道,DOS是不支持长文件名的,那它如何访到这样的路径的文件呢?请关注实践部分.

3. 注册表:注册表包含Windows在运行期间不断引用的信息,如每个用户的配置文件,计算机上安装的应用程序(如杀毒软件的注册或激活信息)以及每个应用程序可以创建的文档类型,文件夹和应用程序图标的属性表设置,系统上存在哪些硬件以及正在使用哪些端口.注册表文件的大小被限制在大约40MB
windows系统中编辑注册表的工具叫注册表编辑器,有些linux系统也提供类似的工具,如Ubuntu中叫做配制文件编辑器.
在windows下打开注册表编辑器的方法:依次单击开始,运行,键入regedit,然后单击确定.
点击帮助,帮助主题,以查看有关注册表的更多内容.(一定要弄明白)

4.注册表路径:某个设置项所在的位置,类似于文件路径.
例如HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore.5\InstallPath,这里存放了Python这个软件的安装位置.

二、实践
1.查看隐藏文件
大家先找一下你的系统盘下有没有一个名为boot.ini的文件.如果你看不到这个文件,请按如下方式操作:
打开我的电脑,点击工具,文件夹选项,查看,
显示系统文件夹的内容前打勾 (操作1)
隐藏受保护的操作系统文件(推荐)前面的勾去掉 (操作2)
显示所有文件和文件夹前打勾 (操作3)
隐藏已知文件类型的扩展名前的勾去掉. (操作4)
确定.
这是系统的重要设置之一,在windows中,所有设置都是保存在注册表中的.下面我们通过修改注册表来实现和上述操作同样的功能:
按快捷键Win+R,输入regedit,按Enter
双击HKEY_CURRENT_USER(也可以点前面的加号的,和资源管理器中的操作是一样的),双击Software,再依次点Microsoft,Windows,CurrentVersion,Explorer,Advanced(以后我直接给出路径HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,不再详细说了).
看右边,有个ShowSuperHidden,双击它,将数值数据改为0,刷新下资源管理器,那些显示的系统文件又重新隐藏起来了,改回1,就又显示了.(相当于上面的操作2)
Hidden这个键值由0改为1,相当于上面的操作3
操作4可以修改HideFileExt的值
上面的操作1,大家可以自己找下,然后回复,前三个回答正确的加分.

三、.特殊文件夹的建立
1.大家试试:在C盘根目录新建一个文件夹,改名为com1,改不了,对吧.因为这是一个设备名,那我们把它改为com吧,这下行了.不过这不是我们的目的,我们的目的是改为com1,怎么办?请按如下方式操作:
按快捷键Win+R,输入cmd,按Enter
输入cd\后按Enter.
输入ren \\.\c:\com com1后按Enter
好了,这下成功了,你删除它试试,出问题了,系统找不到指定文件?


也无法更改它的属性?


要删除这个文件夹,请输入rd \\.\c:\com1
原理解释:rd是删除目录的命令,通常的做法是rd com1,但这里会失败,所以我们就把这个文件夹作为网络上的一个设备来访问,\\代表网络,.代表本机,如果是其他机器,必须输入IP地址,c:\代表C盘.
其他设备名也是类似的.

2,现在我们来建另外一种特殊文件夹.
还是在CMD中,输入md com..\\
在资源管理器中删除它试试,无法读盘?


也不能打开?


刚才的com1是可以打开的,不知大家试了没?并且可以放任何文件.
不过我们依然可以在里面放东西,只是要在CMD中操作而已.
删除它也很容易.输入rd com..\\
先讲这两类特殊文件吧,多了大家可能记不住,关于上面讲到的几个命令,不要求很了解,只要跟着操作就行.如果你要深入了解,请输入rd /?或md /?或ren /?

四、玩个病毒
说是病毒,其实并不是病毒,只是个演示程序,大家来玩一下吧(见附件)
这个演示程序的作用是让你的隐藏文件无法显示,是通过修改注册表来达到这个目的的.大家改回来就是了.(在文件夹选项中修改,或直接修改注册表)
但是大家可能会发现,可以正常修改,但是改完了后刷新又变成原来的样子了,隐藏文件还是无法显示.
嗯,是的,演示程序每隔一定时间(0.5秒)会检测一下注册表键值,发现你修改了,再改回来,呵呵.
如何清除?
打开任务管理器(右击任务栏,选择任务管理器),进程,找到并选中anti.exe,结束进程,是.
再修改文件夹选项或注册表,删除程序.(不删也可以,你可以收藏,只要不运行就没事,运行了也不不怕,因为你现在已经学会怎么杀它了)

四.DOS中如何访问长文件名
大家重新打开CMD窗口.
输入cd..
这时,光标所有行显示的路径是C:\Documents and Settings
你输入debug,回车
再输入q,回车
这时显示为C:\DOCUME~1
其实这两个是同一个路径,后者DOCUME~1只有8个字符了,这个才是在DOS可用的,我们的CMD虽然和DOS差不多,但还是有些区别的.
按Win+R,输入c:\docume~1试试吧(windows是不区分大小写的)
长文件名改为短文件名的规则是取文件夹名称的前六个字符,然后加~1这两个字符,对于文件名,也是类似的,但还需加上后缀名.例如下面这个:
C:\Documents and Settings\dream\Cookies\dream@www.ratebbs[2].txt
改成短文件名就是
c:\docume~1\dream\cookies\dream@~1.txt
验证是否正确,大家在运行中输入一下就知道了.

上面的实践部分请大家一定要自己操作一遍,理解不理解又是另外一回事了..因为涉及到一些DOS命令,有些人可能不明白,你只要操作就是了,以后我们会深入讲解的.
左眼球 - 2009-5-19 10:20:00
作者:网络转载 来源:网络转载

一.名词解释
1.程序:具有独立功能的一组指令或一组语句的集合,或者是指出处理器执行操作的步骤.是一个静态的文本.

2.进程:一个程序在一个数据集上的一次执行.它是一个动态的过程.每个进程都有一个唯一的进程标识符,简称为PID.

3.作业:用户要求计算机系统进行处理的一个计算问题.一个作业可能需要多个进程配合才能完成.如360安全卫士的进程有360Safe.exe,360tray.exe,可能还有safeboxTray.exe.

4.线程:它是进程中可独立执行的子任务,一个进程中可以有一个或多个线程,每个线程也都有一个唯一的标识符.

5.父进程:可以创建其他进程的进程.比如,我们运行的大部分程序的父进程都是explorer.exe

6.子进程:由父进程创建的进程.父进程和子进程是相对而言的,有的进程可能既是父进程又是子进程.

*7.进程句柄:实际上是一个Long (整长型)的数据.它是windows用来标识应用程序所建立的进程的唯一整数,就像公民的身份证一样.

*8.指针:在C语言中可能会经常遇到,这里我们不讲语言,我们这样理解就行了:它是一种内存地址.内存地址和句柄一样也是一个16位的整数.而句柄则是指针的指针.

9.对象:系统中的一切都可称为对象,如文件,进程,程序等.这好比生活中的所有东西都可以称为物品一样.

二.深入了解进程
1.进程到底是什么?
    进程为应用程序的运行实例,是应用程序的一次动态执行.它是操作系统当前运行的执行程序.当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序,你开启,执行的额外程序,当然也包括你不知道,而自动运行的非法程序(如病毒等).
    进程是程序在计算机上的一次执行活动.当你运行一个程序,你就启动了一个进程.显然,程序是死的(静态的),进程是活的(动态的).进程可以分为系统进程和用户进程.凡是用于完成操作系统的各种功能的进程就是系统进程,病毒也常常把自己注册成系统进程,用户进程就是所有由你启动的进程.进程是操作系统进行资源分配的单位,系统进程具有较高的优先权来得到资源.
 
2.进程的特征.
动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的.
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位.
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的,不可预知的速度向前推进.

3.结构特征
进程由程序,数据和进程控制块三部分组成.

*4.为什么会有句柄这一说?
    刚才上面说了,句柄是一种指向指针的指针.而所谓的指针是一种内存地址.应用程序启动后,组成这个程序的各对象是住留在内存的.简单地理解,似乎我们只要获知这个内存的首地址就可以随时用这个地址访问对象(如进程).但是,如果你真的这样认为,那么你就错了.我们知道,Windows是一个以虚拟内存为基础的操作系统.Windows内存管理器经常在内存中来回移动对象,以此来满足各种应用程序的内存需要.对象被移动意味着它的地址变化了.如果地址总是如此变化,我们该到哪里去找该对象呢?(进程失控了?)
    为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,用来专门登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不变的.Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来保存.这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置.这个地址是在对象装载(Load)时由系统分配给的,当对象被撤消(Unload)时又释放给系统。
    可能大家理解不了,举个形象点的例子.一本书(可以理解为我们的操作系统),总是会有一个目录页(登记具体内容的页码),目录页的每一行就相当于一个句柄,每一行后面的页码就相当于一个指针.当正文内容需要调整时(如原来在第一章的,我现在要把它放到最后一章),那么当内容改动时,我们就要修改目录页中相应的页码(目录页本身是不动的,只是改了页码而已,对于系统来说就是修改了句柄所指向的内存地址的内容).

*5,句柄的本质.
    windows程序并不是用物理地址来标识一个内存块,文件,任务或进程的.系统给这些项目分配确定的句柄,并将其值返回给应用程序,然后通过句柄来对其进行操作.程序每次重新启动,系统分配给这个程序的句柄通常是不一样的.

*6.线程到底是什么?
    线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程.线程不拥有系统资源,只有运行必须的一些数据结构,它与父进程的其它线程共享该进程所拥有的全部资源.线程可以创建和撤消线程.从而实现程序的并发执行.比如,在一个程序中,我们创建一个线程读写磁盘,用另一个线程来处理用户的其他请求.

三.实践

1.查看你系统中有多少进程?
打开任务管理器(按快捷键Ctrl+Alt+Del),切换到进程页.在这里我们可以看到系统中所有的进程(隐藏的进程在这里看不到),映像名称,有时也称为进程名,这个名字一般就是相应程序的文件名.在左下角,你可以看到你系统中有多少进程了,比如我的,现在是27.


我现在打开一个画图程序


现在是28个了,多了哪个?多了mspaint.exe,这个就是画图程序的进程.看看这个进程的详细信息吧.点查看,选择列...,在PID,CPU时间,内存使用,用户名,虚拟内存大小等的前面打勾,确定.现在看到多了几列了.

映像名称:即进程名,可能存在多个名字相同的进程名.
PID:前面已经讲过,这是唯一的,系统中不可能存在重复的PID.
用户名:是指这个程序是由谁启动的或是用于说明其优先情况的.
CPU 时间:我们知道在单核系统中,CPU同时只能处理一件事(一个进程),但是为什么会有这么多进程同时运行呢?系统把CPU时间分成许多的时间片,每个进程每次可以使用一个由时间片规定的CPU时间.这样,多个进程轮流使用CPU时间,如果某个进程在规定的时间内还没有完成它的全部工作,这时也要把CPU让给其他进程,等待下一轮再使用一个时间片的时间,循环轮转,直到结束.由于CPU的执行速度非常快,所以你看上去它们好像是在同时运行的. 当进程出现问题并且系统自身无法修正时,就可能出现CPU占用居高不下,甚至是100%,导致其他进程无法占用CPU时间,这时系统的反映就会很慢,很卡.这时可以把有问题的进程结束掉. 有些杀毒软件的进程在扫描时也会占用较高,这是正常现象.
内存:程序执行所占用的内存.一般程序通常不超过50M.游戏什么的可能占用会比较大.
虚似内存,同上,但有些区别,这个值一般不超过150M,超过此值的就要注意一下了,当某个进程的虚拟内存占用很大时,同样会导致系统很卡.结束这个进程则恢复正常.

2,两个拥有特殊PID的进程
System Idle Process:这个进程的PID为0,虚拟内存占用为0,CPU很高,常常在90以上,事实上,它并不是真正的进程,这个称为系统空闲进程,它的CPU值越高越好.该进程无法结束,没有对应的文件.

System: 这个进程的PID为4,该进程不能结束,它也没有对应的文件.并且没有后缀名,如果你看到带有后缀名的或是PID不是4的system,则这个进程很可能是病毒进程.如果你看到此进程正常,但CPU占用很高,则说明这个进程被注入了,大部分是木马或病毒的行为,因为正常程序不会去搞它的.

3.系统正常运行需要哪些进程?
除了上面提到的两个,其他还有几个.下面按重要性来一个个说明.(下面讲到路径时,以系统盘为C盘为例),进程名不区分大小写.认识这些进程,对你使用系统和维护系统安全都有着非常重要的作用!如果嫌我讲得啰嗦,你大可以百度一下相关进程名查找更啰嗦的.

smss.exe :这是系统中有对应文件的第一个真正进程.文件位于c:\windows\system32\smss.exe,这是一个会话管理子系统,负责启动用户会话,系统所有进程的初始化工作都由它来完成,当某些进程出现不可预知的重大错误时,该进程负责调节,无法调节时,系统将停止响应.

winlogon.exe :管理用户登陆,注销等.该进程是由父进程smss.exe创建的,正常路径c:\windows\system32\winlogon.exe,屏幕保护程序的启动等也是由它来管理的.以system用户来运行.

csrss.exe : 管理系统图形相关子系统.也是由smss.exe创建的,正常路径c:\windows\system32\csrss.exe

lsass.exe :该进程是多个Windows系统服务的宿主,由winlogon.exe创建,它控制一些服务的启动与关闭,与services.exe具有同等重要的作用.它们分管系统中所有的服务.lsass.exe管理的服务包括HTTP SSL,IPSEC Services,Kerberos Key Distribution Center,Net Logon,NT LM Security Support Provider,Protected Storage,Security Accounts Manager.正常情况下,它开启了多个服务,一般至少有Protected Storage和Security Accounts Manager两项,如果没有开启这些服务,此进程可以被关闭.

services.exe :和上面的一样,也是由winlogon.exe创建的,除上面七个服务外,其他所有服务全部由该进程来管理.关于服务相关的内容,以后会专门用一个课时来详细说明,现在只要了解就行了.路径c:\windows\system32\services.exe

svchost.exe :标准的动态连接库主机处理服务.由services.exe创建,该进程在启动的时候会检查注册表中相应位置来决定需要加载的服务.系统中常常会存在很多个svchost.exe进程,因为不同的服务可能要不同的svchost.exe进程来启动.有的svchost.exe进程只启动了一个服务,而有的可能启动了好几个服务.所以系统中存在3~7个同样的这个进程并不奇怪.路径c:\windows\system32\svchost.exe.部分这个进程可以被结束的,结束后的结果可能会很奇怪,比如复制粘贴功能没有了...

alg.exe :即Application Layer Gateway Service,应用程序网关服务,为Internet连接共享和Windows防火墙提供第三方协议插件的支持.

4.哪些进程可以结束?
    除了上面说到的,其他的都可以结束,刚刚的截图,我系统的进程数20多个,有些人的可能有30多个甚至更多.下面我就先来优化一下吧.结果如图:


    其实还可以精减掉几个svchost.exe的,重新开启需要以服务形式启动,嫌麻烦就不结束了...还有一个原因是任务管理器提供的信息太少,不知道哪个svchost.exe启动了哪些服务,盲目结束总不是很好.最坏的情况是系统30秒倒计时重启或关机.如何解决倒计时关机?
很简单,按快捷键Win+R,然后输入shutdown -a确定即可.

    对于杀毒软件的进程,可能你无法用任务管理器来结束,你可以直接关闭杀毒软件.其他无法关闭的进程还有很多,比如病毒进程,服务进程等.无法结束的进程可以使用第三方工具来结束,比如冰刃(IceSword).实践完毕后别忘了重新开启你的杀毒软件的监控.
    另一个特殊的进程:explorer.exe,这个进程是可以被结束的,结束后桌面消失,别害怕,重新启动这个进程就行了,在任务管理器中点文件,新建任务,输入explorer.exe后确定即可.
    还有一个进程是taskmgr.exe,这个进程是任务管理器的进程,你结束它试一下,任务管理器关闭了,呵.

5.用好任务管理器
结束进程,当前选中进程将被结束.
结束进程,当前选中进程及所有由该进程创建的子进程全部被结束
切换到应用程序页,选中某个任务,右键选择:
切换至,则该任务的窗口将位于最上面,并且成为激活状态
前置,和切换至很类似,但不一定是激活状态的.
最大化,最小化,这两个不用我说了吧.
结束任务,关闭相应的任务.
转到进程,该任务对应的是哪个进程一看便知.
在任务管理器四周空白处双击一下试试.再次双击可变回原样.
在应用程序页双击将最小化任务管理器.
左眼球 - 2009-5-19 10:22:00
作者:网络转载 来源:网络转载 

第2课中,讲了如何修改注册表实现文件隐藏,还留下了一个问题:
显示系统文件夹的内容(操作1),位于注册表的哪个位置?
基本上都回复正确了
答案为WebviewParricade的键值由0改为1(完整注册表路径为HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced).
其实HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced下面还有很多我们常用的设置,下面一个个来说明,如果第2课的作业你做了的话应该基本了解得差不多了.以下键如果不存在的话可以新建,类型为DWORD值.

ShowCompColor 值为1时,彩色显示加密或压缩的NTFS文件.
TaskbarAnimations 值为1时,任务栏动画.
TaskbarGroupSize 值为1时,分组相似任务栏按钮 (任务栏和开始菜单属性中可设置)
ShowInfoTip 值为1时显示提示信息
HideIcons 值为1时将隐藏图标.
SeparateProcess 值为1时在单独的进程中打开窗口.
StartButtonBalloonTip 值为2时,开始菜单显示"单击这里开始"
StartMenuFavorites 值为0时,开始菜单不显示"收藏夹"
StartMenuRun 值为1时,开始菜单显示"运行"
StartMenuChange 值为1时,允许更改开始菜单
TaskbarSizeMove 值为1时,锁定任务栏
FolderContentsInfoTip 值为1时,显示文件夹内容信息提示
FriendlyTree 值为1时,在资源管理器文件夹列表中显示简单文件夹查看 
DisableThumbnailCache 值为0时,使用略缩图缓存
ClassicViewState 值为1时,不启用"记住每个文件夹的视图位置"
PersistBrowsers 值为0时,不启用"在登陆时还原上一个文件夹的窗口"
EnableBalloonTips 值为1时,托盘区启用气球提示
StartMenuAdminTools 值为0并且Start_AdminToolsRoot为2,开始菜单中显示管理工具.若Start_AdminToolsRoot为0,则不显示.值为1并且Start_AdminToolsRoot为2,在开始菜单和所有程序都显示管理工具,Start_AdminToolsRoot为0,则只在所有程序中显示.
Start_AutoCascade 值为1时,开始菜单自动展开
Start_EnableDragDrop 值为1时,开始菜单启用拖放
Start_LargeMFUIcons 值为1时,大图标显示开始菜单程序,为0则小图标显示.
Start_MinMFU 值为0时,开始菜单的左边不显示常访问的程序
Start_NotifyNewApps 值为0时,不高亮显示新安装的程序
Start_ShowControlPanel 值为2时,在开始菜单显示"控制面板",为则0不显示,为1显示为链接.
Start_ShowHelp 值为0时,开始菜单中不显示"帮助"
Start_ShowMyComputer 值为0时,开始菜单中不显示"我的电脑"
Start_ShowMyDocs 值为0时,开始菜单中不显示"我的文档"
Start_ShowMyMusic 值为0时,开始菜单中不显示"我的音乐"
Start_ShowMyPics 值为0时,开始菜单中不显示"照片收藏"
Start_ShowNetConn 值为0时,开始菜单中不显示"网络连接"
Start_ShowNetPlaces 值为0时,开始菜单中不显示"网上邻居"
Start_ShowPrinters 值为0时,开始菜单中不显示"打印机和传真"
Start_ShowRecentDocs 值为0时,开始菜单中不显示"常用文档" 
Start_ShowSearch 值为0时,在开始菜单显示"搜索"
Start_ShowSetProgramAccessAndDefaults 值为0时,不显示"设置程序访问和默认值"

一大堆,大家是不是看得眼花了,如果认识几个英文单词的话就很好记了.Start_开头的键都和开始菜单有关, Show,就是显示的意思了,大部分情况下整个键的值为1时显示,为0时不显示.

大家看看这个路径是否和刚才的一样:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advaned
除了HKEY_LOCAL_MACHINE,后面的全部一样,什么意思呢?HKEY_LOCAL_MACHINE下面的修改会影响到整个系统中所有用户的设置,而HKEY_CURRENT_USER下面的设置只影响当前用户.也就是说,即使你把上面提到的键值全改了,换个用户登陆情况完全不一样了.而在HKEY_LOCAL_MACHINE下设置的,无论哪个用户登陆,都将是一样的,病毒也往往更喜欢优先修改这里的.

展开Folder,下面还有好多项,这里的情况和上面差不多,但又有些区别.看这一项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL
CheckedValue的值为1时显示所有文件和文件夹.(文件夹选项)
Type的值为radio时表示在文件夹选项中该项设置显示为单选.
Text的值决定了该单选框上显示的文字,这里的值为@shell32.dll,-30500,表示从shell32.dll这个文件的特定位置读取资源,这里的资源是一个字符串,内容是"显示所有文件和文件夹".shell32.dll这个文件的路径是%systemroot%/system32/shell32.dll.顺便说一下%systemroot%这个代表windows目录.(试一下:开始,运行,输入%systemroot%,确定.),这是一个环境变量.

Folder下各项的设置和上面的很类似,大家自己应该可以看懂了.

再现禽兽病毒.(见附件)
和上次一样,这只是一个演示程序,并不会破坏系统.为什么叫禽兽病毒呢,因为它把文件夹选项中的一个字符串改成了"禽兽尚且有半点怜悯之心,而我一点都没有,所以我不是禽兽"(没听说过的话,百度一下这句话吧).
症状如下:隐藏文件无法显示.文件夹选项中"显示所有文件和文件夹"这一选项消失,"不显示隐藏文件"这一项被窜改.如图:



解决方法:
先结束进程,注册表按下面修改
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\NOHIDDEN]
Text的值改成@shell32.dll,-30501
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
Type的值改成radio
其他的按第2课中讲的修改.
左眼球 - 2009-5-19 10:26:00
作者:网络转载 来源:剑盟反病毒团队 

一.名词解释(以下解释大多来自windows帮助和支持中心)
*1.基本磁盘:基本磁盘可包含多达四个主磁盘分区,或三个主磁盘分区加一个具有多个逻辑驱动器的扩展磁盘分区.如果要创建跨越多个磁盘的分区,必须首先利用"磁盘管理"或 Diskpart.exe 命令行工具将基本磁盘转换为动态磁盘.

2.磁盘分区:有时也叫逻辑分区,是物理磁盘的一部分,不太准确的讲一个盘就是一个分区,如C盘.准确地讲是物理上独立的磁盘那样工作的物理磁盘部分.创建分区后,将数据存储在该分区之前必须将其格式化并指派驱动器号.在基本磁盘上,分区被称为基本卷,它包含主要分区和逻辑驱动器.在动态磁盘上,分区被称为动态卷,它包含简单卷,带区卷,跨区卷,镜像卷和RAID-5卷.

3.主分区:全称主磁盘分区,可以在基本磁盘上创建的分区的类型.主磁盘分区是象物理上独立的磁盘那样工作的物理磁盘的部分.在基本主启动记录 (MBR) 磁盘上,在每个基本磁盘最多可以创建四个主磁盘分区,或者三个主磁盘分区和一个有多个逻辑驱动器的扩展磁盘分区.在基本 GPT 磁盘上,最多可以创建 128 个主磁盘分区.主磁盘分区也被称为卷.

4.扩展分区:一种只可以在基本主启动记录 (MBR) 磁盘上创建的分区类型.如果想在基本 MBR 磁盘上创建四个以上的卷,扩展磁盘分区将非常有用.与主磁盘分区不同的是,不要用文件系统格式化扩展磁盘分区,然后给它指派一个驱动器号.相反,您可以在扩展磁盘分区中创建一个或多个逻辑驱动器.创建逻辑驱动器之后,可以将其格式化并指派一个驱动器号.一个 MBR 磁盘可以包含最多四个主磁盘分区,或三个主磁盘分区,一个扩展磁盘分区和多个逻辑驱动器.

5.文件系统:在操作系统中,在其中命名,存储,组织文件的综合结构.NTFS,FAT 和 FAT32 都是文件系统的类型.也叫分区格式.

6.FAT32:一种文件系统,FAT32 比 FAT 支持更小的簇和更大的卷,这就使得 FAT32 卷的空间分配更有效率.

7.NTFS:一种文件系统,提供性能,安全性,可靠性和在所有 FAT 版本中都没有的高级功能的高级文件系统.例如,NTFS 通过使用标准的事务处理记录和还原技术来保证卷的一致性.如果系统出现故障,NTFS 将使用日志文件和检查点信息来恢复文件系统的一致性.在XP以上系统中,NTFS 还可以提供诸如文件和文件夹权限,加密,磁盘配额和压缩这样的高级功能.

8.驱动器号:IBM 及其兼容计算机的磁盘驱动器的命名约定.驱动器用字母命名,从 A 开始,后跟冒号.

9.权限:与对象关联的规则,用来控制谁可以访问对象及访问的方式如何.权限由对象的所有者授予或拒绝.在NTFS卷上,权限可自定义设置.可以通过选择个别组的权限标准设置来自定义文件和目录上的权限.

10.簇:文件存储的最小单位.如果一个簇大小为4KB,那么一个文件即使只有一个1字节的内容保存时也在占用4KB的磁盘空间.因此簇越小,越节省空间.但是簇大的好处是存储或读取的速度比较快.

*11.分区表:位于硬盘主引导扇区(0柱面0磁头1扇区)后从1BE字节开始,共64个字节,包含四个分区表项.(每个16字节,大部分用户此处后两个表项内容应该均为 0),这就是为什么最多只能有四个主分区的原因.扩展分区占用了主分区表的一个表项,扩展分区起始位置所指示的扇区(即该分区的第一个扇区)中,包含有第一个逻辑分区表,同样从1BEH字节开始,每个分区表项占用16个字节.逻辑分区表一般包含两个分区表项,一个指向某逻辑分区,另一个则指向下一个逻辑分区或扩展分区.下一个扩展分区的首扇区又包含了一个逻辑分区表,这样以此类推,扩展分区中就可以包含多个逻辑分区.

二.实践
1.查看磁盘分区格式
打开我的电脑,右击某个盘,属性,如图,我这里的是FAT32.


*2.磁盘分区的情况.
右击我的电脑,管理,磁盘管理,如图,我的是两个主分区,又在第二个主分区(扩展分区)上分了三个逻辑分区.如果没有划分扩展分区,则整个磁盘就只有一个分区.


下面看一下我以前的磁盘划分(不懂请跳过),当时装有linux系统,现在搬到windows下了,图中三个未知分区合并为现在的X盘,E盘转化为NTFS格式.(未指派部分比较特殊,与联想一键恢复有关,这里就不扯了)


扩展分区也算是一个主分区,有了扩展分区,你可以划分逻辑分区,在windows下这个确实挺乱的,我们看到的是C盘,D盘,E盘等,好像他们都是一样的,其实不是的.....安装过linux系统的话就应该会很清楚点
上面这个图的解释:
_________________________________________________________________________
/hda1 第一个主分区 ,FAT32格式,装有windows XP   (C盘) 6.82G
/hda2 第二个主分区  (扩展分区,具体划分看下面)      大小为下面几个数加起来
  /hda5   D盘,NTFS格式的  软件都安装在这了  9.77G
      /hda6   E盘 FAT32格式的  放资料用的            8.30G
      /hda7          /boot区,ext3格式                                    102MB
      /had8   linux根分区,ext3格式                              9.73G
  /hda9   交换分区                                            478MB
__________________________________________________________________________
图中因windows无法识别linux的分区格式,所以显示为未知分区.
下面一个图是关于分区表的.(不懂可跳过,以后讲数据恢复时再详细讲解.)


3,彻底删除System Volume Information文件夹
一般情况下,每个分区下都会有这么这个文件夹,而且可能无法删除,如图: 也打不开


这个文件夹的作用是保存了系统的还原点,如果这个文件夹能被轻易删除,那么系统还原将得不到保证.一般我们并不用系统自带的还原.很多人甚至关闭了系统还原(如何关闭:我的电脑,属性,系统还原,在所有驱动器上关闭系统还原).
对于FAT32格式的分区,可以直接删除.对于NTFS的分区,你需要先取得权限.方法如下:
文件夹选项,查看,使用简单文件共享前面的勾去掉.
右击System Volume Information,属性,安全,高级,所有者,选择你的用户名,替换子容器及对象的所有者前打勾,确定,是.如图:



现在可以打开看到里面的内容了.而且也可以删除了.但是过会儿又会出现.
下面我们来彻底干掉这个文件,方法如下:
Win+R,输入services.msc,确定.找到名为System Restore Service的服务,双击它,点击停止,再将启动类型改为禁用,确定.然后按上面的方法取得所有权,最后删除即可.

4,回收站文件夹Recycled/RECYCLER
Recycled存在于FAT32格式的分区中,可以删除,但系统会重建.删除的结果类似于清空了部分回收站,为什么不是全部呢?比如我删除了C盘中的Recycled,则打开桌面上的回收站后将看不到以前在C盘删除的文件或文件夹,因为这部分内容已经被清空了.
RECYCLER存在于NTFS格式的分区中,打开它,可以看到一个或一个以上的回收站图标,并且文件名很长很怪,如S-1-5-21-73586283-308236825-725345543-500,删除的后果与上面的类似.
除此之外,我们还可以设定回收站的大小.
右击回收站图标,属性,全局,在这里还可以进行很多设置,如删除时不将文件移入回收站,而是彻底删除,删除时是否显示删除确认对话框等.

5.彻底删除Thumbs.db
看看你电脑中有多少个名为Thumbs.db的文件.
搜索我的电脑,文件名填Thumbs.db,更多高级选项,搜索系统文件,搜索隐藏的文件和文件夹,搜索子文件夹前全部打勾.然后点击搜索.应该可以发现一大堆吧.如图:


我的还算少得呢,大家千万不要以为中毒了,可以删除的,大家可以试下,如果提示是系统文件什么的也没事,放心删除好了.我全部删除了.
不知大家发现什么规律了没?为什么有些文件夹下面会有,有些没有.
请打开这些文件夹看看吧,发现了吧,凡是刚才存在Thumbs.db这个文件的目录中都有图片文件.
看到奇怪之处了没?刚才不是全部删除了吗,怎么又有这个文件了.
这个文件的作用是缓存图片缩略图的.只要一打开有图片的目录,这个文件就自动生成了.
如果你不想看到这个文件,请按如下方式操作:
文件夹选项,查看,不缓存缩略图前打勾,确定,重新搜索,删除这些文件.

6.desktop.ini文件
先搜索下,又是一大堆.这些文件只存在于一些特殊文件夹中,如图片收藏,我的音乐,收藏夹等.删除后问题也不会很大,但是少了很多趣味,听我慢慢道来.
用记事本打开其中一个看看内容吧,我打开了C:\Documents and Settings\dream\My Documents\My Pictures\Desktop.ini(我的文档\图片收藏),内容如下:
复制内容到剪贴板
代码:
[DeleteOnCopy]
Owner=dream
Personalized=39
PersonalizedName=My Pictures
[.ShellClassInfo]
InfoTip=@Shell32.dll,-12688
IconFile=%SystemRoot%\system32\mydocs.dll
IconIndex=-101
扩展名为ini的文件基本都是配制文件.一个配制文件的基本结构如下:
复制内容到剪贴板
代码:
[字段名]
关键字=值
因此,上面的[DeleteOnCopy]和[.ShellClassInfo]都是字段名,这两个是由系统定义的,不要随便改.
Owner是当前文件夹的所有者名
Personalized是个性化私人标识,具体含义我也不明白,微软未完全公开
PersonalizedName是当前文件夹的名字
InfoTip当鼠标指向这个文件夹时出现的提示文字,后面的@Shell32.dll,-12688是什么意思,大家知道么?忘了的话请复习第4课,有详细说明.这里我把它改成"雷特反病毒教学第5课".看效果:


IconFile指定图标,后面为图标的路径.可以是ico图标文件的路径,也可以是包含图标资源exe,dll文件的路径.
IconIndex图标在资源文件中的索引号
我把上面两项分分别作如下修改:
IconFile=E:\edu\antivirus\anti\anti2.exe
IconIndex=0
这个exe文件就是我们第4课附件中的那个anti2.exe.刷新下看效果:


文件夹的名称也显原形了,这个偶也不清楚,有待研究,知道的回复下,谢谢.
另外desktop.ini文件还可以定义文件夹的背景等.举个例子:
我新建个文本文档,重命名为desktop.ini,路径为C:\Documents and Settings\dream\My Documents\desktop.ini
内容如下:
复制内容到剪贴板
代码:
[ExtShellFolderViews]
{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}
[{BE098140-A513-11D0-A3A4-00C04FD706EC}]
IconArea_Text=0x000000FF
IconArea_Image=C:\WINDOWS\Web\Wallpaper\Ascent.jpg
IconArea_Text文件名的颜色,这里是红色.
IconArea_Image背景图片路径,我电脑中没什么好看的图片,就用了系统自带的一个.
最终效果如图:


关于这个文件的内容还有好多好多,不一一细说了.大家动手操作一遍吧.很多人可能会将它误认为病毒相关文件,其实不是,但有时可能是,你用记事本打开这个文件看下内容就什么都清楚了.

特殊文件还有好多,以后再讲,特别是一些和病毒加载有关或容易被误认为病毒的文件.本来还想讲autorun.inf文件的,下次吧,这个文件常被病毒利用的,类似的能被病毒利用的文件还有不少.
左眼球 - 2009-5-19 10:29:00
作者:网络转载 来源:剑盟反病毒团队 

一.环境变量与命令
命令分为内部命令和外部命令,以前用到的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图片和传真查看器打开时,请放大,否则看不清楚.


左眼球 - 2009-5-19 10:33:00
作者:网络转载 来源:剑盟反病毒团队

一.自动运行
上次讲了自动运行的两个注册表位置及两个文件位置.即
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
C:\Documents and Settings\All Users\「开始」菜单\程序\启动
C:\Documents and Settings\你的用户名\「开始」菜单\程序\启动
这四个是病毒最喜欢的地方,要引起重视.

除此之外还有:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
与run的区别是,RunOnce只在下机开机时运行一次,以后不再运行,而run则每次开机时都启动,RunOnceEx不创建单独进程,通常以DLL形式加载,即使DLL调用出错,也可设置相应标志而不出现任何出错提示,微软解释:http://support.microsoft.com/kb/232487/en-us/
RunServices加载优先于Run,而RunServicesOnce,顾名思义,只运行一次的.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
这两个位置常常被忽略,大家注意一下.

HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows
这里load的值也要注意下

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
这两个下面的Notify,Userinit,Shell的值也要注意,这三个的键值可以用逗号分隔多个程序.这里也要特别注意.正常情况下,shell的值为Explorer.exe,Userinit的值为userinit.exe,(可能是完整路径)

其他需要注意的地方还有(不多见):
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts

可能有些项或键在你电脑上并不存在,可以新建的.

二.映像劫持.
原理:NT系统在试图运行一个程序时,先会检查程序是不是可执行文件,如果是的话,再检查格式,然后就会检查是否存在,如果不存在的话,它会提示系统找不到文件或者是"指定的路径不正确"等等.
映像劫持的全称为Image File Execution Options
被病毒利用后的症状:杀毒软件,常用系统工具打不开,你运行正常程序,但打开的却是病毒程序.

举例:正常情况下,双击桌面上的IE图标就会打开浏览器,被劫持后实际运的并不是IE,而是另外一个程序,这里的另一个程序我以记事本为例来说明.
注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

先打开注册表并定位到这个位置,新建项,名为iexplore.exe


在右边新建字符串值,名为Debugger,双击它,将值改为notepad.exe,确定.


此时双击桌面上的IE图标时将打开记事本.解决办法是把刚才新建的全部删除.
另一种办法是找到IE的真正路径,将其他重命名后再运行.通常杀毒软件被劫持时,我们采用重命名法.
很多病毒都会利用这个地方,当你运行正常程序时,实际运行的却是病毒.
可能你会发现你的注册表中有一些后缀为dll或其他的项, 这些是可以删除的,不删也没关系,但如果它下面有名为Debugger的键并且值为一可执行文件路径时,就要引起注意了.
当然你也可以反过来劫持病毒,方法是一样的.
当Debugger指定的路径值不存在时,将出现错误. 比如我把刚才的notepad.exe改成c:\abc\abc.exe


如果打开目录C:\Program Files\Internet Explorer直接运行IEXPLORE.EXE则出现下面结果:



三.自动播放
提到自动播放,不得不说的一个文件就是autorun.inf,通常它具有隐藏属性,同时它也是一个配制文件.
autorun.inf是windows下操纵光盘等行为的一个文件,需要放在根目录下,部分操作对于硬盘,U盘也适用.
比如插入杀毒软件的安装光盘,系统将自动运行它的安装程序,这给我们带来了不少方便,但也给病毒的传播带来了方便.
所谓的U盘病毒就是利用这个文件来传播的病毒,如果你开启了自动播放功能,则当你双击U盘的时候,病毒就运行了.对于硬盘也是一样的.有时病毒清理完毕后,双击硬盘却打不开了,原因是病毒不存在了,而autorun.inf这个文件仍然存在...
这个文件的一般内容如下:
复制内容到剪贴板
代码:
[autorun]
open=progict1.exe
shell\open=打开(&O)
shell\open\Command=progict1.exe
shell\open\Default=1
shell\explore=资源管理器(&X)
shell\explore\Command=progict1.exe
open=progict1.exe
如果存在progict1.exe这个文件,当你双击盘符时,就会自动运行这个文件,等号后面可以是完整的文件路径
shell\open=打开(&O)
shell\open\Command=progict1.exe
第一行,将使右键出现一个打开命令,第二行当你选择打开时,实际执行的是progict1.exe这个文件
shell\explore=资源管理器(&X)
shell\explore\Command=progict1.exe
情况类似于上面的,因此用右键打开磁盘也并不一定是安全的.

中毒后正确的做法有:
1,在我的电脑地址栏中输入路径,如C:\
2,单击文件夹图标,从左边树型目录打开.
3,从开始菜单启动资源管理器,从左边树型目录打开
4,利用第三方工具,如winRAR,还是用地址栏.

一般情况,中毒后,先按上述方法找到autorun.inf,用记事本打开它,查看其指向的文件是什么,删除autorun.inf和它所指向的文件,一般来说,其指向的文件和autorun.inf一样也在磁盘根目录,但有时并不一定,也可能在系统目录等.

一般建议关闭自动播放功能:
开始,运行,输入gpedit.msc,打开组策略
计算机配制,管理模板,系统
在右边找到期"关闭自动播放",双击它,改为已启用,并选择所有驱动器,确定.


新增动作:
1,复制自身到系统目录
2,开机自动运行
3,映像劫持某些程序

修正:只允许一个实例运行

解决方法

1,结束进程,其他参照第2课和第4课的内容.

2,删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下名为"演示程序"的键.

3,删除如下映像劫持项目(不带单引号): '360Safe.exe','360tray.exe','avp.exe','CCenter.exe','qq.exe','regedit.exe','msconfig.exe','notepad.exe','cmd.exe','nod32.exe'

4,删除文件:%systemroot%/system32/anti3.exe

注1:真正的病毒可能会添加到多处可自启动的地方,劫持绝大部分安全软件和系统工具等.
注2:由于劫持了注册表,运行演示程序后注册表将打不开,请按上面说的办法解决.(到%systemroot%目录下找到regedit.exe,将其重命名后即可运行)

注3:可能对某些人有用:
360rpt.exe,360Safe.exe,360tray.exe,adam.exe,AgentSvr.exe,AppSvc32.exe,AST.exe,autoruns.exe,avgrssvc.exe,AvMonitor.exe,avp.com,avp.exe,CCenter.exe,ccSvcHst.exe,FileDsty.exe,HijackThis.exe,FTCleanerShell.exe,IceSword.exe,iparmo.exe,Iparmor.exe,isPwdSvc.exe,kabaload.exe,KaScrScn.SCR,KASMain.exe,KASTask.exe,KAV32.exe,KAVDX.exe,KAVPFW.exe,KAVSetup.exe,KISLnchr.exe,KAVStart.exe,KMailMon.exe,KMFilter.exe,KPFW32.exe,KPFW32X.exe,KPFWSvc.exe,KRegEx.exe,krepair.COM,KsLoader.exe,KVCenter.kxp,KvDetect.exe,KvfwMcl.exe,KVMonXP.kxp,KVMonXP_1.kxp,kvol.exe,kvolself.exe,KvReport.kxp,KVScan.kxp,KVSrvXP.exe,KVStub.kxp,kvupload.exe,kvwsc.exe,KvXP_1.kxp,KvXP.kxp,KWatch9x.exe,KWatch.exe,KWatchX.exe,loaddll.exe,MagicSet.exe,mcconsol.exe,mmqczj.exe,mmsk.exe,NAVSetup.exe,PFW.exe,PFWLiveUpdate.exe,QHSET.exe,Ras.exe,Rav.exe,RavMon.exe,RavMonD.exe,SysSafe.exe,TrojanDetector.exe,symlcsvc.exe,SREng.exe,SmartUp.exe,shcfg32.exe,scan32.exe,safelive.exe,runiep.exe,Rsaupd.exe,RsAgent.exe,rfwsrv.exe,RfwMain.exe,rfwcfg.exe,RegClean.exe,rfwProxy.exe,RavTask.exe,RavStub.exe,Trojanwall.exe,TrojDie.kxp,UIHost.exe,UmxAgent.exe,UmxAttachment.exe,UmxCfg.exe,UmxFwHlp.exe,UmxPol.exe,UpLive.EXE.exe,WoptiClean.exe,zxsweep.exe,regedit.exe,msconfig.exe,mmc.exe,taskmgr.exe
左眼球 - 2009-5-19 10:38:00
作者:网络转载 来源:剑盟反病毒团队

这一课详细来讲一下几个配置文件.
配制文件的扩展名一般为.ini,内容的一般格式如下:
复制内容到剪贴板
代码:
[字段名]
关键字=值
在一个配制文件中,可以有多个字段,一个字段下也可以有多个关键字.字段名必须用中括号括起来.字段名,关键字,值等可以是中文,英文,各种符号等(一般英文居多).对于系统中的配制文件,字段名一定是固定的,关键字大都也是固定的,你不能随意更改成其他名称,只有后面的值才可以改,修改时也要符合一定的规则.

一.desktop.ini
这个文件在第5课中已经详细地讲过了,这里就不再讲了.

二.autorun.inf
还是先贴一下上一课中的那个文件的内容,上一课中讲得很简单,这一课继续讲,不要求完全掌握,只要知道上一课中的内容就行:
复制内容到剪贴板
代码:
[autorun]
open=progict1.exe
shell\open=打开(&O)
shell\open\Command=progict1.exe
shell\open\Default=1
shell\explore=资源管理器(&X)
shell\explore\Command=progict1.exe
第一行中的autorun是一个字段名,autorun.inf这个配制文件总共可以支持三个字段,另两个是 AutoRun.Alpha和DeviceInstall.autorun字段是每个autorun.inf文件心须有的并且所有windows系统都支持该处的配制(除非禁用了自动播放等),其他两个是可选的,AutoRun.Alpha适用于基于RISC的计算机光驱,而DeviceInstall则要求必须是XP及以上系统.下面一个个来具体说明:

[autorun]
1.Open
这个单词的意思为打开,也就是说当你打开设备(如磁盘,光盘,U盘)时,等号后面的命令(可执行文件)也会跟着执行,命令可以带参数,如ping 127.0.0.1,必须是.exe,.com,.bat等文件,其他文件需使用start.exe打开或使用ShellExecute命令,命令的起始目录必须是设备根目录或系统的Path环境变量中所指定的,否则将无法运行.

2.ShellExecute
功能与Open类似,但可以是任意格式的文件,系统会根据文件关联选择合适的程序打开它.比如你写一行ShellExecute=ratebbs.doc,当你双击时,系统将自动调用word程序来打开这个名为ratebbs.doc的文档(前提是这个文档必须存在).

3.Icon
用于指定盘符的图标,等号后为图标的路径,可以是.ico,.bmp,.exe,.dll.当文件格式为.exe和.dll时需要使用序号来指定图标,若不指定,则默认为0,文件路径与序号之间用半角逗号隔开,比如我可以这样写:Icon=E:\edu\antivirus\anti\anti.exe,0

4.DefaultIcon
这个是用于指定将被自动执行的程序的图标的,如果指定了另外一个图标,则原来程序的图标将不会显示,也就是说它的优先级高于程序本身显示的图标.设置方法和关键字Icon一样.

5.Label
用于指定磁盘的默认描述\卷标,默认为本地磁盘,卷标命名规则好像和文件名一样,不能包含一些特殊字符,可以有中文,空格等.

6.shell
这个说简单也简单,说复杂也复杂,因为自由度比较大,
复制内容到剪贴板
代码:
shell\open=打开(&O)
shell\open\Command=progict1.exe
shell\open\Default=1
中间都有一个open(标识),其实也可以换成其他名字的,但三行中必须同时更改才有效,第一行的效果是右击盘符时将出现一个名为打开的选项,后面的 (&O)的效果是指定快捷键.第二行的效果是当你选择打开时,运行指定的命令,第三行的效果为让这个命令出现在右键快捷菜单的最上面.Command意为命令行,它后面的设置方法和关键字open是一样的.
默认情况下,系统可以识别open,explore,find,ShellExecute等标识,也就是说当你使用这几个标识时只要写中间的那一行就可以了(第一行可以不写),使用其他标识时前两行必须有,且标识必须一致,举例如下:
复制内容到剪贴板
代码:
shell\ratebbs=反病毒(&A)
shell\ratebbs\Command=E:\edu\antivirus\anti\anti.exe
[AutoRun.alpha]
所有关键字的用法和[AutoRun]字段完全相同区别在于在基于RISC的光驱中,[AutoRun.alpha]优先级高于[AutoRun],也就是说如果同时设置了这两个字段,在基于RISC的光驱中,系统只识别[AutoRun.alpha]字段中的,[AutoRun]字段将被忽略.这个字段并不常用.

[DeviceInstall]
只有一个关建字DriverPath,用于指定驱动程序的搜索路径.Windows XP以上支持,一般用于驱动程序的自动安装,当你打开设备管理器,点更新驱动时,系统将自动搜索光盘以查找合适的驱动.如果没有这一字段,系统将全盘搜索.若有这一字段,但没有DriverPath关键字,则系统将不在此光盘中搜索驱动程序.

三.boot.ini
这是系统盘根目录下的一个文件,具有只读属性,修改前需先更改它的属性.该文件与开机时显示操作系统选择菜单有关,如果该文件丢失或配制错误将导致windows系统无法正常引导,所以修改前请一定要备份,以下为我装完XP系统后备份的boot.ini文件的内容.
复制内容到剪贴板
代码:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
[boot loader]
1,timeout
这个关键字指定开机时操作系统选择菜单的停留时间,单位为秒,当只有一个操作系统时,它的值将被忽略.

2,default
当超过timeout所指定的时间且你没有选择要进入的操作系统,将自动进入该值所指定的操作系统.该值必须是operating systems字段中已存在的关键字,否则将出错.

[operating systems]
这个字段下是所有操作系统的列表.上面的例子只有一个XP系统.所有只有一行.
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
说一下这个关键字的意思:
multi(0) 说明系统使用的是IDE,增强的IDE(EIDE)或增强的小型设备接口(ESDI)驱动器,或者没有内置BIOS的SCSI适配器.有的系统此处可能为 scsi(0)说明使用的是除上述以外的控制器.后面括号中的0表示第一个控制器(主控制器),如果有第二个,后面数字加1,即multi(1).
disk(0)表示使用的SCSI逻辑单元(LUN).它可以是独立的磁盘,但是大多数SCSI设置对每个SCSI ID只有一个 LUN,所以通常都是这个值.
rdisk(0)表示该操作系统位于第一个物理磁盘上.
partition(1)表该操作系统所有的磁盘分区,系统安装在C盘则为partition(1),若在D盘则为partition(2),后面的以此类推.

"Microsoft Windows XP Professional" /noexecute=optin /fastdetect
此处分两部分讲,关面双引号中的可以任意更改,它就是操作系统选择菜单所出现的名字.后面的是参数,参数一般不区分大小写.

/noexecute
该参数与数据执行保护(DEP)有关,其值为optin时表示开启,值为Optout时表示关闭.开启该项可以阻止某些恶意程序的执行,使恶意程序运行出错而退出.具体也可以到我的电脑,属性,高级,设置,数据执行保护处设置,如果你不知道DEP是什么,请单击DEP是如何工作的.


/fastdetect
系统启动时不检查串行口和并行口,可以加快系统的启动速度.

除上面两个参数之外,系统还支持很多其他参数.不要求掌握,大致了解就行.以下参数说明来自微软知识库文章(http://support.microsoft.com/kb/170756/en-us/)及本人的理解.

/3GB
使得用户模式程序能够访问3GB的内存,正常情况下通常为2GB,只适用于各NT系统非家庭版的SP3版.

/basevideo
强制用标准640x480 16色VGA模式启动系统.当视频分辨率,刷新速率出错或相关驱动出错时可使用此选项.

/BAUDRATE=nnnn
设置波特率的调试端口.如果没有设置波特率,默认波特率是19200.若通过调制解调器远程调试正常速率,此值为9600.例如/BAUDRATE=9600.

/BOOTLOG
将系统日志写入%SystemRoot%\NTBTLOG.TXT,并非所有系统都支持. 

/BURNMEMORY=nnnn
使系统在已知的内存上少使用指定的兆数,如果/burnmemory=128,则系统可使用的内存数将在原有基础上减少128M

/CRASHDEBUG
系统启动时,如果经常无故出错(一般是内核错误),这个参数就非常有用.

/DEBUG
在启动系统时调入调度器,它可以在任何时间激活,在错误可以再次出现时使用它比较合适

/DEBUGPORT=comx
指定用于调度的端口,其中的x就指端口号. 

/HAL=<hal>
允许用户不使用默认的HAL.等号后的是一文件名,用于加载指定的内核.

/INTAFFINITY 
设置多处理器HAL(HALMPS.DLL),使编号最大的处理器接收中断请求.如果不设置此选项,系统会使所有处理器接收中断请求. 

/KERNEL=<kernel>
与上面的/HAL功能类似,但它是针对SMP中的内核而言的.例/KERNEL=ntkrnlmp.exe,指定的文件必须位于%systemroot%/system32目录中 

/MAXMEM:n   
指定系统可以使用的最大内存数.

/NODEBUG 
禁用内核调试器,蓝屏时不显示相应信息.

/NOGUIBOOT 
不加载VGA驱动程序,不显示启动过程和失败时的蓝屏信息. 

/NOSERIALMICE=[COMx|COMx,y,z...]   
在特定的COM中上禁止对串行鼠标的检测.

/NUMPROC=n 
只允许前n个处理器工作

/ONECPU 
在多处理器中只使用一个处理器

/PCILOCK 
不让系统为PCI设置分配IO/IRQ资源,从而无法在windows中更改BIOS设置.

/SAFEBOOT
以安全模式启动

/SOS   
在调入驱动程序名时显示它的名字,在因驱动问题而无法启动时使用,从而知道是哪个驱动导致的问题.

/WIN95   
在装有三个系统DOS,Win9x和Windows NT的系统上,让NTLDR直接调用Win9x启动文件BOOTSECT.W40

/WIN95DOS   
在装有三个系统DOS,Win9x和Windows NT的系统上,让NTLDR直接调用DOS启动文件BOOTSECT.DOS

/YEAR=   
使用指定的年份,如果设置为/YEAR=2005,那现在的时间就是2005年,此参数只对NT4+SP4和W2K生效.
一般情况下不建议直接编辑boot.ini文件,除非你有足够的把握不出错,修改前请备份.一般使用如下两种方式修改其部分设置.
1.我的电脑,属性,高级,设置(第三个).在这里可以进行不少的设置了,或者点击编辑进行自定义设置.


2.开始,运行,输入msconfig,boot.ini,要使用哪些参数直接在下面,或高级中相应选项前打勾就行了,以防止出错.



以下是我目前的boot.ini文件的内容:
复制内容到剪贴板
代码:
[boot loader]
timeout=30
default=C:\PSALDR
[operating systems]
C:\PSALDR="microsoft windows xp professional"
C:\PSBLDR="microsoft windows xp professional 单一影子模式"
multi(0)disk(0)rdisk(0)partition(1)\windows="microsoft windows xp professional 完全影子模式" /fastdetect
c:\grldr=maxdos_5.0e 工具箱
c:\arldr=microsoft dos 7.1
不知大家装过影子系统2008没,装完后关键字default的值被改成了C:\PSBLDR,也就是说超时未选择操作系统的话,默认会进入单一影子模式,把它改成C:\PSALDR默认就会进入正常模式.
c:\grldr,c:\arldr,C:\PSBLDR等都是用于启动相应系统的文件,等号后面的可任意修改.

四.system.ini
曾经是一个非常重要的系统配制文件,早期的病毒或木马常修改这个文件达到开机就启动的目的,现在已经不多见了,但仍然有.NT系统中,几乎所有配制已集成到注册表中,因此现在这个文件的内容比较少了,但仍很有用,系统每次启动都会修改这个文件的内容,不信你可以查看其属性,修改时间.该文件位于%systemroot%/system.ini.也可以通过msconfig来修改..
该文件的配制是相关复杂的,这里只讲和病毒有关的字段及关键字.

[boot]字段的shell=Explorer.exe
注册表位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,键名shell,正常值为Explorer.exe,不正常时可能为Explorer.exe,anti.exe

[386Enh],[mic],[drivers],[drivers32]等字段的driver=驱动程序文件路径.
与驱动有关的注册表路径如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles

五.Win.ini
和system.ini一样,是一个非常重要且相当复杂的配制文件,幸好,大多数配制已集成到注册表.这里也只讲与病毒加载有关的字段和关键字.
[windows]字段的load和run.
关键字load的注册表路径HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows,键名load.
关键字run的注册表路径同上,键名为run,正常情况这两个键并不存在或其值为空.

六.Wininit.ini
这个文件用于重启时修改或删除文件用的.有些正在运行中的文件是无法被修改或删除的,于是可以用这个文件的配制在下次开机时修改或删除(在这些文件没被加载前),修改或删除成功后,该文件消失,所以一般情况下是看不到这个文件的. 该文件的功能亦被集成到注册表中,注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\FileRenameOperations
类型为REG_MULTI_SZ
不能直接编辑该处的键及值,通常是通过API函数MoveFileEx来实现的.

wininit.ini的[rename]字段
关键字是一个文件名,值也是一个文件名,重启时,系统将用值的文件替换关键字的文件,并把值的文件删除.
如果关键字所指定的文件不存为,则实际上是将值所指定的文件重命名为关键字所指定的文件.
如果关键字为nul,则实际上是将值所指定的文件删除.
如:C:\WINDOWS\explorer.exe=C:\WINDOWS\TASKMAN.EXE
文件名必须是完整路径.

七.AUTOEXEC.BAT
不属于配制文件,而是一上批处理文件,但也常被病毒利用,正常情况下该文件没有任何内容,大小为0字节.
这个文件用于存放系统启动时自动执行的命令(一个特殊的批处理文件).如果发现该文件的内容为一可执行文件名,请一定要注意了.

八.CONFIG.SYS
虽然扩展名为sys,但他实际上是一个文本文件(可以用记事本来打开),正常情况下也是空的.如果该文件被改动,应引起注意,特别是device=文件名等这样的配制,系统启动时将加载指定的驱动文件.这个文件就相当可疑.

以上是能和病毒扯上一些关系的配制文件.在NT内核系统中,大多数配制已集成进注册表,但配制文件仍然有效.
左眼球 - 2009-5-19 10:41:00
作者:网络转载 来源:剑盟反病毒团队

一.一个特殊dll文件ws2_32.dll

在软件安装目录下新建一个文本文件,改名为ws2_32.dll,此时将导致该软件无法运行.
解释如下:ws2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序.程序运行时会自动调用ws2_32.dll文件,ws2_32.dll是个动态链接库文件位于系统文件夹中.Windows在查找动态链接库文件时会先在应用程序当前目录搜索,如果没有找到会搜索Windows所在目录;如果还是没有会搜索system32和system目录。一些病毒可能会利用此原理在杀毒软件目录中建立名为ws2_32.dll文件或文件夹,在杀毒软件看来这是程序运行需要的文件而调用,而这个文件又不具备系统ws2_32.dll文件的功能,所以杀毒软件等就无法运行了而提示:应用程序或DLL为无效的 windows映像,请再检测一遍您的安装盘,我随便测了一个程序

我现在拿一个程序做个试验…
找到一个程序,如我的ACD See,增加一个ws2_32.dll文件…
如:


删除ws2_32.dll就可以正常运行~~

二.一个特殊的程序rundll32.exe
这个文件的作用,从文件名应该就可以猜到了,用于运行32位的DLL文件,位于%systemroot%\system32\rundll32.exe
下面来看看这个命令的格式:
Rundll32.exe DLL文件名,DLL文件中的引出函数 引出函数的具体参数
这里说的DLL文件名其实也可以是exe文件名,引出函数的具体参数是可选的.

大家打开开始,运行对话框,复制下面一行的命令粘贴进去,然后点确定.先不说效果,自己操作下哈.
rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen C:\WINDOWS\Web\Wallpaper\Bliss.bmp
是不是被这么长的命令吓怕了,其实很简单,看看上面的格式,都能对上号吧
rundll32.exe这是命令名,可以不写扩展名.
C:\WINDOWS\system32\shimgvw.dll这个就是DLL文件名
ImageView_Fullscreen这个是前面这个DLL文件的引出函数,功能是最大化显示图片,注意它和前面的DLL文件名是用逗号分隔的.
C:\WINDOWS\Web\Wallpaper\Bliss.bmp引出函数的具体参数,这里就是所要打开的图片文件路径.

rundll32这个命令是相当复杂的,不要求大家记住所有DLL文件的引出函数(也不可能记住),但要知道它的格式.
来看个短一点的命令吧
rundll32.exe shell32.dll,Control_RunDLL desk.cpl
打开了桌面属性对话框.

说了这么多,好像和病毒没有关系?呵呵,关系很大,病毒可以通过这个命令来运行,配合注册表中的几个自启动位置...是不是很强大了,举个例子:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
键main,值rundll32.exe C:\progra~1\intern~1\use6.dll mymain
这里的C:\progra~1\intern~1\use6.dll就是病毒文件,很好地实现了开机自动运行,并且还看不到病毒的进程,因为它只是一个 DLL文件,但可以看到rundll32.exe进程,这个进程应当结束.打开控制面板中的一些项目时,也会出现这个进程,此时是正常的(刚刚打开桌面属性对话框时也会有这个进程啊).

三.文件关联
一种类型的文件与一个可以打开它的程序建立起一种依存关系,当双击该类型的文件时,系统会自动用已关联的程序来打开它.例如,默认情况下,.txt文件是用记事本来打开的,.jpg文件是用windows图片和传真查看器来打开的.当某种类型的文件未与任何程序关联时,双击它系统会弹出打开方式对话框.

修改文件关联的方法很多,这里大致介绍几种常用的.我以.jpg文件用记事本来打开为例.

1. 点击任意一张jpg图片属性,单击更改,出现打开方式对话框,选择记事本(也可以点击浏览找到%systemroot%\notepad.exe),确定即可.现在双击一下图片看看,出现的是记事本,但是显示乱码.现在改回来吧,只能通过选择windows图片和传真查看器改回来,无法通过浏览来改,其实也是可以的,浏览时,下面选择所有文件就行了,因为windows图片查看器并不是一个可执行文件而是一个动态链接库,文件位置是%systemroot%\system32\shimgvw.dll,当然dll文件是不能直接执行的,事实上它是由rundll32.exe来启动的,刚刚运行过那个很长的命令的话应该不会有太大的疑惑.

2.点击工具,文件夹选项,文件类型,找到JPG,单击更改,出现打开方式对话框,和刚才一样操作就行了,简单.点击下面的高级,出现编辑文件类型对话框,双击open(或者选中后点右边的编辑)
看下用于执行操作的应用程序.



值为rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1
和上面运行的那个命令很类似吧,区别只在于最后面是%1,而不是一个文件名.%1表示将选中的图片文件名作为参数传递给windows图片查看器,也就是说双击的时候,%1将被当前的文件名替换(在批处理中,%1代表命令行的第一个参数,).嘿嘿,你可以把%1换成某具体图片的路径试试,很爽吧,无论双击哪个图片,打开的都是同一个图片.(玩得差不多了记得改回来哦)

3.注册表(regedit),展开 HKEY_CLASSES_ROOT\jpegfile\shell\open\command,是不是在右边看到了和刚才的那一串"rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1"一模一样,这就是jpg文件的打开方式,看一下这个注册表路径吧
HKEY_CLASSES_ROOT\jpegfile\shell\open\command
HKEY_CLASSES_ROOT不多说,这下面的都是一些OLE信息,包括文件扩展名,文件类型,文件图标,关联的打开方式,以及分类标识(CLSID).
jpegfile某种文件类型,这里是jpg图片文件.
shell一般是固定的
open选中该类文件右键第一项所出现的文字(该项是黑体的),默认显示为打开,这里是预览.可以是其他名字,但这样将不保证它一定会出现在右键第一项,特别是有多种程序关联时.我做个示范,把open重命名为open1.
重命名前:


重命名后:


可能你的右键菜单没这么多选项,这里真正只与jpg文件关联的只有用ImageReady编辑,用Photoshop编辑,预览,打印这四个,对应注册表如图:


如何将预览放到右键第一个选项而又不以open为名,很简单,只要让它在注册表的位置排到另两个前面就可以了,注册表中的项是按字母顺序排列的,所以只要我的名字能比EdtIR8更靠前就行,比如以A开头的...
command当前一项是open时,它表示双击或右键选择第一项时所要执行的命令,只要有command的上一项,右键菜单都会出现一个选项而command表示选择这一项时所要执行的命令.
如果要将jpg用记事本打开,只要将rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1修改为notepad.exe %1即可,更好的写法应该是notepad.exe "%1",加上引号的目录是即使要打开的文件路径中包含空格,也可以打开.因为默认情况下,命令行的各参数间是以空格分隔的,如果文件路径中出现空格,空格前将不再认为是第一个参数,从而导致系统找不到指定文件等.但这里由于notepad的特殊性,不会出错的.

有兴趣的可以看看txt,exe,com,bat,vbs等文件的关联,如果病毒要修改文件关联,这几个是优先选择的.
其中exe的关联是比较特殊的,它的值为"%1" %*
这里的"%1"可以和上面一样理解,%*是指其他所有参数,这也是exe文件可以带参数运行的原因.

试试把它的值改成%1 %*,即去掉%1上的引号,很多程序仍然可以正常打开,有些却不行,原因是该exe文件路径中有空格,打开目录运行C:\Program Files\WinRAR\WinRAR.exe,结果如图:


病毒一般会直接把这个值改成病毒文件的路径,不带参数.此时当你双击exe文件时,运行的将是病毒,这种改法是最常见的.另一种改法是不直接修改exefile下面的项,而是这样修改:
新建一个项,名字任意,比如我取名为anti4,继续新建shell,command等项,将值改为病毒文件的路径.
然后,将HKEY_CLASSES_ROOT\.exe右边名称为默认的项的值改为anti4.
当你双击一个文件时,系统所做的工作是这样的:先判断文件的后缀,比如我双击的是一个exe文件,则系统会在HKEY_CLASSES_ROOT下面找名为.exe的项,读取它的值,比如它的值为anti4,那么系统再找名为anti4的项,再读取它下面shell\command的值,然后根据这里的命令打开.

刚刚是不是在我的右键菜单中看到了有个复制文件路径的命令,它是关联所有文件的,目的是为了自己使用方便,方法是这样的:
在 HKEY_CLASSES_ROOT\*\shell下新建一个项,名称任意,直接取名为"复制文件路径"好了,在它下面新建一名为command的项, 将它右边的值改成符合要求的命令,这个命令其实是一个程序文件,该程序的功能是读取命令行的第一个参数,并将该参数复制到系统剪贴板并退出,有能力的自己写一下这个程序,或者下载附件中的解压到某个路径下,command的值就改为这个程序的路径,后面加个半角空格,再加%1即可,比如d:\soft \system\copy.exe %1
这样只是关联了所有类型的文件,如果要关联文件夹,方法和上面一样的:
[HKEY_CLASSES_ROOT\Directory\shell\复制文件夹路径\command]默认=d:\soft\system\copy.exe %1
然后就是一些细节问题了,比如去掉第一个字下面的下划线,加个快捷键等.
[HKEY_CLASSES_RO/T\Directory\shell\复制文件夹路径]默认=复制文件夹路径(&C)

关联文件也可以到HKEY_CLASSES_ROOT\Folder\shell下去修改.
如果你要把记事本关联到所有文件,方法也是一样的,如果要关联某几种文件类型,就到特定的文件类型下修改即可.其他的东西大家可以自己探索下,比如修改某类文件的图标,不显示某类文件的扩展名等.

四.系统特殊文件夹
在我们的桌面上或其他地方有一些文件夹并不是真正的文件夹,而是一个OLE对象(组件类),比如我的电脑,控制面板等.系统使用一个叫做class id(CLSID)的一串16进制数字来标识它们(称为分类标识),注册表路径:HKEY_CLASSES_ROOT\CLSID
CLSID像居民身份证一样,是一个组件类的唯一标识.对于每个组件类,系统都分配一个唯一表示它的ID(IDentity),这个ID是根据当时的时间,机器地址等信息动态产生的,命名规则为{8-4-4-4-12},这里的数字表示16进制数的个数.
class id中的class在这里解释为对象,至于什么是对象,请看前面的课程.
比如我的文档的CLSID为450D8FBA-AD25-11D0-98A8-0800361B1103,使用时必须将CLSID用大括号括起来.
如果要修改某个的图标,只要修改HKEY_CLASSES_ROOT\CLSID\{xxxxx}\DefaultIcon的图标文件的路径.
大家先找到我的文档的CLSID,不要直接去找哈,用查找功能,不然会眼花的的.也不要试图去记住这串字符,我保证你是记不住的.我的文档图标的默认值为%SystemRoot%\system32\SHELL32.dll,-235.
InProcServer32这个项下的也是很重要的,它包含了线程模型(ThreadingModel),当你打开这个对象时,这里默认值处的DLL就会被加载,于是又给了病毒可乘之机.

附常用的CLSID:
我的文档:450D8FBA-AD25-11D0-98A8-0800361B1103
我的电脑:20D04FE0-3AEA-1069-A2D8-08002B30309D
网上邻居:208D2C60-3AEA-1069-A2D7-08002B30309D
回收站:645FF040-5081-101B-9F08-00AA002F954E
Internet Explorer:871C5380-42A0-1069-A2EA-08002B30309D
控制面板:21EC2020-3AEA-1069-A2DD-08002B30309D

五.勾子挂接启动
注册表位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
很多软件都会利用这个位置,病毒,安全软件等当然也会用.以达到随系统启动的目的,键名是一个CLSID,值为空.根据这个CLSID到 HKEY_CLASSES_ROOT\CLSID下去查找,找到后展开InPrOcservEr32,右边就可以看到对应的DLL文件了.如果是病毒文件,则要删除这两个地方的信息.举例如下:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks]
键名{288BD9BD-F0DC-46B1-81B5-2B61DF8077CE}值为空
[HKEY_CLASSES_ROOT\CLSID\{288BD9BD-F0DC-46B1-81B5-2B61DF8077CE}\InPrOcservEr32]
默认值为abc.dll
清理时需要删除上面的键名以及整个HKEY_CLASSES_ROOT\CLSID\{288BD9BD-F0DC-46B1-81B5-2B61DF8077CE}项,有时候不是删除,而是修改,主要看这个CLSID是本来就有的还是病毒创建的.
左眼球 - 2009-5-19 10:53:00
作者:网络转载 来源:剑盟反病毒团队 

今天的课程打算把所有启动位置讲完,以及一些特殊的启动方式,算是比较高级了,学完本课,与反病毒相关的基础也就差不多了,接下来的课程重在实践了,手工杀毒,日志分析等.

一,组件关联启动
上次讲到了勾子挂接启动ShellExecuteHooks,这次来讲讲组件关联启动,注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
名称任意,值为一CLSID,该CLSID是指向HKEY_CLASSES_ROOT\CLSID下面同名的对象(组件类)的,在 InProcServer32的右边可以看到关联的文件名(通常是DLL文件).系统启动时explorer.exe将自动加载这里的目标组件.这就是某些病毒将自己注入到explorer.exe的办法,多见于一些流氓软件.用了很多清理软件,但还是会弹出广告等,这时就要检查这个位置了,清理方法 ShellExecuteHooks是一样的,最后不要忘了删除关联的文件.

二,结束Winlogon.exe进程
以前我们在讲进程时曾经讲到过Winlogon.exe进程,它管理windows的登陆注销等,如果这个进程被结束,系统将不能正常软关机.也许你会说这个进程根本无法结束,或一结束就蓝屏死机等.用windows任务管理器当然是不行的,我用了冰刃(IceSword)来结束它,不要直接试图去结束这个进程,不然你会死得很惨,结束这个进程是需要技巧的,在此感谢菜新同学(cxwr,雷特反病毒小组成员之一)的指点,方法如下:
首先打开冰刃,点左边的进程.我用的冰刃是花花(FlowerCode)修改版的.(见附件)
冰刃的功能是十分强大的,看一下程序名称这一列,直接显示出了进程所对应的文件路径,其中两个进程的程序名称是特殊的,显示为NT OS Kernel,意为NT操作系统内核.

正式开始前请退出你的安全防护软件,以免引起蓝屏.
先结束所有非系统进程,由于冰刃不显示进程所属用户名,大家可以打开windows任务管理器对照,你可以用任务管理器来结束进程,也可以用冰刃来结束进程,用冰刃结束进程的方法为选要要结束的进程,右键选择结束进程即可.接着结束svchost.exe,services.exe等进程,当进程只剩下图中所示的几个时,就要注意了,一不小心就会死得很惨的.


现在除了任务管理器和冰刃外,还有五个进程,其中最后两个是系统内核进程,是不能被结束的,现在还在剩三个了,按顺序,必须先结束smss.exe,现在可以放心地结束Winlogon.exe了,好了,我们的目的也达到了.(如果你把任务管理器和冰刃关的话,系统中就只剩下三个进程了.).不过此时系统也做不了什么了,不能启动新的进程.(在结束Winlogon.exe前你仍然可以创建新进程,并恢复至正常状态,这需要你对服务非常地了解).如果此时你再结束csrss.exe的话,结果会蓝屏,这个进程是管理进程调度,物理内存与虚拟内存的使用调节等.现在只能按电源键关机了.
正由于 Winlogon.exe这个进程的特殊性及不容易被结束等特性,使得病毒DLL千方百计地注入这个进程,使得一般用户根本无法处理.在冰刃中选择这个进程,右键,模块信息,这里列出了所有加载的模块文件名,如果有病毒模块,可以选中它后点右边的卸徐,如果无法卸徐,可以点强制解除,但可能会引起 winlogon.exe进程崩溃而导致蓝屏.

三,Winlogon事件通知启动
当系统开始启动时,这个进程是比较早运行的,如果有事件通知Winlogon.exe,那么Winlogon.exe就是按接到的通知来处理事件,比如启动一个DLL等.即使在安全模式下,该DLL也会被加载,它的启动比服务更早.如果这个DLL是病毒文件的话...
下面来说说winlogon是如何接收事件通知的.
注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
它下面的每个项都包含一个处理winlogon在切换状态时发出事件的DLL,winlogon.exe会在启动时加载已经注册的DLL,并且会在系统状态切换时调用注册DLL的事件处理函数.
这里说的状态切换包括登陆,注销,关机,锁定桌面,启动屏保等.

项名是任意的,我们来分析它的键,及值.
DLLName设置发出事件的DLL文件名.
Asynchronous设置是否异步处理winlogon事件,默认值为0,表示同步处理.若设置为1,则为异步处理,此时winlogon.exe将启动一个新线程来处理相应事件.
Impersonate是否以登陆用户的权限来处理事件,默认为0.
Lock锁定桌面时发生的事.它的值为上面DLL文件中的导出函数,下面的也是同样道理.
Logoff注销事件
Logon登录事件
Shutdown关机事件
StartScreenSaver启动屏保事件
StartShell:启动explorer.exe时发生的事件
Startup系统开机事件。
StopScreenSaver停止屏保事件
Unlock解除桌面锁定事件
这个地方的加载希望能引起大家的重视.当某一事件发生时,也许病毒也偷偷地在运行了.一般需要关注的是系统开机事件及登陆事件,说到底,我们要关注的不是事件而是DLLName键的值,从而知道病毒文件路径.

四,任务调度启动
开启Task Scheduler服务后,该种启动方式即生效.它是随explorer.exe启动的共享计划任务.注册表位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler
正常情况下,该项下只有两个键,键名为一CLSID,值为描述性文字,可以为空.正常的两个键为:
{438755C2-A8BA-11D1-B96B-00A0C90312E1},Browseui 预加载程序,对应的DLL为%systemroot%\system32\browseui.dll
{8C7461EF-2B13-11d2-BE35-3078302C2030},组件类别缓存程序,对应文件也是%systemroot%\system32\browseui.dll

五,组件安装监控启动
注册表位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components
微软使用该处键值来确认安装的windows组件,在这里,我们可以看到所有安装组件的列表,同样是以CLSID形式出现的.最重要的一个键是 StubPath,它的值是一条命令,如果IsInstalled的值为0,则每次系统启动时都会执行这个命令,如果这个命令是一个木马文件的话...后果可想而知了,它的加载也是早于其他程序的,现在利用这种启动方式的木马或病毒还比较少,但以后应该会多起来,可能会新建一个项,可能是修改已有项的 StubPath值,也有可能是直接替换系统中的文件.

本人E文菜得很,如果上面的你无法理解,请看原文:
Monitoring of the Active Setup Registry Key
What is the Active Setup?
Why monitor this key?
Microsoft uses this key to setup installed Windows components.
You can see a list of the installed components under the key
HKLM\Software\Microsoft\Active Setup\Installed Components
You should launch RegEdit to view it.
As you can see, the registry key of each component has a list of values.
These values are used by Windows to identify a component.
One of these values, StubPath, is very important.
This value includes a command that Windows executes every time it starts if a value called "IsInstalled," is not set to 1 (binary value).
Active Setup is used by new Trojans to install them to the computer.
This is very dangerous because then Windows launches the Trojan before other programs ARE loaded.

六,屏幕保护启动
注册表位置:HKEY_CURRENT_USER\Control Panel\Desktop
键 SCRNSAVE.EXE,值为一SCR文件,如C:\WINDOWS\system32\logon.scr,大家可以在%systemroot% \system32目录下搜索所有扩展名为scr的文件.实际上它和exe文件一样,是一个可执行文件,文件关联为"%1" /S,双击即可立即启动屏幕保护程序.
该项目下一些键的作用:
SCRNSAVE.EXE指定屏幕保护程序的文件路径,默认值为C:\WINDOWS\system32\logon.scr,如果此处的值为一exe文件,应引起高度重视.
ScreenSaveActive如果该值为0,表示禁用屏幕保护.
ScreenSaverIsSecure如果该值为1,表示从屏保状态恢复过来时需要输入密码.
ScreenSaveTimeOut空闲多少时间后启动屏幕保护程序,单位为秒,可设置的范围为0~86400,如果设为0则表示不启动.

七,浏览器加载启动
这个有点特别,只有当启动浏览器时,才会被加载.
这些加载项一般是来自网络,还有一部分是来自捆绑软件,当然也有安全软件的插件.有的未验证的加载项其实也很好用,但是有的则不是了,可能会造成系统不稳定,或者是引起IE遇到问题需要关闭等.
如何来管理这些加载项:
在浏览器上点工具,Internet选项,程序,管理加载项.在这里可以启用或禁用某个加载项.要想完全删除还得靠注册表或第三方工具.
(注意:只有WIN XP SP2以上操作系统才有这个功能)


广义上的浏览器加载项分为好几种,包括ContextMenu(右键快捷菜单),BHO(浏览器辅助对象),Entension,ActiveX,Band,Button(按钮),ToolBar(工具条)等,下面一个个来详细讲下.

1,ContextMenu(右键快捷菜单),注册表路径:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
在这里的项会出现在浏览器右键菜单中,可以将不需要的删除,通常指向本地的一个网页.

2,BHO(浏览器辅助对象,Browser Helper Objects),注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\Explorer\Browser Helper Objects,这里又是一些CLSID.如果被病毒利用,往往很难清理干净.
比如我这里的第一个是 {00000000-12C9-4305-82F9-43058F20E8D2},利用查找功能,找到这个CLSID的位置 HKEY_CLASSES_ROOT\CLSID\{00000000-12C9-4305-82F9-43058F20E8D2},选中 InprocServer32,右边就可以看到真正加载的文件了,我这里的值为X:\Program Files\Tencent\QQDownload\QQIEHelper02.dll

3,ActiveX,当我们浏览到特定的网页时,浏览器自动下载插件并提示用户安装.ActiveX安装必须经过用户的同意及确认(会下载到%systemroot%\Downloaded Program Files目录,并注册).但也可以通过其他方式安装.
注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility
和BHO类似,也是一些CLSID,其下有一名为Compatibility的键,当它的值为400时表示禁用该ActiveX.
浏览器用久了,插件安装卸载的次数多了,这里很容易产生一些无效的CLSID,无法在HKEY_CLASSES_ROOT\CLSID下找对应的,这些是可以删除的.

4,ToolBar(工具条),注册表路径,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Toolbar,还是CLSID,不多讲...

八,hosts文件
大家都用过ping命令吧,没有的话现在看也来得及.
该命令用于检查网络是否能够连通,分析判定网络故障,该命令只有在安装了TCP/IP协议后才可以使用.Ping命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通.当网络出现故障的时候,可以用这个命令来预测故障和确定故障地点.命令成功只是说明当前主机与目的主机之间存在一条连通的路径.如果不成功,则考虑:网线是否连通,网卡设置是否正确,IP地址是否可用等.

打开CMD窗口(开始,运行,输入CMD),输入ping 127.0.0.1
回车后如图


图中红色标记的三个位置分别为发送的数据包数,接收到的数据包数,丢失的数据包数,127.0.0.1代表本机IP地址,最后一行表示数据包返回的速度,分别为最快,最慢,平均.

可能有的人不知道什么是IP地址,这里简单的解释一下,它是每个连接在Internet上的主机分配的一个32位地址(IPv6使用128位地址),4个字节,例如1110110010001110010100011011000000001,这就是本机IP地址,但是很难记,为了方便使用,每8位(一个字节)用点号分隔,并转化为大家都习惯的十进制,于是上面的IP地址就是127.0.0.1.

每台电脑可以有多个IP地址,多台电脑也可能只有一个IP地址(比如同一局域网内的外网IP地址都是相同的)
大家在浏览器地址栏中输入以下地址:http://220.181.37.55(可以不输入前面的http://,只要输入220.181.37.55就可以了,后面的也是一样的),打开的应该是百度吧,但是这种IP地址还是很难让人记住,于是又出现了域名,我们访问百度只要输入http://www.baidu.com就行了,这下好记多了.将某个域名关联到某个IP地址称为域名解析(由专门的DNS服务器负责解析).要想知道某个域名的IP地址,可以使用ping命令,如ping www.baidu.com

hosts文件的作用也是将IP地址与域名建立一种映射关系,我们在访问一个域名时,windows会首先检hosts文件中是否有映射关系,如果有,就直接使用这里的映射关系,如果没有,则向DNS服务器提出请求.也就是说Hosts的请求级别比DNS高.
hosts文件位于%systemroot%\system32\drivers\etc\hosts,请大家用记事本打开这个文件.
前几行文字都是以#号开头的,我们不必管它,这是注释符,系统忽略这一行中#号后面的内容.所以真正有用的第一行的内容应该是:
127.0.0.1      localhost
它的意思是将主机localhost与127.0.0.1建立映射关系.如果你的系统有web服务,那么就可以通过http://localhost这个地址来访问.如果没有这个服务,当然是打不开网页了.病毒常常会利用这个文件来访问一些恶意地址从而下载病毒或者屏蔽掉安全软件,反病毒网站.IP地址与域名之间可以用空格或TAB符来分隔.

我们来做个实验,将百度映射到google.在后面增加一行并保存:
203.208.35.101 www.baidu.com
关闭浏览器,重新打开,输入www.baidu.com,出现的不再是百度的页面,而是google的页面(如果出现乱码请刷新一下).(关闭浏览器重新打开的目的是清除hosts文件的缓存).如果被映射到一个病毒网站的话,嘿嘿.

如果要屏蔽掉百度,只要将上面一行改为127.0.0.1 www.baidu.com
这个功能主要是用于屏蔽恶意网址的.

还嫌百度域名过长输入麻烦?
还有招呢,通过输入bd(百度的拼音缩写)来访问百度,在hosts文件名增加一行:
220.181.37.55 bd
左眼球 - 2009-5-19 10:57:00
作者:网络转载 来源:剑盟反病毒团队

这一课,我只讲系统盘中的无用文件清理,在开始前,请先显示所有文件及文件夹.

1,系统盘根目录(%systemdrive%)
此目录下所有扩展名为tmp,_mp,log,gid,chk,old的文件都是没有什么用的,完全可以删除,有时还会有bak文件,这个就要看你的需要了,这是备份文件,比如我这里有个boot.bak,是boot.ini文件的备份.
%systemdrive%是环境变量,代表系统盘根目录,以前讲过的.

2,回收站(RECYCLER或Recycled)
这个大家应该明白,以前也讲过,RECYCLER/Recycled,是否要清理,就要看具体情况了,有些人喜欢在回收站中藏东西...
比如我的回收站中会存在一些病毒相关文件,

3,系统目录(%windir%或%systemroot%)
上面这两个环境变量的意思是一样的,比如在我的系统中,都是指c:\windows目录,这个目录中可以清除的内容和%systemdrive%是一样的,大家应该可以在这个目录中发现很多log文件,这些文件大部分是系统或软件运行的日志,其中有一类比较特殊.文件名以KB开头,后面是6个数字,如KB910437.log,这种文件是系统更新日志,当你安装了一个更新后,就会多出这样的一个文件来.

4,预读取目录(%systemroot%\Prefetch)
系统启动时,会预读取这里的内容,这个功能可以提高系统的性能,加快系统启动,文件读取的速度.
该目录下的文件扩展名为pf,这些包括了载入文件的详细信息和载入顺序,仔细观察这些文件名,就会发现,它的文件名结构是这样的:可执行文件名-8位大写的16进制数字.pf
为什么中间要有8位大写的16进制数字,系统中那么多程序,很有可能在不同的目录中存在同名的文件,这是为了分别开来,还有要提一下的是这串数字并不是像你想像中那样是随机的,而是根据文件路径,文件内容,加载者等算出来的.
照理说这些文件的存在对系统是有很大的好处的,为什么还要有理清一说呢?
原因是这样的,当你将一些应用程序删除或卸载后,这里与之对应的pf文件并没有消失,再举个例子,系统更新,软件升级后,由于这些程序的文件内容已经改变, 系统会生成另外一个pf文件,而以前的仅仅弃之不用,并没有删除,当你的系统用了很久之后,这里就会有一大堆的垃圾文件了,预读取时将花费一定的时间来忽略对它们的读取,所以当无用文件远远大于有用文件时,系统的性能反而会下降.另外,系统在创建一个新的pf文件时本身也要花费一定的时间的.
可能你会问怎么知道哪些是有用的,哪些是无用的,我的原则是全部删除,反正下次系统会自动重新创建.
如果你更新系统,安装软件等非常频繁,建议不要舍弃这个预读取功能,因为当你更新了后,每次都要产生一个新的pf文件,导致程序第一次启动时的速度变慢.
我们可以通过修改注册表来禁用这个功能
注册表位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters,修改EnablePrefetcher的值为0(默认为1),重启后生效.

5,系统临时目录(%windir%\temp)
有些程序运行时会创建一些临时文件,当程序退出后,这些文件会自动消失,但是有些程序由于一些特殊原因,无法删除,从而留下了所谓的垃圾文件,该目录中的文件可以全部删除.

6,用户临时目录(%userprofile%\Local Settings\Temp)
%userprofile%代表的是%systemdrive%\Documents and Settings\你的用户名,作用及垃圾产生的原因和系统临时目录是差不多的.
举个例子,当你在压缩包中运行某个程序时,WinRAR会将这个压缩包中的所有文件解压到这个临时目录中,再执行你指定的程序,程序退出后自动删除这些文件,如果WinRAR发现文件被修改了,它还会提示你是否同时更新压缩包内的文件.
很多程序运行时都会产生不少临时文件,如果自己无法删除,就会越来越多,当系统盘空间不足时,系统会尝试再次删除它们.
有些可能无法删除,原因是这些文件正在使用中,你可以退出程序后再删除.

7,cookie(%userprofile%\cookies)
Cookie 是当你浏览某网站时,网站存储在你机器上的一个小文本文件,它可能记录了你的用户ID,密码,浏览过的网页,停留的时间,个性化设置等信息,当你再次来到该网站时,网站通过读取Cookie,得知你的相关信息,从而可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID,密码就直接登录等等.
Cookie中的内容大多数经过了加密处理,因此在我们看来只是一些毫无意义的字母数字组合,只有网站服务器的CGI处理程序才知道它们真正的含义.但是一些别有用心的人可能会直接向网站提交cookie,而不必知道cookie加密前的内容,从而造成Cookie欺骗,他们就可以冒充受害人的身份,登陆网站,前提是冒充者要获得被冒充的人的Cookie文件内容.

你可以禁用Cookie的,但这样的后果是你可能无法登陆网站.(为什么说可能,而不是一定?下面会讲到)
下面我们来做几个实验.
先登陆论坛,在登陆页面,我们可以看到有个登陆有效期,分别是永久,一个月,一天,一小时,浏览器进程.
意思是说论坛将在你电脑上保存一个cookie文件,它的有效期就是你所选择的时间.超过时间后,即使cookie文件还存在,也是没有什么用的.浏览器进程指的是当你关闭网页后cookie就失效了.
默认选择的是一个月(如果你从首页登陆,用的就是一个月,在网吧的会员注意下,最好不要在首页直接登陆,而是到登陆页面去选择随浏览器进程,这样比较安全)

我选择了一个月,然后你关闭网页,甚至是重启电脑,再打开论坛时发现还是登陆状态的,这些就是cookie的作用了.
当你点击退出时,保存在你电脑上的cookie文件就会消失.(所以点退出与直接去删除相应的cookie文件的效果是一样的)
cookie文件名的格式为:当前用户名@网站域名[数字].txt
所以根据网站域名可以很容易找到相应网站的cookie文件.

可能你还会发现在这个目录中还有一个名为index.dat的文件,而且无法删除,提示正在使用.
它记录着通过浏览器访问过的网址,访问时间,历史记录等信息.实际上它是一个保存了cookie,历史记录和IE临时文件中所记录内容的副本,即使你在IE中把这些内容都清除了,但index.dat文件中的记录还是存在的.
可以用一些工具强行删除这个文件,如XDelBox.删除后系统会重新创建这个文件,但内容为空.

现在我禁用IE的cookie.方法是:
工具,Internet选项,隐私,将滑块移到最高点,也就是阻止所有cookie,确定.
然后,你就会发现,大多数论坛都无法登陆(显示登陆成功了,但跳转后还是未登陆状态的)
不要拿本站做尝试,雷特反病毒社区在你禁用cookie的情况下还是可以登陆的,此时网站将通过URL来传递相关信息.由此可见,保持登陆状态并不一定要使用cookie文件.为了能正常登陆其他论坛,请改回原来的设置(中或中高).

8,我最近的文档(%userprofile%\recent)
这里保存了你最近打开过的文档或文件夹的快捷方式.这些文件也属于垃圾文件,但它们并不会影响系统的性能.删除它们还可以保护自己的隐私.

9,Internet临时文件夹(%userprofile%\Local Settings\Temporary Internet Files)
在不混淆的情况下,一般也称为IE临时文件夹或IE缓存
当你打开一个内容很多的网页时,特别是该网页带有很多图片时,状态栏会显示正在下载***,剩余几个之类的信息,实际上这些文件都下载到了这个目录中,当你再次访问这个网页时,浏览器会搜索并检查这个目录中的相关文件,如果找到且内容一致时,就不必重新下载这些内容了,从而可以加快网页显示的速度.(如果这些内容并不位于该网站,在该网站只是有一个链接,那么这些内容还是会重新下载,即使完全相同.)
但是当这个目录中文件太多时,反而会降低性能,原因与上面第4条说到的Prefetch目录是很类似的.

你可以打开这个目录直接删除,也可以使用下面的方法.
小提示:打开这个目录可能会很卡,因为这个目录中的文件数目太多了.删除时也需要一定的时间.
工具,Internet选项,删除文件,确定.

这里说一下,cookie其实是保存在这个目录中的,而不是保存在%userprofile%\cookies
%userprofile%\cookies中的内容其实是Temporary Internet Files中相关文件的映射,无论哪个地方的cookie被删除了,另一个地方的也会同时消失.

10,Content.IE5(%userprofile%\Local Settings\Temporary Internet Files\Content.IE5)
先不要急着去找这个目录,看一下Internet临时文件夹的属性,刚刚应该都删除了吧,怎么还这么大?
原因就是Internet临时文件夹下还存在一些隐藏的文件,即使你已经显示了所有文件及文件夹,你也看不到它们,我们只能在运行(或地址栏)中输入上面括号内的路径才能打开这个目录,进入后会发现一些以8位随机字母或数字命名的文件夹,及desktop.ini和index.dat(这个文件和cookie目录中的index.dat文件的作用是类似的).这里面的文件夹有些可以直接打开,有些却不行,会提示"该页包含未知的潜在安全缺陷,是否继续?",点是后才能打开(查看该文件夹的属性时也会提示),这些文件夹全部可以删除.
有些人清理了所有的地方,但C盘的剩余空间却还是那么点,这时就要考虑这个文件夹了.我有个同学的这个目录大小为2.9G

11,Content.MSO(%userprofile%\Local Settings\Temporary Internet Files\Content.MSO)
这个目录和上面的类似,不多讲了,一般也不会很大,有些系统此目录可能是空的.

12,$NtUninstallKB******$(%windir%\$NtUninstallKB******$)
*号处的是数字,这些文件夹是隐藏的,每安装一个更新,就会有这样一个文件夹,并且还有一个KB******.log的文件,单个文件夹可能并不大,但是几百个加起来的话就会很大了.微软每个月都会发布10个左右适合你的更新,时间长了,越来越多,更新完后也没有删除,原因是这样的,你可以在增加删除程序中卸载这些更新,还可以重新安装,如果把这些文件夹删除了,那么以前安装的更新就无法卸载和再次安装了.不过一般来说我们是不会去卸载已安装的更新的,所以我们完全可以把它们删除.
我一般是更新完过几天再去删除的,以保证这些更新是没有问题的,如果更新后出现了问题,我还可以卸载它们.

13,系统文件备份目录(%windir%\dllcache)
大部分是动态链接库(.dll)和可执行文件(.exe),删不删就随你了.不过要讲一下的是windows文件保护机制.
有些文件对于系统的稳定运作是非常重要的,如果这些文件被不小心删了或替换了,就有可能造成系统的不稳定,甚至系统崩溃.虽然我们一般不会有意去删除或替换这些文件,但实际上装软件的时候,特别是一些版本老的软件的时候,覆盖一些共享的系统文件是常有的事.针对这一点,windows就有一个文件保护的后台服务,默认情况下,该服务一直处于启用状态,监视着所有受保护的系统文件,如果发现替换或移动受保护的系统文件企图,它能直接阻止.当然windows并不阻止所有这样的企图,它允许有windows数字签名文件替换现有文件,这样你的系统才可以更新和升级.
windows的文件保护机制是怎么知道受保护的系统文件是否被删除或替换成低版本的文件了呢?这就需要把受保护的系统文件备份下来以便进行对比,于是dllcache就诞生了.

大家可能会发现很多在%windir%\system32里的东西在dllcache里头都可以找到,像smss.exe之类的,很多人这时候就会以为是病毒,其实它们就是被保护的对像,当然也可能真的是病毒.我们可以作个试验.
打开%windir%\system32,将conime.exe删掉.不出几秒,你便可以看到这个东西又跑了回来.其实就是系统将dllcache里的conime.exe复制出来了.我们还可以将这个conime.exe改名,不久也可以看到有个conime.exe跑回来.有时候一些病毒也会把自己无耻地备份到这里,这样就不需要守护进程便可以使自己得到系统的保护,所以,杀毒时不要忘了到这个文件夹看下,免得做无用功.
当然,有时候这个文件保护机制也会给我们带来一点小麻烦,比如有的DIY发烧友想改掉登录界面,当把修改完后的logonui.exe放到%windir%\system32后却发现没有效果,原因就是没有事先将dllcache里的logonui.exe替换掉.

禁用文件保护机制
开始,运行,输入 gpedit.msc
本地计算机策略,计算机配置,管理模板,系统,找到"windows文件保护",在右窗口中双击"windows文件保护扫描",设置,选择已禁用,在这里你还可以设置文件保护的扫描频率以及指定高速缓存的位置.

不过我的建议是不要禁用,也不要全部删除,保留一些重要的文件.

14,System Volume Information
这个文件夹基本每个盘下都有,以前也讲过了,大家回过头再去看看就行了
湖水人 - 2009-5-19 13:20:00
该用户帖子内容已被屏蔽
龙小彤 - 2009-5-20 23:00:00
hao
7895632k - 2009-5-22 18:38:00
TrackingCookie.Doubeclick是什么病毒?
gpsmmmm - 2009-5-23 20:14:00
汗死!!
我的东西......
枫飘 - 2009-6-8 16:00:00
很不错的东西,刚好我的是联想的E23
叫我冲哥哥 - 2009-7-15 22:05:00
附件在哪啊
半天找不到啊
RingXing小狮子 - 2009-7-16 15:31:00
好长啊!慢慢看!
282680900 - 2009-7-17 16:58:00
讲的挺不错
都是我刚开始接触电脑学的一些东西
朋♂友 - 2009-7-20 15:38:00
感谢分享学习了
石坝拉姑 - 2009-8-4 9:29:00
bu cuo :kaka1: :kaka1: :kaka1:
hello_del - 2010-2-21 11:09:00
该用户帖子内容已被屏蔽
小棉花ZY - 2010-3-3 19:41:00
Content.IE5(%userprofile%\Local Settings\Temporary Internet Files\Content.IE5)这个很强大,原来可以清理出很多没用的东西,那万一删了$NtUninstallKB******$(%windir%\$NtUninstallKB******$),后来发现要卸载更新的怎么办了?
WangAnwu - 2010-3-7 20:07:00
不错,内容详细,谢谢分享。:kaka1:
筠林碧湫 - 2010-3-7 21:27:00
很实用 尤其是新手能解决很多疑惑 但是感觉课程内容设置有点乱
njuptzc - 2011-1-18 22:23:00
建议楼主打包,下载下来学习学习
nocrack - 2011-3-17 19:24:00
讲的挺实用。。收藏备用
悟修 - 2011-5-16 10:38:00
您老东西真多呀???
48694869 - 2011-5-16 12:23:00
慢慢看
deng520 - 2011-7-3 23:28:00
hehe 虽然我刚来 不过还是会努力地学习的
12
查看完整版本: 反病毒教程(基础篇)第1课~第10课