💾 Archived View for texto-plano.xyz › peron › relatos › alarido_gaucho_arbiser.gmi captured on 2024-12-17 at 10:11:13. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
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 "(c) 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 "CONTROLA_TODO_MAL". 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, un archivo - 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 toda los baguales que hubiesen querido recurrir 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). Y 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 1/2", 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:
Análisis y Estudio del Truco Arbiser (G. Del Dago).
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.