当前位置:毕业生轻松求职网求职就业电脑培训学习操作系统windowsxp特殊注册表键值AppInit_Dlls
特殊注册表键值AppInit_Dlls

特殊注册表键值AppInit_Dlls

09-04 01:57:51  浏览次数:102次  栏目:windowsxp
标签:windowsxp操作系统知识,windowsxp使用教程,http://www.qiuzhi56.com 特殊注册表键值AppInit_Dlls,http://www.qiuzhi56.com

假如 你对计算机安全有所明白 ,那么各种各样的注册表启动项应该会有所明白 ,即日 我会细述一个很著名的启动项:AppInit_Dlls键值。

AppInit_Dlls键值位于注册表 HKLM\Microsoft\Windows NT\CurrentVersion\Windows下面,相对于其他的注册表启动项来说,这个键值的特殊之处在于任何运用 到User32.dll 的EXE、DLL、OCX等类型的PE文件都会读取这个地点 ,并且根据约定的规范将这个键值下指向的DLL文件实行 加载,加载的方式是调用 LoadLibrary。

验证要领 有许多 ,最基本 想到的就是运用 调试器,在LoadLibrary调用的时刻 下断点,你会发觉 User32.DLL读取了这个键值并且运用 了LoadLibrary去调用这个键值指向的DLL文件。一个更好的要领 就是看看 KB197571 的推选 了。

AppInit_Dlls的键值是一个特别 危险的键值,从某种程度上来说,这是一个Windows最基本 被人使用 的漏洞,因为只要有任何的恶意软件在这里实行 了修改,那么就意味着任何运用 到User32.DLL的进程都会被AppInit_DLLs指向的DLL所注入。因为进程内部的DLL是共享整个进程空间的,因此意味着进程里面的DLL是能够 控制整个进程的行为的。由于User32.DLL是一个特别 特别 通用的DLL,它提供了大多数Win32用户界面、消息有关 的功能,只有极少数的程序不会运用 User32.DLL,因此一旦有恶意软件修改了AppInit_Dlls键值,那么整个系统都有可能处于特别 危险的状态。

众所周知,Windows服务程序的启动时机是能够 特别 早的,往往在用户登录之前就完成启动了,而这个时刻 最多见 的Run键值还不必须 被处理完,并且 Windows服务程序拥有相当高的权限(默认是Local System,能够 对系统里面所有的资源实行 操作),因此假如 一个恶意软件被加载到Windows服务里面,那么是会特别 危险的。前文提到,任何进程运用 了User32.DLL,都会对AppInit_Dlls键值指向的DLL实行 加载,假如 是一个Windows服务程序,也不例外!

由于AppInit_Dlls是一种系统全局性的Hook(system-wide hook),要规避此类的Hook的确很难处 ,虽然运用 驱动程序实行 保卫 能够规避此类疑问 ,但也不是非要运用 驱动程序实行 处理的。前文说过,只有当运用 到User32.DLL这个模块的时刻 才会触发读取AppInit_Dlls指向的DLL,假如 不运用 User32.DLL,那么AppInit_Dlls是不会被运用 到的。但是要让一个程序不运用 User32.DLL会变得特别 难处 (命令行窗口没有运用 User32.DLL),因为任何的窗口、消息都和这个模块有关 ,为了保证有良好的用户体验,100%的窗口程序都和这个模块有关 。从开发角度来说,最好的一种处理 方法 就是将程序功能逻辑和界面逻辑完全分离,功能逻辑模块负责功能,界面逻辑模块负责界面显示,2者之间采用IPC机制实行 交互,功能逻辑模块不依靠User32.DLL,,并且 作为独立进程实行 处理,这样就能够 规避AppInit_Dlls造成的Hook了。


www.qiuzhi56.com类似的Windows安全有关 的缺陷点本来 还有许多 的,这些缺陷点的来源是为了保证向下的兼容性。相信MIcrosoft已经发觉 并正在修补这些地点 ,从Windows Vista 上能够 看到,AppInit_Dlls的键值在Windows Vista 上是不起作用的,因此在Windows Vista 里面,这个键值已经被抛弃了(改用另外一个键值执行类似的功能,但是添加 了基于UAC的安全防护)。


,特殊注册表键值AppInit_Dlls
《特殊注册表键值AppInit_Dlls》相关文章

tag: windowsxp,windowsxp操作系统知识,windowsxp使用教程,电脑培训学习 - 操作系统 - windowsxp