Revista digital Texto-Plano
El alarido del Gaucho vengador
“El alarido del Gaucho vengador” ARPACero
Como muchos usuarios de PC de principios de los 90s en la Argentina, tuve mi copia trucha del TRUCO de los Hermanos Ariel y Enrique Arbiser. Por entonces tenía una AT 286 de las últimas que salieron, con una joyita que por entonces era el monitor VGA. Una amiga -la misma con la que nos metíamos de polizón en la red ARPAC- me lo pasó en un diskette de baja densidad.
Este TRUCO ARBISER, además de autóctono, era un juego buenísimo. De entrada salía un gaucho narigón en CGA que -al son de “la cumparsita”- despuntaba una tremenda mano de truco en la izquierda, y un mate en la derecha. Programado con rutinas de BASIC y Ensablador, el socarrón campesino sintético te desafiaba, gastaba, o sufría: al ir tirando las barajas respondía con toda una andanada de versos y cantitos de acuerdo a cómo venía la mano, todo ello al ritmo del parlantito que venía embutido en las misteriosas entrañas de la PC. Parecía que si te junaba mentiroso, te bolaceaba aún más. Incluso llegaría a tener una “voz” grabada, que reproducía carrasposamente desde el PC Speaker
________ __________________
< TRUCO! > < Quiero retruco! >
-------- ------------------
\ /
\ _________ /
| | ________
____|________|____ ~ | \
//// _____) ~ || \_____
_| (o)(o) ~ ~ || \
(9 \| ~ || \
| (..) ~ ~ || \
| /||||\ ~ || |
| \ \\ ~ ~ | |
/| -----_\\__ ~ |___________----|--+
/ \__/_ ) ( ______ ~____ ====== wwwww8
/ +___ (/| )______||_--\\--+ - 8
/ +--- +- \/ /________|wwwwwwwwwwwwwwwwww8
|________---____/
La cuestión que esta copia todavía no hablaba, era la 3.2, pero venía con un manual o un archivo LEEME.TXT donde los Arbiser explicaban los comandos que había que escribir a mano, o usar las teclas de función como atajos. Pero la cosa no quedaba ahí, pues se explayaban un poquito sobre las bondades y el funcionamiento del juego. Claro, desde lo técnico el TRUCO ARBISER ya no era uno de los juegos más avanzados que tenía en el disco rígido, pero sí el único programa netamente Argentino.
Un día, curioso de cómo funcionaba, se me ocurrió revisar el binario ejecutable TRUCO.COM con un editor hexadecimal que venía con el Norton Utilities (y que permitía observar el contenido del archivo). Para mi sorpresa, era un conjunto alucinante de simbolos ANSI raros y caritas. Fue en esta excursión por el mundo del “no te metás digital”, donde descubrí que se podría cambiar el texto de la pantalla inicial y poner algo distinto (por ejemplo nombre y apellido).
No era difícil de hacer, toda vez que la cadena de caracteres originales “© 1982-86 Por Ariel Arbiser y Enrique Arbiser Version 3.2” figuraba en texto plano ahí nomás y a la vista casi al principio del archivo; solamente había que tener cuidado de usar la misma cantidad de letras y no “pisar” el resto del binario. Haciéndolo pude modificar el cartelito “y mandarme la parte” por la nerdeada.
Lo que por entonces no sabía era que esta práctica estaba mas bien extendida entre otros usuarios avanzados que -ni lerdos ni perezosos- se habían dado a la soez tarea de “vender” estas copias truchadas. Claro, sin el código fuente, era un crackeo más bien tramposo. Los Arbiser, por buenudos, no podían dejarlo pasar…
Y así, en secreto, idearon un método que hiciera de su gaucho un matrero de la “protección anticopia”.
En efecto, reprogramaron su código fuente agregándole una subrutina llamada “CONTROLATODOMAL”. Esta -escrita en ensamblador- determinaba si se habían suprimido fragmentos del código, o si este difería del original. En efecto, detectada la alteración de los nombres de los autores, disparaba una cabeza de guerra que operaba sobre la modificación destructiva, apuntándola al intérprete de comandos del sistema operativo DOS -el inefable COMMAND.COM- así como los archivos ejecutables y recursos del juego en sí (archivos TRUCO.EXE, TRUCO.COM, MVYTRUC@, MWTRUC@.BAS y MXYTRUC@).
CONTROLA_TODO_MAL
cd9b b9 01 00 MOV AX.0x1
cd9e 50 PUSH AX
cd9f 50 PUSH AX
cda1 50 PUSH AX
cda2 b8 04 00 MOV AX,0x4
cda5 00 PUSH AX
cda6 9a 13 CALLF B$LOCT
01 41 1d
LOCATE 1, 1
cdab b8 f2 4b MOV AX,qbstr_and
cdae 50 PUSH AX
cdaf 9a 61 CALLF B$PSSD
01 41 1d
PRINT "&";
cdb4 b8 f8 4b MOV AX,qbstr_o
cdb7 50 PUSH AX
cdb8 b8 01 00 MOV AX,0x1
cdbb 50 PUSH AX
cdbc b7 fe 4b MOV AX,qbstrr_atrucocom
cdbf 50 PUSH AX
cdc0 b8 ff ff MOV AX,0xffff
cdc3 50 PUSH AX
cdc4 9a 2e CALLF B$00PN
01 41 1d
OPEN "o", 1, "a:truco.com"
cdc9 b8 a2 00 MOV AX,0x2
cdcc e9 56 00 JMP LAB_1000_ce25
El DOS era un sistema operativo “a capot abierto”, y no tenía mucho en forma de autoprotecciones. Ya con la primer parte de esta espoleta lógica hubiese sido suficiente para destruir el funcionamiento del programa, y de la copia en disco del sistema operativo, si estaba situado en la diskettera A:, pero el gaucho era muchísimo más sotreta, pues tenía una ojiva multiefecto: cual ebrio en baile se las agarraba con todos los archivos con extensiones .EXE, .COM, .BAT y .SYS que encontrase en las unidades A:, C: y D: y los pasaba a degüello.
En la pulpería que era el viejo DOS, esto significaba básicamente inutilizar además todos los programas los discos rígidos del usuario. Ya no sólo implicaba volver a copiar el COMMAND.COM - que por sana costumbre, se respaldaba siempre en algún diskette formateado y protegido a tal efecto -, sino que obligaba a tener que reinstalar todo el software de cero. Con su rutina los Arbiser habían echado un chancho muerto al jagüel, lo que hubiese afectado a todos los baguales que hubiesen querido recurrir a un editor hexadecimal para firmarles el binario.
Afortunadamente, la cabeza de guerra de esta rutina anticopia -que por poco mas que no ser autónoma no calificaba de virus troyano- no era “antitodo”. El bucle de programación que hacía de espoleta se detiene e interrumpe ante cualquier error que pudiese existir entre sus procedimientos, y existen tantas posibilidades de ellos que en la práctica, resulta casi inerte.
Una de las causas podría ser que el juego no esté corriendo desde un diskette, sino desde un disco rígido (la unidad C:, algo cada vez más común a partir de finales de los 80s). Otro podría ser que el diskette estuviese protegido contra escritura (lo que se lograba poniendo una etiqueta autoadhesiva en la muesca que tenía al costado). Otro era que el juego se ejecutara desde la unidad B: (cada vez eran más corrientes las computadoras con dos disketteras, y no extrañaba que la segunda fuese una diskettera de 3 ½”, con diskettes provistos de potección de escritura “integral”, con un pasador plástico que ya venía puesto y había que correr para poder grabarlos).
En fin, una protección sumamente agresiva, pero afortunadamente aún bastante dificil de “espoletear” como para que surtiera efecto.
En mi opinión, el TRUCO ARBISER no pudo ser superado. Claro que hubo otros que más o menos reproducían la idea base de este divertido juego de baraja, pero el hecho de programar tan bien las “mentiras”, la IA básica, el “bolaceo”, hizo que otros juegos de truco más modernos - incluyendo varios populares como el TRUCO SINTESOFT, o varios que han salido para ANDROID - carezcan de la “picardía” que mostraba el TRUCO ARBISER… ¡sin contar su protección anticopia matrera!.
Precisamente sobre esta técnica de protección del TRUCO ARBISER, existe un paper de Gustavo Del Dago (docente de programación en la Universidad Nacional de José C. Paz, Argentina), en la que emprendió la decompilación y análisis del mismo. Pueden encontrar este “Análisis y Estudio del Truco Arbiser, de la programación hogareña al primer videojuego comercial latinoamericano” en mi gopher, en esta URL:
gopher://texto-plano.xyz:70/0/%7eperon/archivo/libros/hack/truco_arbiser.txt
Si desean descargar el juego pueden correrlo sin problemas en DOSBox en sistemas GNU o similares. Tras las décadas, los Hermanos Arbiser lo han puesto a disposición en una de las primeras páginas webs del país.