病毒: 注册表的认识以及用 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,是 exe 文件图标的引用位置.
/ve,使用默认名新建值.
/d "",设置新建项的值.
/f,不用进行确实强行写入.
当然,我们这个是将原来的值覆盖了,不能叫做新建.
执行结果我懒得截图了,你们自己想象吧.其他参数你们也可以进行一下研究,都很有意思.
改图标的我这头不知道为什么没有实现成功.原因我也不太清楚,你们可以自己想想为什么. 或许是需要重启一下?我也没试
三.病毒实现效果
先放结果图.执行以后,随便点一个 exe 程序,就会出现打不开 exe 文件的情况.
我试了试注册表,好吧,也打不开了.
很尴尬的是.....cmd 也打不开了,本来还想用命令恢复,看来也不行了.
我想到的解决方法就是进入安全模式,或者是重装系统等等.
由于是我 win7 虚拟机,所以我直接恢复镜像了. 这里先说明一下原理.
我们的注册表中记录了所有我们系统的配置信息.
当我们修改上面我给出位置的信息的时候,将 command 的值改成空,当我们执行 exe 文件的时候系统就不知道改用什么打开了,所以会报错.
我这个仅仅是进行了一个简单的修改,如果你比较狠,甚至直接将注册表删掉都行,这样电脑就直接废了,连机都开不了.
你还可以改些别的,比如我在开始给的图片中某条记录是关于你电脑中的所有 win32 程序的安装位置.根据这个,我们是不是还可以干点别的坏事呢?
把这些学明白了,简直为所欲为了.
四.命令 一共是两条.
具体我就不解释了,上面有.
这两条命令执行以后,就会出现如图的效果.
当然,这个是有限制的,需要以管理员身份运行.
不过在 win2003 上面是没有限制的,win7 有,其他系统我没测试. 我倒是想到了一个解决方法,后面我会写.
五.C 代码实现
会 c 语言的都知道 system 命令吧?我之前有一篇文章里面做了三个小病毒,原理就是这个.
不说废话,直接上代码.
由于需要考虑到转义字符的关系,所以我将 cmd 命令稍微修改了一下.
还记得那会儿说的关于管理员的事情吗? 我试了一下,如果不以管理员方式打开,会出现以下提示:
仅仅以右键管理员方式打开才能正常运行.但是哪个人看到这个不会怀疑呢?
所以我想到了 windows 系统的一个特点:会把包含 setup 文件名的文件当作安装程序.
因此,我们把文件改成包含 setup 文件名即可,然后点击运行.
当然,仍然会提示需要管理员权限,但是这样不是正常了很多么?
许多软件安装的时候都是这样,所以一般人没人会想到这是个病毒程序.
在 HKEY_CLASSES_ROOT 里面的后缀名都是可以修改的,你可以写个程序,先读取注册表中所有的后缀,然后按照上面的方法进行修改,这样改完电脑上面的任何文件都无法打开.
你还可以将这个程序添加到注册表中的启动项中,之后对文件进行一个加密,又或者写个扫描器然后对局域网内的电脑进行传播,等等等等.......
评论