告别加载dll 出错开机加载项大揭秘
提到开机加载(load)项,大家不要以为就是系统启动(run)项。最简单的例子是,杀毒软件或者用户手动删除病毒文件后,注册表中的自动加载信息仍在,登陆系统时就会提示“加载*dll出错,系统找不到指定的模块”,这些dll就是病毒寄生在系统进程之下的加载项。
出错开机加载项大揭秘">
加载dll出错
病毒本身被阻止运行,却“挟系统以令用户”,辗转藏在系统进程后面继续狐假虎威,大行其道;它们被发现并删除后,下次系统登陆、启动服务、初始化用户配置、启动外壳explorer.exe时,依然会按注册表的指示运行rundll32.exe调用这些加载项,这时系统找不到文件实体,就会提示加载失败。虽然不影响使用,但那“嗡”的一声,有如晴天霹雳,让人一开机就憋得慌!点击确定后也一直如坐针毡,总感觉自己中毒了。
其实,只要在注册表中搜索这个dll删掉,一般就能就地解决。问题是,很多dll在注册表中根本搜索不到,但开机时它就是要弹框!别慌,只要去注册表中如下固定位置扫荡一遍,疏而不漏,总能找到蛛丝马迹。以下位置最前四字母均为首字母缩写,在注册表利器Registry
Workshop的地址栏中通用,可直接粘贴回车转到,并加入收藏,收藏还可分类哦~Let's Go!
(1)WinLoad
HKCU\Software\Microsoft\Windows
NT\CurrentVersion\Windows\load
出错开机加载项大揭秘">
Windows_load
如图,这项原本不存在,或者默认为空。如果病毒将自己的dll添加到这里,可想而知系统启动时就会自动加载它。
(2)Notify
HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon\Notify
出错开机加载项大揭秘">
Winlogon_notify
这里是windows登陆“通知”,图中的项都是正常项。以前Windows
正版增值计划通知(WGA)提示Windows不是正版,就是通过wgalogon.dll在这里添加了一个项,登陆时通知调用WgaTray.exe,在托盘弹出提示的。如果病毒也在这里嵌入一个“通知”,开机时当然会有所表现并有所动作。
(3)Userinit
HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon\Userinit
出错开机加载项大揭秘">
Winlogon_Userinit
当“欢迎使用”或“正在加载个人配置”的窗口飘过后,我们打开任务管理器,可以看到这个Userinit.exe进程逗留了很久方去,它就是用户个人配置初始化程序。其默认值是C:\WINDOWS\system32\userinit.exe,(带英文半角逗号),如果这项被修改,加载个人配置时就会难产弹错;如果被改成病毒程序,后果不堪设想。
告别加载dll 出错开机加载项大揭秘的更多相关文章
- Delphi静态加载DLL和动态加载DLL示例
下面以Delphi调用触摸屏动态库xtkutility.dll为例子,说明如何静态加载DLL和动态加载DLL. 直接上代码. 1.静态加载示例 unit Unit1; interface uses W ...
- vc静态加载dll和动态加载dll
如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头文件中 #pragma comment(lib, &quo ...
- SharpSvn 调用在运行时提示加载程序集出错,或有依赖项
策略后引用: SharpSvn, Version=1.8009.3299.43, Culture=neutral, PublicKeyToken=d729672594885a28日志: 尝试下载新的 ...
- C# 利用反射动态加载dll
笔者遇到的一个问题,dll文件在客户端可以加载成功,在web端引用程序报错.解决方法:利用反射动态加载dll 头部引用加: using System.Reflection; 主要代码: Assembl ...
- Linux开机加载过程
2015-01-06 10:29:13 目录 1 开机加载简介 2 常规加载流程 2.1 加载BIOS 2.2 读取MBR 2.3 boot loader 2.4 加载内核 2.5 init依据i ...
- C#使用SQLite出错:无法加载 DLL“SQLite.Interop.dll”,找不到指定的模块
在SQLite官方下载了System.Data.SQLite,编写如下测试代码: 复制内容到剪贴板 程序代码 using (SQLiteConnection conn = new SQLiteConn ...
- C# 实现动态加载DLL插件 及HRESULT:0x80131047处理
本代码实现DLL的动态加载, 类似PS里的滤镜插件! 1. 建立一个接口项目类库,此处名称为:Test.IPlugin using System; namespace Test.IPlugin { p ...
- 无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
SQLite部署-无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块 近期刚使用SQLite,主要引用的是System.Data.SQLite.dll这个dll,在部署到测试 ...
- 加载dll过程中assembly失败
错误现象: 进行插件读取时出现错误:“尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理.此发行版的 .NET Framework 默认情况下 ...
随机推荐
- Django开发BUG汇总
使用版本知悉 limengjiedeMacBook-Pro:~ limengjie$ python --version Python :: Anaconda, Inc. limengjiedeMacB ...
- 谨慎修改Oracle数据库字符集(UTF8<->ZHS16GBK)
Preface Today,I'm gonna say something what is related with the character set in Oracle datab ...
- redhat5本地源NBD驱动安装
1.将镜像挂载到本机上 1)将系统ISO镜像放到自己电脑/root下 lsb_release -a 查看系统类型 2)在(/)目录下,建立yum目录 mkdir /root/yum 3 ...
- http请求常用的状态码
常见的http请求响应的状态码 一些常见的状态码为: 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状 ...
- 【读书笔记 - Effective Java】02. 遇到多个构造器参数时要考虑用构建器
类有多个可选参数的解决方案: 1. 重叠构造器模式可行,但是当有许多参数的时候,客户端代码会很难编写,并且仍然较难以阅读. 2. JavaBeans模式,调用一个无参构造器来创造对象,然后调用sett ...
- memcache类的扩展函数
Memcache — Memcache类 /****连接****/1.Memcache::connect – 创建一个Memcache对象语法:bool Memcache::connect ( str ...
- Python学习手册之元组拆包、三元运算符和 else 语句深入
在上一篇文章中,我们介绍了 Python 之禅. Python 编程规范和函数参数,现在我们介绍 Python 的元组拆包.三元运算符和对 Python 的 else 语句深入讲解.查看上一篇文章请点 ...
- STM32_2 简单分析startup函数
;******************** (C) COPYRIGHT STMicroelectronics ******************** ;* File Name : startup_s ...
- FIFO队列 ADT接口 链表实现
FIFO.h (接口) #include "Item.h" void QUEUinit(int); int QUEUempty(void); void QUEUput(Item); ...
- (数据科学学习手札46)Scala中的面向对象
一.简介 在Scala看来,一切皆是对象,对象是Scala的核心,Scala面向对象涉及到class.object.构造器等,本文就将对class中的重点内容进行介绍: 二.Scala中的类 2.1 ...