蠕虫病毒感染功能!C语言实例教学:纯代码教学+赠送源码!
我知道你想收藏,但是,关注才能获取更多干货哦!
媒体号:一碳科技作者:菜鸟君各位美丽帅气大方的粉丝们,从现在开始你们就可以叫我“菜鸟君”啦,《一碳科技》以后的文章就开始由菜鸟君接手啦,听说直接给菜鸟君评论会更快得到回复哦!
实现蠕虫病毒的感染功能
还记得上一次菜鸟君教大家做的“熊猫烧香换图标”功能吗?在这篇文章中,小编教大家将后缀为exe的文件图标更改成了我们自己的图标,它的作用效果类似于“熊猫烧香”病毒感染过后的效果。
而小编在另一个媒体平台中发现,这个教程似乎还不能满足各位看官的胃口,有些人甚至让小编出一个“实现感染功能”的教程,所以,菜鸟君今天就满足你们的要求!
思路
按照惯例,我们来说说思路。
第一步,复制病毒数据
先将整个病毒文件复制到一个新的文件中(下文称Newfile),注意,这里我们需要以二进制的方式打开病毒文件和Newfile。
第二步,复制被感染文件
然后,我们将被感染文件的数据输入到Newfile文件的末尾,也就是病毒文件数据的后面,在这里我们不需要了解什么PE结构,只需要你们跟着小编的思路来就行了
第三步,运行时分解自身
在这时候,我们已经可以运行Newfile这个文件了,但是你们发现没有,双击打开这个程序会直接运行我们的病毒程序,也就是Newfile文件中最开头的那个程序,而仔细观察发现,Newfile的大小恰恰是病毒程序与被感染程序的大小总和,这就说明我们的病毒确确实实“感染”到被感染程序上了,但是它只能直接执行我们的病毒程序,如何解决呢?
我们可以这么做,先分解Newfile然后在分步执行被感染程序有和病毒程序,我们的病毒程序属于自包含程序,也就是说它能感染到其他程序中,并且感染之后还能对自身进行操作(Newfile)。
第四步,被感染程序运行完毕之后恢复被感染状态
在被感染程序运行完毕之后,我们就将恢复被感染状态,也就是恢复到Newfile原先的状态,不明白的小伙伴可以在源码中细细品味。
整个过程菜鸟君会以视频的方式发布出来。
开始敲代码
首先进行第一步(复制病毒数据),这里会遇到一个问题我们无法使用fopen等文件操作函数打开我们的病毒程序,因为我们的病毒程序正在运行之中,也就是说我们是不能fopen我们本身的,但办法还是有的,我们可以使用windows.h文件自带的CopyFileA()函数将我们的病毒程序复制一份(称为菜鸟),然后我们对菜鸟文件进行操作不就行了吗?
复制病毒数据到新的文件中
小编在这里使用了一个测试的文件,各位看官在获取源码之后可自行修改。我们使用了fopen、fread、fwrite这三个函数将病毒数据复制到了一个新的文件中,这个新的文件指针我们先不要关闭,因为在后面还有用。
紧接着我们将被感染文件的数据复制到Newfile的末尾。
分解并运行
我们将Newfile进行分解,病毒程序我们已经在开头就启动了,而被感染程序我们将它分解成名为1.exe的程序,在我们的病毒程序中会直接执行名为1.exe的程序,当1.exe的进程关闭时,病毒程序就会关闭(这取决于你们),然后将1.exe程序删除,恢复到Newfile未启动前的模样。
这么跟大家说可能会有点蒙,所以还是看代码和最后运行的视频吧!
由于病毒程序需要不断检测1.exe进程是否存在,以此来判断被感染程序是否关闭,所以我们需要写一个检测进程是否存在的功能,原理就不多说了,小编在源码里写了很多注释,你们可以慢慢看。
获取源码方式
我知道你想收藏本篇文章,关注《一碳科技》让你收藏个够!
关注《一碳科技》并在评论区留言,菜鸟君会将源码地址回复给你哦!