日期:2014-05-20  浏览次数:20968 次

Java 病毒
看了些帖子、资料,了解到大家对病毒很反感(只要有人发帖子 关于如何用Java写病毒的之类 都会被喷),也知道Java不适合写病毒...
前天上计算机组成与系统结构的课时,我问老师,毕业设计可以写什么,老师当时就跟我说,用Java写个病毒...当时听了,有点惊讶,有点兴奋,我对病毒完全不了解,真想试试,找个机会研究研究病毒(只想作为一门技术看对待,而并非恶搞),想知道病毒到底长什么样,用Java写出来的病毒又是什么样子的...
惹谁有这方面的经历,希望能指点一二
或许这种想法很天真,欢迎大家拍砖!

------解决方案--------------------
计算机病毒具有以下几个特点:
寄生性
  计算机病毒寄生在其他程序之中,当执行这个程序时,病毒就起破坏作用,而在未启动这个程序之前,它是不易被人发觉的。
传染性
  计算机病毒不但本身具有破坏性,更有害的是具有传染性,一旦病毒被复制或产生变种,其速度之快令人难以预防。传染性是病毒的基本特征。在生物界,病毒通过传染从一个生物体扩散到另一个生物体。在适当的条件下,它可得到大量繁殖,并使被感染的生物体表现出病症甚至死亡。同样,计算机病毒也会通过各种渠道从已被感染的计算机扩散到未被感染的计算机,在某些情况下造成被感染的计算机工作失常甚至瘫  计算机网络痪。与生物病毒不同的是,计算机病毒是一段人为编制的计算机程序代码,这段程序代码一旦进入计算机并得以执行,它就会搜寻其他符合其传染条件的程序或存储介质,确定目标后再将自身代码插入其中,达到自我繁殖的目的。只要一台计算机染毒,如不及时处理,那么病毒会在这台机子上迅速扩散,计算机病毒可通过各种可能的渠道,如软盘、计算机网络去传染其他的计算机。当您在一台机器上发现了病毒时,往往曾在这台计算机上用过的软盘已感染上了病毒,而与这台机器相联网的其他计算机也许也被该病毒染上了。是否具有传染性是判别一个程序是否为计算机病毒的最重要条件。 病毒程序通过修改磁盘扇区信息或文件内容并把自身嵌入到其中的方法达到病毒的传染和扩散。被嵌入的程序叫做宿主程序;
潜伏性
  有些病毒像定时炸弹一样,让它什么时间发作是预先设计好的。比如黑色星期五病毒,不到预定时间一点都觉察不出来,等到条件具备的时候一下子就爆炸开来,对系统进行破坏。一个编制精巧的计算机病毒程序,进入系统之后一般不会马上发作,因此病毒可以静静地躲在磁盘或磁带里呆上几天,甚至几年,一旦时机成熟,得到运行机会,就又要四处繁殖、扩散,继续为害。潜伏性的第二种表现是指,计算机病毒的内部往往有一种触发机制,不满足触发条件时,计算机病毒除了传染外不做什么破坏。触发条件一旦得到满足,有的在屏幕上显示信息、图形或特殊标识,有的则执行破坏系统的操作,如格式化磁盘、删除磁盘文件、对数据文件做加密、封锁键盘以及使系统死锁等;
隐蔽性
  计算机病毒具有很强的隐蔽性,有的可以通过病毒软件检查出来,有的根本就查不出来,有的时隐时现、变化无常,这类病毒处理起来通常很困难。
破坏性
  计算机中毒后,可能会导致正常的程序无法运行,把计算机内的文件删除或受到不同程度的损坏 。通常表现为:增、删、改、移。
可触发性
  病毒因某个事件或数值的出现,诱使病毒实施感染或进行攻击的特性称为可触发性。为了隐蔽自己,病毒必须潜伏,少做动作。如果完全不动,一直潜伏的话,病毒既不能感染也不能进行破坏,便失去了杀伤力。病毒既要隐蔽又要维持杀伤力,它必须具有可触发性。病毒的触发机制就是用来控制感染和破坏动作的频率的。病毒具有预定的触发条件,这些条件可能是时间、日期、文件类型或某些特定数据等。病毒运行时,触发机制检查预定条件是否满足,如果满足,启动感染或破坏动作,使病毒进行感染或攻击;如果不满足,使病毒继续潜伏。








------------------
java的jre和安全策略文件让这些很难实现,譬如修改一下policy文件让java无任何文件操作权利。。。
------解决方案--------------------
java做病毒,要依赖于jvm,jvm依赖于os,基本上来说,纯java是做不到的
LZ可以找些系统启动和程序启动过程的相关资料好好看看,然后研究一下如何把程序注入引导区,如何串改可执行文件的内存镜像,注入自己的代码来实现程序跳转。

------解决方案--------------------
http://www.hackfans.com.cn/html/wenzhang/bianchengziliao/20090914/65626.html

这里有一个,不过貌似是感染.class文件的病毒
------解决方案--------------------
想运行个病毒还要先安装个jre,这个有点遭。但是java做我认为也可以做啊。
病毒 百度 转
编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码被称为计算机病毒(Computer Virus)。具有破坏性,复制性和传染性。
也就是这个java程序要满足三个方面
破坏性  比如无限生成有恶意代码的文件,无限复制占用硬盘空间,修改
------解决方案--------------------
删除系统文件等
复制性  破环电脑软件,硬件环境。病毒可以自我复制。
传染性  病毒可以通过U盘传递,联网方式以邮件或其他形式进行传染。

首先要分别做出这三个 功能块出来啊。

话说楼主现在进行的怎么样?

------解决方案--------------------
呵呵 java病毒 你们老师真有趣

其实 病毒的概念很广义的

一个while(true) 让你的内存飙升 也不失为一个病毒 你说呢LZ

呵呵 goodluck
------解决方案--------------------
Jav当然可以写病毒
篡改用户class,通过class交流达到传播的目的,这还算是自律的纯Java的做法。甚至也完全可以通过结合小部分的其它语言代码绑定到别的用户文件上
传播到另外一台电脑后篡改Jdk的核心包,只要JVM运行,病毒就可以驻留在内存了。现在谁敢说自己的电脑从不运行Jre?
驻留在内存的病毒又可以将它绑定到该电脑的其它文件上,一个病毒的完整生命周期就完成了。