文档库 最新最全的文档下载
当前位置:文档库 › 详谈注册表中的windows启动项

详谈注册表中的windows启动项

详谈注册表中的windows启动项(上)
//===============================
Xisat@ 2008-04-03 转载请保留作者信息,感谢
//==================================
这个问题已经被讨论过很多次了,网上也有许多关于这方面的好文章,但大多都只列举了这些项目,并没有实际的解释.
xisat在前人面前班门弄斧
也期盼自己能有所提高
注:本文涉及的启动项均按注册表键分类说明,排序不分先后
1.
HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\StartupPrograms

remote winstation driver(rdpwd.sys) 环境启动的执行文件
当客户端与终端服务器之间有文件数据传输请求的时候会启动该键值下的执行文件
常见值为
rdpclipRDP Clip Monitor Microsoft Corporation c:\windows\system32\rdpclip.exe
监视终端服务器和客户端的远程文件复制粘贴的请求

2.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

用户登录进windows之后启动的执行文件
常见值为
C:\WINDOWS\system32\userinit.exe Userinit Logon Application Microsoft Corporation c:\windows\system32\userinit.exe
用来完成初始化用户环境等一系列的系统过程
该键值可接受多个执行文件,如下
C:\windows\system32\userinit.exe,c:\windows\xx.exe

3.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell

登录后执行的windows shell文件
常见值
explorer.exe
explorer可以用来调用其它可执行文件
该键值可被修改为 如
"Explorer.exe %WINDIR%\System32\drivers\xx.exe"

4.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run

最普通的启动项,没什么太多好介绍。安全模式下被忽略,除非该键值有*前缀

5.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

运行一次即删除。如果该键值加入 !前缀,则在执行文件结束后删除自身键值,否则,文件被执行时即删除自身键值。安全模式下被忽略,该键值下的所有启动必须在 4. 前完成

6.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices

作为服务启动,登录前即可启动,该键值下的所有启动必须在 5. 前完成

7.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

作为服务启动一次,登录前即可启动,该键值下的所有启动必须在 5. 前完成

8.
HKLM\SOFTWARE\Classes\Protocols\Handler

本机注册的internet explorer通信协议,该键值下已注册的COM组件可被internet explorer调用
常见值
urlmon.dll mshtml.dll wiascr.dll等,视用户环境不同有所差异

9.
HKLM\SOFTWARE\Classes\Protocols\Filter

internet explorer通信协议

协议筛选组件
常见值
urlmon.dll shell32.dll 等,视用户环境不同有所差异

10.
HKCU\SOFTWARE\Microsoft\Internet Explorer\Desktop\Components

internet explorer 桌面组件,这里可以通过设置SubscribedURL等来设置ie桌面组件的开始页

11.
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components

Active Setup 当访问包含active setup技术的公司页面时,可用来对授信的软件进行自动升级。
如果将 IsInstalled 设置为0 可被利用来在windows登录时自启动
常见值
NetMeeting 3.01 c:\windows\system32\advpack.dll
通讯簿 6 c:\program files\outlook express\setup50.exe
Themes Setup c:\windows\system32\regsvr32.exe
等,视用户环境不同有所差异

12.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler

随explorer启动的共享计划任务
常见值
Browseui 预加载程序 c:\windows\system32\browseui.dll
组件类别缓存程序 c:\windows\system32\browseui.dll

13.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad

以注册的COM组件形式随explorer启动的对象,加载在能对explorer界面进行人为干涉之前
常见值
PostBootReminder c:\windows\system32\shell32.dll
SysTray c:\windows\system32\stobject.dll


14.
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks

explorer执行挂钩,explorer得到指定消息时可将该注册的组件注入,explorer正常情况好像只会挂载WH_KEYBOARD 和 WH_MOUSE,是不是通过这个注入的,有待考证
常见值
URL 执行挂钩 c:\windows\system32\shell32.dll


########################################################
详谈注册表中windows启动项(中)
//===============================
Xisat@ 2008-04-05 转载请保留作者信息,感谢
//==================================
这个问题已经被讨论过很多次了,网上也有许多关于这方面的好文章,这里只是在前人的基础上做些解说。
也期盼自己能有所提高

注:本文涉及的启动项均按注册表键分类说明,排序不分先后
... ...

15.
HKCU\Software\Classes\*\ShellEx\ContextMenuHandlers
HKLM\Software\Classes\*\ShellEx\ContextMenuHandlers

扩展的文件右键菜单选项组件,该键下所有注册的组件将被加载到explorer.exe中
常见值
WinRAR c:\program files\winrar\rarext.dll
附到「开始」菜单 c:\windows\system32\shell32.dll
等,视用户环境不同有所差异

16.
HKLM\Software\Classes\AllFileSystemObjects\ShellEx\ContextMenuHandlers

所有文件和文件夹右键菜单选项组件,该键下所有注册的组件将被加载到explorer.exe中
常见值
Send To c:\windows\system32\shell32.dll

17.
HKLM\Software\Classes\Folder\ShellEx\ContextMenuHandlers
HKLM\Software\Classes\Directory\ShellEx\ContextMenuHandlers

文件夹右键菜单选项组件,该键下所有注册的组件将

被加载到explorer.exe中
常见值
WinRAR c:\program files\winrar\rarext.dll

18.
HKLM\Software\Classes\Directory\Background\ShellEx\ContextMenuHandlers

桌面及文件夹空白处右键菜单选项组件,该键下所有注册的组件将被加载到explorer.exe中
常见值
New c:\windows\system32\shell32.dll

19.
HKLM\Software\Classes\Folder\Shellex\ColumnHandlers

explorer的列处理组件,使explorer可以打开文件并提取可选的列信息,该键下所有注册的组件将被加载到

explorer.exe中
常见值
{24F14F01-7B1C-11d1-838f-0000F80461CF} c:\windows\system32\shell32.dll
等,视用户环境不同有所差异

20.
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

为桌面图标提供覆盖图标的组件接口,该键下所有注册的组件将被加载到explorer.exe中
常见值
Offline c:\windows\system32\cscui.dll

21.
HKLM\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved

审核的explorer Shell扩展组件,该键下所有注册的组件将被加载到explorer.exe中
常见值
shell扩展组件类别比较多,扩展组件可以为windows shell提供各种不同的扩展功能,比如xp的zip功能

zipfldr.dll,以后有时间单独说明,这里不再列举了。需要注意的是并不是所有审核的组件都常驻explorer。

22.
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects

大名鼎鼎的BHO,为IE提供不同的扩展功能,大多第三方的IE扩展功能都是建立于此,该键下所有注册的组件

将被加载到internet explorer中
常见值
视用户环境不同有所差异

23.
HKCU\Software\Microsoft\Internet Explorer\UrlSearchHooks

USH 资源搜索钩子,为IE提供未知地址或者协议解析的接口对象,该键下所有注册的组件将被加载到internet

explorer中
常见值
Microsoft Url Search Hook c:\windows\system32\ieframe.dll

24.
HKLM\Software\Microsoft\Internet Explorer\Extensions

IE扩展按钮,该键下所有注册的组件将被加载到internet explorer中
常见值
视用户环境不同有所差异

####################################################
详谈注册表中的windows启动项(下)

25.
HKLM\System\CurrentControlSet\Services

此分支以下键大体可分两种类型
a. 系统服务的注册表项,对应services.msc中的内容,Type取值如下
//===========winnt.h
#define SERVICE_WIN32_OWN_PROCESS 0x00000010
#define SERVICE_WIN32_SHARE_PROCESS 0x00000020
#define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS | \
SERVICE_WIN32_SHARE_PROCESS)

#define SERVICE_INTERACTIVE_PROCESS 0x00000100

#define SERVICE_TYPE_ALL (SERVICE_WIN32 | \
SERVICE_ADAPTER | \
SERVICE_DRIVER | \

SERVICE_INTERACTIVE_PROCESS)
//=================
常见值
参见有关系统服务的文章,网上已经说明很全面了,这里不赘述了
b. 核心驱动的注册表项,Type取值如下
//=============winnt.h
#define SERVICE_KERNEL_DRIVER 0x00000001
#define SERVICE_FILE_SYSTEM_DRIVER 0x00000002
#define SERVICE_ADAPTER 0x00000004
#define SERVICE_RECOGNIZER_DRIVER 0x00000008

#define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER | \
SERVICE_FILE_SYSTEM_DRIVER | \
SERVICE_RECOGNIZER_DRIVER)
//=============
常见值
视用户环境不同有所差异。

26.
HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute

该键对应的是一个Native Applications(原生应用程序)。NT系统启动到驱动加载之间的时间范围内,页面

调度开启后,smss.exe挂起正在获取用户模式环境过程并且在没有其他程序活动的前提下启动该Native

Applications
常见值
autocheck autochk * c:\windows\system32\autochk.exe
更详细的smss初始化过程,请参见附录一

27.
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

映像劫持的注册表项,请参见有关于映像劫持的专业文档,这里不再赘述

28.
HKLM\System\CurrentControlSet\Control\Session Manager\KnownDlls

在smss初始化过程中,在smss创建附加的页面文件之前打开的已知dll,构建windows API的内存基础
更详细的smss初始化过程,请参见附录一

29.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UIHost

windows登录界面程序路径(Windows Logon UI)
常见值
logonui.exe c:\windows\system32\logonui.exe

30.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify

事件触发的启动项,当winlogon通知一个已知事件时,windows将从这个键下的所有子项中查找对应事件的dll

项并加载它(winlogon进程空间)。这些已知事件包括logon, logoff, startup, shutdown,

startscreensaver,stopscreensaver.
常见值
crypt32chain c:\windows\system32\crypt32.dll
cryptnet c:\windows\system32\cryptnet.dll


31.
HKCU\Control Panel\Desktop\Scrnsave.exe
屏幕保护程序
常见值
C:\WINDOWS\system32\logon.scr c:\windows\system32\logon.scr

32.
HKLM\System\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9

SPI链的注册表项.SPI意指服务提供者接口(Service Provider Interface)。在Winsock 2中增加了对更多传输

协议的支持。Winsock 2不仅提供了一个供应用程序访问网络服务的Windows socket应用程序编程接口(API)

,还包含了由传输服务提供者和名字解析服务提供者实现的Winsock服务提供者接口也就是SPI。
常见值
MSAFD NetBIOS [\Device\NetBT_Tcpip_{0EC42D95-D229-49EF-8EF2-6E7611B58AA2}] DATAGRAM 7

c

:\windows\system32\mswsock.dll

33.
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors

打印监控器的接口dll项,在调用打印程序时注入相应进程
常见值
Local Port c:\windows\system32\localspl.dll
Standard TCP/IP Port c:\windows\system32\tcpmon.dll


34.
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SecurityProviders

提供通用安全服务程序接口(SSPI)的Dll名称,应用程序调用此接口时,该DLL被加载
常见值
schannel.dll c:\windows\system32\schannel.dll


35.
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Authentication Packages

LSA验证包,分析验证登录数据并处理登录会话 GINA加载
常见值
msv1_0 c:\windows\system32\msv1_0.dll

36.
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages

LSA通知包,当密码设置或改变时加载(取自Windows Server 2003 Resource Kit Registry Reference 我还不

确认是否只有在这个条件下才发出通知)
常见值
scecli Microsoft Corporation c:\windows\system32\scecli.dll 用来获取所有客户机提交更改的组策



37.
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages

LSA安全包,执行安全协议的软件,包含SSP Dll或者SSP Dll/验证包 Dll

常见值
kerberos c:\windows\system32\kerberos.dll
msv1_0 c:\windows\system32\msv1_0.dll
schannel c:\windows\system32\schannel.dll
wdigest c:\windows\system32\wdigest.dll


38.
HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order

使用Microsoft network-independent APIs的网络供应者列表
常见值
LanmanWorkstation c:\windows\system32\ntlanman.dll
RDPNP c:\windows\system32\drprov.dll
WebClient c:\windows\system32\davclnt.dll

39.
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

伴随user32.dll载入进程的Dll列表

//=========================================================================================
WaitForMoreObject(new_event,INFINITE)
Update()
//=========================================================================================

Xisat@ 2008-04-06 转载请保留作者信息,感谢
//==================================

后注:
(A)本文只提供一个功能指向性的说明,并不包含任何关于该功能的操作建议
(B)不确定以上说明覆盖所有关于注册表中的启动项
(C)不包括其他方式的启动说明,如system.ini配置
(D)不确定说明中的注册表项可以应用于所有版本的windows操作系统,这里以Windows XP ?? SP2为基准

附录一:

smss主线程初始化过程 摘录

1、创建 LPC 端口对象( \SmApiPort )和两个等待客户请求的线程。客户请求包括装载一个新的子系统或者创

建一个会话等。

2、为 MS-DOS 设备名,如 COM1 和 LPT1 定义符号链接。

3、如果安装了终端服务(Terminal Services),在对象管理器的名字空间创建 \Sessions 目录。



4、运行 HKLM\SYSTEM\CurrentControlSet\ Control\Session Manager\BootExecute 定义的程序,典型的是

运行 Autochk (Chkdsk在引导其间的版本)。

5、按照 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations 的指令

,进行延迟文件改名操作。挂起文件删除在 PendingFileRenameOperations2 。

6、打开已知的 DLL 。

7、创建另外的分页文件。

8、初始化注册表。配置管理器刷新注册表, 为HKLM\SAM, HKLM\SECURITY, 和 HKLM\SOFTWARE 关键字装载注

册文件。HKLM\SYSTEM\ CurrentControlSet\Control\hivelist 在硬盘上搜索注册表文件,配置管理器在

\Winnt\System32\Config 寻找。

9、创建系统环境变量。

10、装载Win32子系统内核模式部分(Win32k.sys)。Smss 在

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager 下寻找 Win32k.sys 和其它要装载组件的路径,

确定它们的位置。Win32k.sys 中的初始化代码使用视频驱动程序,屏幕的分辨率转换到缺省概貌文件定义的

值。因此,屏幕从引导视频驱动程序使用的VGA模式转到系统选择的缺省的分辨率。

11、启动子系统进程,包括 Csrss 。

12、启动登陆进程 (Winlogon) 。

13、为调试事件信息创建LPC口(DbgSsApiPort 和 DbgUiApiPort),并创建监听这些口的线程。


本文来自CSDN博客,转载请标明出处:https://www.wendangku.net/doc/4a9766601.html,/xisat/archive/2009/02/10/3872876.aspx

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell]

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts]

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts] 

相关文档
相关文档 最新文档