Copy Link
Add to Bookmark
Report

Minotauro Magazine Issue 05 01 Producci¢n (no tan) Nacional Virus CPW

eZine's profile picture
Published in 
Minotauro Magazine
 · 6 Feb 2021

  

Minotauro Magazine Issue #5

Producci¢n (no tan) Nacional
Virus CPW
(Unasm y Texto) Por Trurl

Para complementar un poco la hilarante nota del amigo Wma en el n£mero
anterior de nuestra revista, pensamos que seria buena idea proveer a
nuestros lectores del source de este virus, mas una peque¤a rese¤a t‚cnica
que aclare algunos puntos que no quedaron muy claros en la nota de Virus
Report. (Y que son bastante divertidos, osea, las rutinas de activaci¢n).
Por ende, he aqu¡ Nuestra rese¤a t‚cnica sobre el virus CPW, del
hermano pa¡s de Chile (como se suele decir :-)), y el source del virus,
para que ustedes puedan juzgar "the real thing".
Ya que estamos, aprovecho para mandar un saludo a todos los autores de
virus (y hackers) chilenos, que seguramente no nos est n leyendo, ya que
esta revista solo va a cruzar la cordillera cuando nos deporten las
autoridades (o tengamos que huir de ellas :-)). Como sea, si alg£n d¡a
llega, saludos.
No hace falta aclarar que todo esto solo corresponde al CPW, NO al
CHME, que en todo caso mandaremos en otro n£mero.

% El CPW %
Para decirlo en buen romance, este virus es, b sicamente, un
infector de COM/EXE residente.
Tiene la particularidad de ser un "fast infector", tal como nosotros
llamamos a este tipo de virus, que se reproducen a trav‚s de varias
funciones, no solo la cl sica 4B. En el caso de este virus, lo hace tambi‚n
con la funci¢n 3D00 (abrir para lectura), y la 43 (cambiar atributos). Como
estas funciones no difieren en el pasaje de par metros (en todas el nombre
del archivo en cuesti¢n viene en DS:DX) se hacen todas las infecciones con
la misma rutina.
Otros detalles son que infecta READ ONLY, no modifica la fecha del
file al infectar, y no produce error al infectar en un diskette
write-protected (intercepta INT 24 al infectar, bah).
El virus ocupa 1459 bytes, y queda en memoria con 2000 bytes. (no usa
nunca esta heap). El m‚todo de residencia que usa es la ya cl sica
manipulaci¢n de MCB, aunque el c¢digo que usa para hacer esto es poco
convencional.
Una ultima observaci¢n interesante es que, por el dise¤o de la rutina
de infecci¢n, el virus no infecta COM de extensi¢n .EXE (En mi opini¢n,
esto se le "escapo" al autor, se equivoco en un JMP). Me imagino que esto
es lo que lleva a decir al de Virus Report que la efectividad del virus es
de "98%" (Se ve que ese 2% son los COM de extensi¢n .EXE que el tipo
escaneo, ya que ese es el £nico tipo de file que no infecta).

% Activaci¢n %
El virus tiene, en realidad, 3 rutinas de activaci¢n, a saber:
1) Si es 27 de mayo (como ver n la fecha esta BASTANTE bien
determinada), imprime el mensaje "Feliz cumplea¤os CPW!", y cuelga la
maquina. (Este disparador esta en la INT 21h)
2) El virus instala una rutina en la INT 16h que aproximadamente a la
1PM (13 hs) y a las 12 de la noche (0 hs) y durante mas o menos 1 minuto
(seg£n los c lculos de este humilde cronista), reemplaza todos los
caracteres que se entran desde teclado, por una string de 18 (12h)
caracteres que se repite, y que es: " You are here CPW!". Cuando pasa ese
minuto, todo vuelve a la normalidad. Esto no implica (como dice en la nota
de Virus Report err¢neamente) que el texto sea mostrado por pantalla, sino
que sencillamente, el texto entra como si fuera tipeado desde teclado. Que
pasara con el a continuaci¢n depende del trato que haga el programa que se
este ejecutando en ese momento con esos caracteres. Pueden salir a pantalla
(si uno esta en un procesador de texto, p.ej.) pueden ser interpretados mal
(como caracteres de control de alg£n programa que reaccione, p.ej. al
car cter "A"), o aun ignorados por completo (esto pasa en la mayor¡a de los
juegos con mouse :-)). Esto reduce aun mas las probabilidades de que
alguien que NO desensamblo el virus note realmente cuando y como "sucede"
esta string.
3) En la misma rutina de INT 21 (en el medio de la infecci¢n) el virus
chequea si el nombre del programa en cuesti¢n (ejecutado, abierto, etc)
contiene una substring de : "CNCGUARDEMSCPAVSCANCLEANFINDVIRUCHKVIRUS".
Cuando digo "el nombre" me refiero a todo lo comprendido entre el punto y
la ultima barra (de "C:\DOS\PROG.COM", seria "PROG"). Por lo tanto, se
dispara con varios antivirus conocidos (CPAV, SCAN, CLEAN) como con otros
no tan conocidos (FINDVIRU, VIRUSCHK) o incluso con cualquier otra
substring posible que no tenga nada que ver (NDV, HKVI, o cualquier otra
verdura que quieran). Al activarse esto, lo que sucede es que el file en
cuesti¢n es borrado (via AH=41/INT 21). Simp tico :-).

% en conclusi¢n... %
El virus esta bien escrito, no tiene c¢digo muerto, y esta bastante
bien estructurado (relativamente f cil de entender), y mas o menos
optimizado. Las rutinas de activaci¢n son bastante divertidas. En fin, un
lindo virus, y ya estoy podrido de sanatear, as¡ que ac  va...

% SOURCE %
;---------------------- Cut Here ------------------------------------------
; Source del CPW en: CPW.ASM
;---------------------- Cut Here ------------------------------------------

Bueno, cortar, pegar, ensamblar, etc. Lo comente tanto como pude, si
les parece poco, preg£ntense porque el comentario de "openfile:" es "esta
rutina abre el file", y saquense el helado de la frente. Ah, y ojo con lo
del byte-a-byte match, lo tuve que fixear un poco porque el autor uso unos
LEA DX, [directo] (sin registro) para cargar DX, en vez de usar MOV, y como
ocupan mas, el TASM los hace MOVs (y otras cosas...). Saludos y hasta el
pr¢ximo virus...
Trurl el gran constructor [DAN]

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT