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):既不破坏也不传染,不加修改地执行原 先的功能。这也可看作是传染的一个特例,其中被传 染的程序的个数为零