计算机病毒理论模型
计算机病毒理论模型
本章学习目标 掌握计算机病毒的抽象描述 掌握基于图灵机的计算杋病毒模型 掌握基于递归函数的计算机病毒模型 掌握网络蠕虫传播模型 掌握计算杋病毒预防理论模型
本章学习目标 • 掌握计算机病毒的抽象描述 • 掌握基于图灵机的计算机病毒模型 • 掌握基于递归函数的计算机病毒模型 • 掌握网络蠕虫传播模型 • 掌握计算机病毒预防理论模型
虚拟案例 个文本编辑程序被病毒感染了。每当使用文 本编辑程序时,它总是先进行感染工作并执行 编辑任务,其间,它将搜索合适文件以进行感 染。每一个新被感染的程序都将执行原有的任 务,并且也搜索合适的程序进行感染。这种过 程反复进行。当这些被感染的程序跨系统传播, 被销售,或者送给其他人时,将产生病毒扩散 的新机会。最终,在1990年1月1日以后,被感 染的程序终止了先前的活动。现在,每当这样 的一个程序执行时,它将删除所有文件
虚拟案例 • 一个文本编辑程序被病毒感染了。每当使用文 本编辑程序时,它总是先进行感染工作并执行 编辑任务,其间,它将搜索合适文件以进行感 染。每一个新被感染的程序都将执行原有的任 务,并且也搜索合适的程序进行感染。这种过 程反复进行。当这些被感染的程序跨系统传播, 被销售,或者送给其他人时,将产生病毒扩散 的新机会。最终,在1990年1月1日以后,被感 染的程序终止了先前的活动。现在,每当这样 的一个程序执行时,它将删除所有文件
计算机病毒伪代码 (main Call injure, Call submain Call infect injure If condition then whatever damage is to be done and halt; infect If condition then infect files
计算机病毒伪代码 • {main:= • Call injure; • … • Call submain; • … • Call infect; • } • {injure:= • If condition then whatever damage is to be done and halt; • } • {infect:= • If condition then infect files; • }
案例病毒的伪代码 Rmain Call injure Call submain Call infect injure:= If date>=Jan.1. 1990then While file = o File= get-random-file Delete file Halt
案例病毒的伪代码 • {main:= • Call injure; • Call submain; • Call infect; • } • {injure:= • If date>= Jan. 1,1990 then • While file != 0 • File = get-random-file; • Delete file; • Halt; • }
infect If true then File= get-random-executable-file Rename main routine submain Prepend self to file
• {infect:= • If true then • File = get-random-executable-file; • Rename main routine submain; • Prepend self to file; • }
精简后的伪代码 main Call injure Decompress compressed part of program Call submain Call infect Injure If false then halt
精简后的伪代码 • {main:= • Call injure; • Decompress compressed part of program; • Call submain; • Call infect; • } • {injure:= • If false then halt; • }
infect If executable =o then File= get-random-executable-file Rename main routine submain Compress file Prepend self to file
• {infect:= • If executable != 0 then • File = get-random-executable-file; • Rename main routine submain; • Compress file; • Prepend self to file; }
病毒的性质 1.对于每个程序,都存在该程序相应的 感染形式。也就是,可以把病毒看作是 一个程序到一个被感染程序的映射 2.每一个被感染程序在每个输入(这里 的输入是指可访问信息,例如,用户输 入,系统时钟,数据或程序文件等)上 做形成如下3个选择:
病毒的性质 • 1.对于每个程序,都存在该程序相应的 感染形式。也就是,可以把病毒看作是 一个程序到一个被感染程序的映射。 • 2.每一个被感染程序在每个输入(这里 的输入是指可访问信息,例如,用户输 入,系统时钟,数据或程序文件等)上 做形成如下3个选择:
破坏(mure):不执行原先的功能,而去完成其它功能 种输入致破坏以及破坏的形式都与被感染的程序 无关,而只写病毒本身有关。 传染( Infect:执行原先的功能,并且,如果程序能终 如时铎、角户程序间的通信的处理,同感柔前的 原程序一样。另外,不管被感染的程序其原先功能如 何(文本编辑或编译器等),它传染其它程序时,其 结果是一样的。也就是说,一个程序被感染的形式与 感染它的程序无关。 模仿( Imitate):既不破坏也不传染,不加修改地执行原 先的功能。,这也可看作是传染的一个特例,其中被传 染的程序的个数为
• 破坏(Injure):不执行原先的功能,而去完成其它功能。 何种输入导致破坏以及破坏的形式都与被感染的程序 无关,而只与病毒本身有关。 • 传染(Infect):执行原先的功能,并且,如果程序能终 止,则传染程序。对于除程序以外的其它可访问信息 (如时钟、用户/程序间的通信)的处理,同感染前的 原程序一样。另外,不管被感染的程序其原先功能如 何(文本编辑或编译器等),它传染其它程序时,其 结果是一样的。也就是说,一个程序被感染的形式与 感染它的程序无关。 • 模仿(Imitate):既不破坏也不传染,不加修改地执行原 先的功能。这也可看作是传染的一个特例,其中被传 染的程序的个数为零