基本架构与您所描述的完全不同。通常只有病毒主体被加密,而不是整个代码部分。考虑一种简单的病毒,它要么扩展代码部分,要么为其主体创建一个新代码部分。现在,要使其具有多态性,您必须添加加密并使解密器代码变得非常量,例如:
1) 随机插入 nop ( nop, add reg, 0, push reg; pop reg, 等)
jmp next2)用( ,,clc; jc next等)更改程序流程
3)使用具有相同算术效果的指令(add eax, 3-> add eax, 9; sub eax, 6)
多态意味着它可以有固定数量的编码,因此创建多态的最简单方法是将解密器代码分解为多个块,并为每个块提供多个具有相同长度的编码。
编辑:是的,它是病毒体的一部分。为了使用它,您将所有这些“砖块”放入病毒体内,当另一个文件被感染时,您为其创建一个随机版本的描述符。