MUTATOR Version 1.0:
Segunda libreria para polimorfismo escrita en Argentina.

FORMA DE TRABAJO:
=================

+ Encripta el codigo, generando un desencriptor distinto para cada corrida.
+ Variabiliza los registros de operacion.
+ Todos son equisprobable.
+ Calcula su propio offset con el metodo de call-pop, de ordinario los 
  registros del pop asi como la distancia entre el call y el pop tambien es 
  variable.
+ Introduce instrucciones de relleno (aleatorias entre mas de 50 posibilidades)
+ La encriptacion la realiza realizando operaciones aritmeticas y logicas.
+ No requiere stack propio (Usa menos de 45 bytes de stack)
+ Longitud de la mutator 1774 bytes.

Esta rutina se presenta como un .obj que debe ser linkeada junto con su codigo
de la siguiente manera:

TLINK [/T] SUCODIGO.OBJ MUTATOR.OBJ

En su codigo usted debe declararla de la siguiente manera:

EXTRN MUTATOR :PROC

Preparar parametros para pasar a la rutina mutator...

CALL MUTATOR

PARAMETROS A PASAR:
===================
ES:DI = Buffer de trabajo para la rutina de polimorfismo mutator. A partir de
        aqui quedara el codigo encriptado junto con el desencriptador. La 
        longitud del desencriptador es variable.
DS:DX = Direccion de comienzo del codigo que usted desea encriptar.
CX    = Cantidad de bytes a encriptar mas la longitud de la mutator la cual 
        es de 1774 bytes.

PARAMETROS RETORNADOS:
======================
CX    = Longitud final en bytes de la copia encriptada, mas el desencriptador
        que se encuentra en ES:DI.

Los demas registros son preservados.

Se provee de un archivo de prueba, que hace uso de la rutina mutator.
Cada vez que se ejecuta es creado un nuevo archivo encriptado, el cual incluye
el desencriptador adecuado. El archivo es creado con el mismo nombre.

Lapidario [DAN], Argentina 1994.
