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

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

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

目录

进程与线程的关系

动态链接库

服务

注册表

病毒对注册表的利用

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就行了。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 2021爱智先行者——EdgerOS Spirit 1深度使用体验与EdgerOS应用开发实践「建议收藏」

    一、前言①智能边缘计算操作系统EdgerOS是为万物互联时代而生的智能操作系统。为广大开发者提供基于互联网技术栈的操作系统平台,极大简化了物联网App开发难度,提高开发效率。通过爱智云,EdgerOS为开发者提供了强大的云-边-端协同能力,开发者无需关心设备是本地还是远程连接,EdgerOS能够无缝切换,给用户带来丝滑的使用感受,实现“多用户-多终端-多设备”的实时连接与互动。EdgerOS是下一代面向物联网和边缘计算的智能操作系统,可广泛应用于面向个人、家庭和行业的物联网产品和解决方

  • Mysql 5.7解压版下载安装及配置教程

    Mysql 5.7解压版下载安装及配置教程最近在学习中用到了MySQL数据库,在安装过程中遇到了不少问题,在翻了大半天百度后,问题基本都解决了,所以写一篇MySQL5.7解压版的图文详细安装教程。至于为什么我会选择解压版而不是安装版,一是因为安装版没有64位版本;二是因为安装版的软件在重装系统或者挪动软件的位置后,就会出现无法使用的情况,而大部分绿色版或者解压版的软件就不存在这样的问题,只需要重新配置一下即可使用。如果你是刚接触MySQL的同学,安装版也是你不错的选择,安装时无脑点下一步基本就可以装好,默认参数程序都会给你配好,既简单又方.

  • PAT乙级题解

    PAT乙级题解题号C/C++B1001

  • sqrt mysql_MySQL中的SQRT函数的使用方法「建议收藏」

    sqrt mysql_MySQL中的SQRT函数的使用方法「建议收藏」推荐:MySQL中的SUM函数使用教程这篇文章主要介绍了MySQL中的SUM函数使用教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下MySQL的SUM函数是用来找出记录中各种的字段的总和。要了解SUM函数考虑EMPLOYEE_TBL表具有以下记录:?现在,假设根据上面的表想来计算所有的dialy_typing_pages的总数这篇文章主要介绍了详解MySQL中的SQRT函数的使…

  • can not create this interface_getinterfaces方法

    can not create this interface_getinterfaces方法Androidstudio导入依赖,构建时报错错误如下: StaticinterfacemethodsareonlysupportedstartingwithAndroidN(–min-api24):voidbutterknife.Unbinder.lambda$static$0()Message{kind=ERROR,text=Statici…

  • 判断入射满射c语言编码,例4,判断下列函数是否是满射、单射、双射。.PDF

    判断入射满射c语言编码,例4,判断下列函数是否是满射、单射、双射。.PDF例4,判断下列函数是否是满射、单射、双射。4,判断下列函数是否是满射、单射、双射。(1)f:N→Z,F(n)=小于n的完全平方数的个数f(n)={<0、0>,<1,1>,<2,2>,<3,2>,<4,2>,<5、2>}:f(48)=7f(49)=7f(50)=8,不是单射,48,49的像均是7,不…

发表回复

您的电子邮箱地址不会被公开。

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