百度空间 | 百度首页 
 
查看文章
 
Windows 中的启动项
2007-01-25 15:48
转自http://hi.baidu.com/umu618/blog/item/eecd3aadcaa9f9094b36d6e4.html
本篇比较全面地总结一下 Windows 里可以启动程序的地方,手动查毒的时候可以参考!
 
1、古老的 BAT 和 SYS
  从 Win16 和 Win9X 时代遗留下来的,%BOOTDRV%\Autoexec.bat、%windir%\WinStart.bat、%windir%\DosStart.bat,没见过不稀奇,什么意思可以体会出来,不解释了。%BOOTDRV%\Config.sys 装载 16 位设备驱动用的,最常见的是 DOS 下要用光驱,都是在这个文件配制的。
 
2、古老的 INI
  从 Win16 时代遗留下来的,%windir%\Win.ini(load\run)、%windir%\System.ini(shell)。
 
3、常规的“启动”
  开始菜单-程序里那个,注意隐藏、系统属性的文件不会显示在菜单里。而且这个项是多用户的,也就是说这里显示的是“All Users”和当前用户的“启动”目录。一般系统装在 C 盘的话就是“C:\Documents and Settings\All Users\「开始」菜单\程序\启动”。检查这个启动项的时候,应该把所有用户都查看一下,包括 Default User 的。不过这些启动文件夹,是可以该位置的,它们都是由注册表决定的。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellFolders 下的 Common Startup,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders 和 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders 下的 Startup。
 
4、注册表中专门的“启动”
  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,对当前用户有效;  HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run,对默认用户有效,比如匿名用户、SYSTEM;  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,对本机所有用户有效。
 
5、注册表中专门用来安装程序的“启动”
  把上面的 Run 换成 RunOnce、RunOnceEx,也就是只运行一次,运行后系统就把这个值删除。这是给安装、更新程序用的,只需要运行一次。WinNT 系统可以用gpedit.msc 把这个项设置为忽略,在“计算机配制-管理模板-系统-登录”。
 
6、注册表中用来运行系统服务的“启动”
  把3的 Run 换成 RunServices。这个在 Win98 下据说是把一般的程序当系统服务来运行,可以不出现在任务列表里,我试过把屏保程序放这里启动,结果出现的是屏保程序的设置界面,在 WinNT 下我就没用过这个项了。同理,还有 RunServicesOnce。
 
7、注册表中册组策略用的“启动”  
   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run,这个项比较少人知道。
 
8、注册表中对 Win.ini 和 System.ini 的替代Win.ini 的 load 和 run 对应 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows 下的 load 和 run。System.ini 的 shell 对应
   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 下的 Shell,另外这个下面还有 UIHost、userinit、VmApplet 也都可以启动程序。NT 有用到一个映射,可以研究一下
   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping 下的 system.ini 和 win.ini 两个子键。
 
9、注册表中全局 DLL “启动”
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows 下的 AppInit_DLLs。
 
10、Windows NT 开关机脚本
  %windir%\system32\GroupPolicy\Machine\Scripts 下有两个目录,Startup 存放开机脚本,Shutdown 存放关机脚本。这个要配合注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\windows\System\Scripts,下面有 Startup、Shutdown 两个子键,再下面会有数字命名的键,对着研究就知道了。
 
11、Windows NT 系统服务
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下。
 
12、文件关联
  HKEY_CLASSES_ROOT 下,以前的冰河关联了 .txt 文件,如果没注意,杀了一个后,双击 .txt 文件,又中了。
 
13、CMD AutoRun(很少人知道)
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor 下的 AutoRun,在运行 cmd.exe 的时候,这里的命令会被执行。如果我们在这里写上 exit,则 cmd 一出现马上又关闭,应该用 cmd /d 来避免。建议如果是通过快捷方式运行的应该加上 /d 的参数,如果是通过“运行”运行的应该多打一下“ /d”,这样可以减少危险。
 
14、根目录下的 AutoRun.inf
  在这个文件里可以定义驱动器的图标和右键菜单,还有双击默认执行的命令。不过可以关闭的,把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer 下的 NoDriveTypeAutoRun 设置为 DWORD:ff 整个世界就清净了。
 
15、其他软件自定义的启动项
  比如 OFFICE 的宏就可以在启动 Word 的时候执行,宏代码可以调用外部程序;QQ装皮肤用的是一个 .VBS 脚本程序……
 
16、驱动
  和 Win32 系统服务一样是在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下,不过 Type = 1(服务一般是 20)。而且文件一般都放在 C:\WINDOWS\system32\drivers。驱动运行在 Ring0 的,服务虽然是 SYSTEM 身份运行,不过是在 Ring3,所以还是不可以直接访问硬件。
 
17、GINA DLL
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 下的 GinaDLL,这个如果存在,一般是 Gina 木马,或者是一些指纹、虹膜验证的程序,比如是 IBM 笔记本有见过带指纹验证的,省去输入登录密码的麻烦。

类别:Windows | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu