El código oligomórfico , también conocido como código semipolimórfico , es un método que utiliza un virus informático para ofuscar su descifrador generando diferentes versiones del mismo, con el fin de evadir la detección por parte del software antivirus. Es similar al código polimórfico , pero menos sofisticado . [1]
El código oligomórfico funciona seleccionando aleatoriamente cada pieza del descifrador entre varias alternativas predefinidas. En tiempo de ejecución , estos componentes se pueden combinar de diversas maneras para crear versiones nuevas y distintas del descifrador. [2]
Tener múltiples descifradores posibles hace que sea más difícil detectar un virus con firmas anti-malware. Sin embargo, la mayoría de los virus oligomórficos solo pueden generar una cantidad limitada de descifradores, [2] alrededor de unos pocos cientos, [ cita requerida ] por lo que detectarlos con firmas simples aún es posible. Otro método para detectar un descifrador oligomórfico es crear una firma para cada fragmento de código posible, agrupar fragmentos que puedan sustituirse entre sí y escanear el archivo en busca de una cadena de fragmentos de descifrador de grupos alternos. Se puede utilizar la emulación para detectar el virus, pero puede requerir más recursos de los necesarios. [ cita requerida ]
El primer virus conocido que utilizaba un código oligomórfico fue el virus Whale DOS , identificado en 1990, que elegía entre unas pocas docenas de descifradores distintos. El primer virus de Windows 95 que utilizaba un código oligomórfico fue el virus Memorial, que podía generar 96 patrones de descifrado distintos. Otro ejemplo es la familia de virus rusa WordSwap. [1]