Trong trường hợp của virus đa dạng, tuy nhiên, mô-đun giải mã này cũng được sửa đổi trên mỗi nhiễm trùng. Do đó, một virus đa dạng được viết tốt không có các bộ phận vẫn giống hệt nhau giữa các nhiễm trùng, làm cho nó rất khó phát hiện trực tiếp bằng cách sử dụng "chữ ký". Phần mềm chống vi-rút có thể phát hiện bằng cách giải mã các virus bằng cách sử dụng một trình giả lập, hoặc bằng các mô hình thống kê của cơ thể virus được mã hóa. Để cho phép vi-rút đa dạng, virus phải có một động cơ đa dạng biến đổi ở đâu đó (được gọi là "động cơ vi-rút biến đổi" hoặc "động cơ giải mã hóa") Tuy nhiên, trong trường hợp của các virus đa dạng, mô-đun giải mã này cũng được sửa đổi trên mỗi nhiễm trùng. Đối với các chuyên gia vi-rút, việc sử dụng một chương trình chống vi-rút có thể làm cho nó hoạt động chậm hơn một số mẫu virus có thể được phát hiện bởi các mã hóa học đa dạng hoặc có thể được phân tích bởi một trình vi-rút có thể được điều khiển bởi một mã hóa
có động cơ đa dạng