我必须教一群非计算机专业的学生什么是计算机病毒。课程材料只包含定义和有关这些病毒的作用的一些细节。但这些内容对于了解计算机的人来说都是众所周知的。
我想以非技术性的方式谈谈病毒的编程或技术方面。解决方案可以是编写一个非程序员也能理解的程序,或者将计算机病毒的作用与现实世界的情况进行比较。关于我该怎么做,有什么想法、建议或例子吗?幽默的回答也是可以接受的。
答案1
我认为与生物系统(病毒这个词就是从生物系统中提取出来的)的相似性是好的。
就像生物病毒会破坏细胞行为一样,计算机病毒也会破坏计算机程序。
它们还有其他类似的行为:
- 计算机病毒和生物病毒都具有自我复制的能力
- 两者都离不开主机系统
- 都是由小块信息构成的(DNA 与二进制指令)
答案2
“病毒”这个词很有帮助。大多数遗传物质是有益的,但有些是危险的。同样,大多数计算机软件都是为了用户的利益而编写的,但计算机病毒却不是。
请注意,我使用“病毒”一词的口语用法来指代所有恶意软件。当您自己描述事物时,请务必使用恶意软件一词来指代恶意软件。病毒只是恶意软件的一种类型。
不要解释所有不同类型的恶意软件,而是解释它们可能产生的影响:
- 他们从你的计算机发送垃圾邮件
- 它们从你的计算机攻击其他计算机
- 它们会降低你的计算机性能和互联网连接速度
- 他们会解析你的通讯录并向你的联系人发送垃圾邮件
- 他们会将您的个人文件上传给恶意实体,包括您的银行信息和信用卡详细信息
答案3
每个使用计算机的人都知道什么是计算机病毒能做(例如窃取文件或导致物理伤害,尤其是因为一些病毒已经造成物理伤害),但很多人不知道如何他们这样做。我认为这就是你问这个问题的目的。另外值得一提的是,计算机没有意识(然而对于那些人工智能),它只是执行所发送的指令。
病毒本身会在用户的计算机上执行恶意任务(窃取/删除个人数据、破坏系统文件等),并且由于计算机运行代码,因此病毒本身必须以纯代码的形式存在。病毒可以作为独立程序存在(即其唯一目的是恶意的),它们可以伪装成“好”程序,或者它们可以感染计算机上已有的其他程序。病毒通过上述三种方式传播,或者通过网络传播(我认为这更准确地称为虫)。
对于“受感染”的程序,病毒会用自己的代码覆盖应用程序的某些部分,或将自己的代码注入应用程序(因此看起来好像在运行)。然后计算机将启动应用程序,并开始正常执行指令。一旦病毒代码被击中,病毒的恶意操作就开始了。
什么病毒下一步做什么取决于病毒创建者。它可能只是一个概念验证,可能潜伏在你的记忆中。它可能会破坏各种系统文件,将自己发送到你的地址簿,或者静静地等待你输入信用卡号。
这些恶意程序/代码之所以被称为病毒,是因为它们的操作与生物类似物相同。病毒传播和感染主机的方式与恶意软件非常相似。
最后你可能想提一下,新病毒实际上可以即时“重写”自身。它们通过各种类型的多态性,以掩盖实际代码,使防病毒软件难以检测到它们。较新的防病毒程序依赖于启发式分析程序,并确定它们正在尝试做什么,以及它们是否对系统构成威胁。
答案4
以特洛伊人使用的木马为例。它伪装成有用的东西,但如果你让它进来,它就会杀了你。
提到恶意软件不被视为病毒,而主要是数据窃贼或广告推销员,即使窃贼没有意识到这一点,也能从中获利