走进计算机病毒-基础知识「建议收藏」

走进计算机病毒-基础知识「建议收藏」计算机病毒可通过注册表来完成其目的

大家好,又见面了,我是你们的朋友全栈君。

目录

进程与线程的关系

动态链接库

服务

注册表

病毒对注册表的利用

1.和Run键相关的项

(1)Run键是病毒最青睐的自启动之处,该键的位置有两处

 (2)RunOnce

(3)RunServicesOnce

(4)RunServices

(5)RunOnceEx

2.Run相关以外的自启动项

(1)UserInit

 (2)load键

查看注册表自启动项的工具 Autoruns.exe

利用注册表改变文本文件所关联的程序

通常解决病毒修改文件关联的问题可以用以下方法,以.txt为例子

1.直接改注册表

2.利用文件夹选项对话框

 利用注册表禁止某些程序的运行

说明:

解决办法


进程与线程的关系

线程是执行任务,完成功能的基本单位,而进程则为线程提供了生存空间和线程所需要的其他资源,程序则是包含资源分配管理代码以及线程执行调度代码的一个静态计算机代码集合

动态链接库

动态链接库DLL,它是Dynamic Link Library的缩写形式。动态链接库(DLL)是作为共享函数库的可执行文件(这里所谓的DLL是可执行程序,也是PE格式的文件,但是它不能够独立运行,只能够通过其他课运行的程序加载到内存中执行功能)。动态链接库提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。

虽然动态链接库不能运行,但是同一个动态链接库可以同时被多个进程加载到内存中,并且执行DLL中的功能。计算机病毒通常将病毒代码写到一个DLL文件中,然后想尽一切办法将此病毒代码加载到系统的某个进程中,如Explorer.exe桌面进程,这样Explorer.exe就会运行病毒代码了。这也是通常所说的病毒注入技术。

服务

windows 系统的许多功能都是通过服务来实现的。简单来讲可以将服务理解为在后台完成系统任务的程序,比如自动获取更新或者管理打印服务等。服务与系统的核心相关并拥有各种权限,因此一旦被不法分子掌握,很可能导致操作系统崩溃。比如2003年8月发作的冲击波(Worm.Blaster)病毒,它利用了RPC(Remote Procedure Call,远程过程调用)服务的漏洞,而RPC则是Windows XP必须运行的服务之一,该病毒发作时,你的计算机将会在60秒内自动关闭。

注册表

注册表指在Windows中使用的中央分层数据库,用于存储一个或多个用户、应用程序和硬件设备配置系统所必须的信息。注册表包含Windows在运行期间不断引用的信息,例如,每个用户的配置文件、计算机上安装的应用程序可以创建的文档类型、正在使用哪些端口以及包含了有关计算机如何运行的信息。

启动方法 Win + R -> regedit  

走进计算机病毒-基础知识「建议收藏」

 走进计算机病毒-基础知识「建议收藏」

 HKEY_USERS保存着默认用户信息和当前登录用户信息。当一个域成员计算机启动并且被一个用户登录,域控制器自动将信息发送到HKEY_CURRENT_USER里,而且这个信息被映射到系统内存中。其他用户的信息并不发送到系统,而是记录在域控制器里。

病毒对注册表的利用

注:最好在虚拟机中实验)打开注册表,点开如下路径,右键->新建字符串,可以自由取名,然后双击编辑,在数值数据中填入记事本程序所在路径。

走进计算机病毒-基础知识「建议收藏」

 走进计算机病毒-基础知识「建议收藏」

重新启动虚拟机,记事本就会自动运行起来了

走进计算机病毒-基础知识「建议收藏」

 实际上除了注册表中的Run项,能够实现程序自启动的注册表项非常多

1.和Run键相关的项

(1)Run键是病毒最青睐的自启动之处,该键的位置有两处

走进计算机病毒-基础知识「建议收藏」

可以看到这里是虚拟机工具的自启位置 走进计算机病毒-基础知识「建议收藏」

 位于这两个键下的所有程序在每次启动登录时都会按顺序自动执行。

还有一个不被注意的Run键,位于注册表如下两个键位置

[HKEY_CURRENT_USER\Software\Mircrosoft\Windows\CurrentVersion\Policies\Explorer\Run]

[HKEY_LOCAL_MACHINE\SOFTWARE\Mircrosoft\Windows\CurrentVersion\Policies\Explorer\Run]

但是我看了下我的win7虚拟机,没有这两个键,应该是Windows版本不同的问题

走进计算机病毒-基础知识「建议收藏」

 (2)RunOnce

[HKEY_CURRENT_USER\Software\Mircrosoft\Windows\CurrentVersion\RunOnce]

[HKEY_LOCAL_MACHINE\SOFTWARE\Mircrosoft\Windows\CurrentVersion\RunOnce]

这两个键下的程序也可以自启动,但是与Run键不同的是,RunOnce下的程序仅会被自启动一次

(3)RunServicesOnce

[HKEY_CURRENT_USER\Software\Mircrosoft\Windows\CurrentVersion\RunServicesOnce]

[HKEY_LOCAL_MACHINE\SOFTWARE\Mircrosoft\Windows\CurrentVersion\RunServicesOnce]

这两个键下的程序会在系统加载时自动启动,并且仅仅执行一次

(4)RunServices

[HKEY_CURRENT_USER\Software\Mircrosoft\Windows\CurrentVersion\RunServices]

[HKEY_LOCAL_MACHINE\SOFTWARE\Mircrosoft\Windows\CurrentVersion\RunServices]

RunServices是继RunServicesOnce之后启动的程序

(5)RunOnceEx

[HKEY_CURRENT_USER\Software\Mircrosoft\Windows\CurrentVersion\RunOnceEx]

[HKEY_LOCAL_MACHINE\SOFTWARE\Mircrosoft\Windows\CurrentVersion\RunOnceEx]

该键是windows xp/2003 特有的自启动注册表项

2.Run相关以外的自启动项

(1)UserInit

这个的修改和前面的不太一样,需要点开Userinit编辑,然后在后面加上你的程序,比如记事本程序

走进计算机病毒-基础知识「建议收藏」

 走进计算机病毒-基础知识「建议收藏」

 (2)load键

[HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\load]

这个win7也没有找到

查看注册表自启动项的工具 Autoruns.exe

该工具可列举所有能够实现程序自启动的注册表项,并且进行分类,还可以修改各个启动项的值使其直接在注册表中生效,同时可以通过右键菜单的jump to功能定位到注册表中相应的位置

利用注册表改变文本文件所关联的程序

各种类型的文件都要关联一个程序,从而使其可以被直接打开。当我们双击某种类型的文件时,如txt文件,操作系统将自动启动notepa.exe这个程序,并将此文本文件作为参数类型传递给记事本,从而使文本文件被打开。每种类型的文件实际上是通过windows注册表与相应的程序建立关联的

  在windows注册表的以下路径:HKEY_CLASSES_ROOT(或者HKEY_LOCAL_MACHINE\Software\CLASSES ,这两个路径效果是一样的) 下存储了所有类型文件所关联的程序。

走进计算机病毒-基础知识「建议收藏」

 比如上图的.txt类型的文件,展开后右边有一串默认的字符@%SystemRoot%\system32\notepad.exe,-470   如果将这个关联启动的程序替换成其他程序,那么双击.txt文件后就会运行我们所更改的程序。

注意:扩展名为.exe类型的文件是可执行的程序文件,它并不关联任何程序,双击这种类型的文件就会直接运行起来

通常解决病毒修改文件关联的问题可以用以下方法,以.txt为例子

1.直接改注册表

它改了,你就直接改回来就行

2.利用文件夹选项对话框

走进计算机病毒-基础知识「建议收藏」

走进计算机病毒-基础知识「建议收藏」

 利用注册表禁止某些程序的运行

计算机病毒出来利用注册表运行程序之外,还可以利用注册表禁止某些程序运行。当然被注册的程序就是对病毒生存构成威胁的程序了,如杀毒软件、防火墙等等。

提示:利用注册表禁止某个程序运行,通常将这种技术叫做镜像劫持。也就是通过注册表项的设置达到禁止某些程序启动的目的

走进计算机病毒-基础知识「建议收藏」

 在上图路径下,新建一项,该项目的名字一定要注意,这个名字就是你将要禁止运行的程序的名字。例如禁用notepad.exe程序,就需要新建一个项目,名字为notepad.exe,然后再点开这个项,新建一个字符串,名称为Debugger,数值为“abc”(这是个无意义的字符,输别的也行,只要不是一个合法程序的完整路径就行)

走进计算机病毒-基础知识「建议收藏」

 走进计算机病毒-基础知识「建议收藏」

说明:

注册表中Image File Execution Options项下的子项是一些可执行的程序,这些程序下如果建立了一个Debugger的字符串项,表示当这些程序运行之前要首先启动Debugger键值所标识的程序。其实微软公司设计这项的目的是为了调试程序,Debugger就是调试器的意思,键值字符串应该是一个调试器的绝对路径。当这里设置好后我们每次运行被拦截的程序时,操作系统会用调试的方式启动这个程序,也就是说首先启动调试器,然后用调试器去加载被拦截的程序。然而我们当时输入的是不是一个程序的有效路径。当运行记事本程序是,操作系统首先要起送abc这个调试器,可是这是一个不存在的程序路径,是非法的,系统无法找到这个调试器,于是就会弹出上图的错误提示。

当然我们不止能禁用记事本,还可以用这个方法来禁用注册表,只要将notepad.exe 换成 regedit.exe就行了

解决办法

其实被截止的并不是记事本或者注册表程序,而是所有文件名为notepad.exe和regedit.exe的程序。如果我们把word.exe改名为notepad.exe,同样它也无法运行了。知道这个原理只需要将记事本换一个名字就行,比如改成book.exe,这样记事本就可以运行了。同理,只要将注册表程序regedit.exe改成a.exe,然后运行a.exe,将被劫持的regedit.exe项目删除,再将a.exe改回regedit.exe就行了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134918.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • atm异步传输模式特性_ATM是什么模式

    atm异步传输模式特性_ATM是什么模式AsynchronousTransferMode.  ATM是一种传输模式,在这一模式中,信息被组织成信元,因包含来自某用户信息的各个信元不需要周期性出现,这种传输模式是异步的。   ATM是网络新技术,它采用基于信元的异步传输模式和虚电路结构,根本上解决了多媒体的实时性及带宽问题。实现面向虚链路的点到点传输,它通常提供155Mbps的带宽。它既汲取了话务通讯中电路交换的“有连接”服务

    2022年9月21日
    0
  • istat 激活码_通用破解码

    istat 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    86
  • freehosting申请空间和ssh -D设置

    freehosting申请空间和ssh -D设置前段时间申请了website.org的免费空间,可是有广告.在这时向大家推荐freehosting.com.Freehosting.com是一家创建于1996年的美国网站,国内在2006年有介绍过它的免费PHP空间,不过没能找到演示,目前免费空间的主机放在德国,提供1G存储空间,月流量为10G,采用CPanel控制管理面板(有简体中文版),支持FTP和Web在线文件管理(可在线解压缩),…

    2022年10月8日
    0
  • python生成一组随机数_python随机数组

    python生成一组随机数_python随机数组“Anyonewhoconsidersarithmeticalmethodsofproducingrandomdigitsis,ofcourse,inastateofsin.”JohnvonNeumann,1951Python中自带了随机数的模块random,它们编程当前往往是十分重要的。下面对random模块进行介绍。random模块randint()ran…

    2022年10月24日
    0
  • 计算机考研复试C语言常见面试题「建议收藏」

    计算机考研复试C语言常见面试题「建议收藏」本文是我2021年考研时准备的复试面试题,现在拿出来给大家分享一下觉得好的点个赞哦,毕竟当初我也是整理了好久,改了好几次版本呢祝大家都上岸!!!!P.S.我当初整理的时候是word,直接复制过来的话代码不会自动变成CSDN的代码块,所以代码我是一段一段重新标记为CSDN代码段的,这样大家看起来舒服点C语言基础目录1、static关键字的作用22、C++和C的区别23、Java的方法重载24、重写和重载25、面向对象编程36、c++可以有多个父类37

    2022年8月29日
    1
  • sql mysql创建 视图索引_SQLServer中在视图上使用索引(转载)「建议收藏」

    sql mysql创建 视图索引_SQLServer中在视图上使用索引(转载)「建议收藏」在SQLServer中,视图是一个保存的T-SQL查询。视图定义由SQLServer保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全。但是,它并不占用数据库的任何空间。实际上,在你查询它之前,视图并不做任何事情。索引视图在SQLServer2000和2005中,你能够给视图增加索引。但是,如果视图只是一个保存在数据库中的查询定义,在运行前没有自己的数据,你如何给那个定义建立…

    2022年7月22日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号