龙空技术网

「实例讲解」C语言损人程序升级版:100G垃圾文件都删不掉!

硬核林妹妹 544

前言:

眼前看官们对“c语言骂人代码”都比较珍视,我们都想要剖析一些“c语言骂人代码”的相关资讯。那么小编也在网摘上搜集了一些有关“c语言骂人代码””的相关资讯,希望大家能喜欢,姐妹们快快来了解一下吧!

关注《一碳科技》,每天有干货哦!

“损人小程序”升级版

小编今天发布的这篇文章主要是为了和粉丝们互动,为什么呢?且听小便慢慢道来,前天小编发布了一篇文章,名为:“「实例讲解」C语言破坏小程序:撑满硬盘仅需几十秒,瞬间卡爆!”,这篇文章教大家制作了一个生成垃圾文件的程序,这些垃圾文件都有一定的规律,很容易就被电脑用户删除掉,而有些粉丝则想要达到“撑满你的硬盘,而你却很难删掉”的效果,所以,小编将程序小小的修改了一下,已达到你们所要求的效果。

今天的字数不多,很简单,因为这个程序是由之前的程序修改的,所以小编只讲一些新的代码就可以了。

教程来啦!

先讲一下思路,在上一个程序的基础上,我们可以随机生成一些垃圾文件,并且这些垃圾文件的后缀名都是随机的(一共10种,可以自定义),但其中有些后缀会起到很大的迷惑作用,例如dll、exe、doc、pptx等后缀名,这些后缀名常见于系统文件、系统应用、办公文档等地方,而我们一旦生成以上几种后缀名的垃圾文件,就很难以一般的方法删除这些垃圾文件,例如:通过命令行 del*.后缀名,或者写一个程序删除,为什么呢?因为你要删除这么多文件的话,就要使用到批量删除,否则上万个文件你要删到手软!但这可能会误删系统重要文件或重要的办公文件!

如果该程序一直运行不被关闭,不出5分钟,电脑硬盘就会被垃圾文件塞满,文件大小甚至能达到上百G!但这个取决于电脑的性能。

但是这里面还是存在一个漏洞,这个漏洞在哪里呢?《一碳科技》将在评论区给出答案,找出漏洞的小伙伴也可以提前在评论区留言哦!

生成随机后缀名

小编生成随机后缀的思路是,事先将我们要用到的10个后缀名放到一个二维数组里面,然后再利用随机数生成函数随机生成数组索引号,然后再在将该随机获取的数组当做文件的后缀名,不过这么做有一个缺点,就是在一秒钟内生成的后缀名都是相同的,因为每隔一秒我们才会生成一个新的随机数。

生成随机数要用到time()、srand()、rand()函数,这三者配合起来才能生成一个随机数,但这个随机数并不是真正意义上的随机数,因为它说到底还是依靠算法算出来的,正是因为如此这些随机数也被称为“伪随机数”。这三个函数该如何配合起来呢?

rand()函数会根据一个“种子”的值来按照某种规则生成一个随机数,种子决定“规则”,而种子不变也就意味着“规则”不变,也就是说,当种子不变时,rand()会生成一串相同的随机数。那么如何来解决这个问题呢?我们将使用srand()、time()函数来解决这个问题,time()函数会返回Unix 纪元(January 1 1970 00:00:00 GMT)到目前为止所经过的秒数,而srand()将会根据参数设定新的种子,所以我们可以这样做——srand(time(NULL))。

为什么这样呢?因为时间是不断变化的,所以time返回的值也会不断的变化,而不断变化的返回值成了srand()的参数,这两者结合的结果是——种子一直在改变,但这有一个弊端,就是time()的返回值每过一秒才会改变一次。最后我们将rand()的返回值除10取余数,就可以得到0~9这个范围内的随机数了,这正好符合我们的数据索引值规律

生成垃圾文件

生成垃圾文件的方法,在前一篇文章已经讲过了,所以这里就不做过多的阐述了。

获取源码方式:记得上面留给大家的问题吗?这里存在一个漏洞,这个漏洞在哪里呢?找到答案的小伙伴请在评论区留下你的答案,然后关注《一碳科技》并点赞文章,私信关键字:“撑满硬盘程序升级版”

标签: #c语言骂人代码