—¿Quién sabe cómo programar un virus de ese tipo?
—Sólo unos millares de piratas. Y, desde luego, cualquiera que se dedique a lo mismo que yo.
—¿Cómo Al Meade? -preguntó George.
—Pues sí -respondí.
Al mismo tiempo, Jason inquirió:
—¿Quién es Al Meade?
George y yo cruzamos una mirada. Todavía no le habíamos explicado a Jason lo de Al, y tampoco el hecho de que el equipo de Mephisto supiera o pudiese adivinar cuál era la
enfermedad
de Goodknight. Nuestro gesto no le pasó inadvertido a Jason, que preguntó:
—¿Alguien va a decirme qué rayos está ocurriendo?
Se lo contamos. Maldijo y protestó un poco, pero después de calmarse tuvo que admitir que había sido mala suerte y que nada podíamos haber hecho.
—Además, gracias a que Mike estaba allí -apuntó George-, ahora sabemos que Mephisto también tiene problemas.
—¿Estás seguro? -dijo Jason-. ¿Cómo sabes que los de Mephisto no han contratado a esa mujer para infectar a sus rivales?
—¿De verdad crees que harían algo así? -preguntó George.
—¿No es eso lo que insinuabas cuando preguntaste a Mike si sabía cómo programar un virus mutante? Sí, realmente los creo capaces de eso. Conocí a Darryl Taggart cuando éramos estudiantes en la universidad y es un auténtico capullo. El único motivo que tengo para dudar que lo haya hecho es que es demasiado arrogante para pensar que tenemos la más mínima posibilidad de derrotarlo. Pero quiza lo haya hecho de todos modos, aunque sólo sea para jorobarnos.
—Mire, hace mucho tiempo que conozco a Al, de manera profesional, no personal -añadí como respuesta a la mirada maliciosa de George-, y no la creo capaz de algo así. Sería como si un médico envenenase a su paciente.
—Al paciente de otro médico -precisó George. Hice una mueca y añadió, mostrándome su lealtad- Pero yo tampoco creo que lo haya hecho.
—Espere un minuto, Mike -dijo Jason-. ¿No fue usted quien apuntó que era probable que esto se hubiera hecho de forma deliberada?
—Comenté que era probable que lo hubiera hecho alguien de dentro.
—También comentó que nuestros rivales eran quienes tenían los motivos más obvios.
—Una cosa es el motivo, pero también hay que tener la oportunidad.
—¿Cree que no han tenido ninguna oportunidad? Esto no es Fort Knox exactamente -dijo Jason- Lo que quiero saber es por qué esa tal Meade no quiso cooperar con usted cuando se lo propuso. No es algo que inspire mucha confianza. Creo que Taggart está preparando algo.
—Así pues, ¿qué hacemos? -preguntó George-. ¿Vamos al Moscone Center con látigos y los obligarnos a confesar?
—Antes, quiero echarle un vistazo a ese virus -dije.
Defensa Ceciliana
Dichoso el que esté en vela y conserve sus vestidos,
para no andar desnudo y que se vean sus vergüenzas.
APOCALIPSIS 16,15
Cuando la gente escribe programas de ordenador, suele utilizar un lenguaje denominado de alto nivel. Este lenguaje informático es, a su vez, un programa que traduce unas instrucciones, que intentan parecerse lo más posible al inglés, al lenguaje máquina, también conocido como código objeto. Este consiste en unas series de ceros y unos que constituyen el código binario que el microprocesador del ordenador es capaz de entender. Otro término que define el lenguaje que usa el programador para escribir el programa es código fuente.
También es posible escribir un programa en un lenguaje llamado ensamblador, aunque resulta mucho más difícil y requiere un conocimiento detallado del funcionamiento interno del ordenador. Además, el lenguaje ensamblador es específico de cada microprocesador o familia de microprocesadores, mientras que un lenguaje de alto nivel puede aplicarse a tantos microprocesadores distintos como se quiera. Los virus casi siempre están escritos en ensamblador.
Mirar una serie de código de lenguaje máquina para invertir la compilación, lo que básicamente consiste en reconstruir el código fuente, no es una tarea imposible, al menos en teoría. De hecho, yo no miraba el código binario, sino su conversión a hexadecimal, que es un poco menos mareante y consume menos papel al imprimirlo. Uno de los que tenía en mi programa de examen: un angelito de mil seiscientos bytes con el sugestivo nombre de Folladiscos. No disponía del código fuente, pero sabía que no era un mutante. Sin embargo, cabía la posibilidad de que alguien lo hubiese modificado para mutar. Desde luego, en teoría era posible hacerlo.
Estuve jugueteando un rato. Presté especial atención a las secciones que eran diferentes del original. Intenté invertir la compilación de algunas de ellas, pero no averigüé nada que aclarase la cuestión. Me di cuenta de que no sería fácil ni rápido invertir la compilación de todo el virus, porque su diseño resultaba bastante retorcido. Pensé que tendría que utilizar otro enfoque.
Abrí la maleta y saqué el portátil. Es un modelo que tiene unidades de disco duro intercambiables. Primero comprobé que no se había contagiado de un virus de Goodknight. Ningún detector se había activado y el disco parecía estar limpio; no obstante, seguí una corazonada y decidí olvidarme en aquel momento de todo eso y analizarlo después con más detalle. Extraje la unidad y saqué de la maleta la otra que quería utilizar, una que llevaba puesto un gran adhesivo que decía: «¡PELIGRO! Este disco contiene virus activos». En realidad no era así en esos momentos. Lo que tenía era un sistema operativo con una subrutina de inmunidad modificada, que localizaba los animalejos pero no los eliminaba. Cargué el virus del programa OCR en esta unidad. Ahora debía dejar pasar cierto tiempo para que se incubase. ¿Cuánto? Un virus típico puede infectar por completo un sistema en unos dos segundos, pero un mutante tarda más porque no sólo se copia a sí mismo. Decidí decirlo en funcionamiento varias horas.
Si mutaba, todavía sería detectable con los códigos de autoidentificación de mi sistema operativo. En el caso de que así sucediese, podría comparar las dos generaciones de virus e identificar las áreas estables. Para entonces tendría identificado el probable blanco de mi trabajo.
El problema era no saber el tiempo necesario de incubación. Algunos animalejos se reproducen siempre que tienen la oportunidad, como cuando el sistema principal crea un archivo o ejecuta un tipo determinado de programa; otros incluyen un período de demora o están programados para activarse en una fecha específica. Un gusano bastante famoso de principios de los noventa, apodado Ooey Gooey, estaba programado según los horarios de trenes entre Nueva York y Filadelfia. Siempre que un tren atravesaba Frentón, mostraba un gráfico de una rueda de tren que aplastaba un gusano con la cara del gobernador de Nueva Jersey. Una vez más, sólo tenía lo que ya sabía de Folladiscos, el virus original, del cual éste parecía una variante. Folladiscos era un animalejo bastante sencillo. Ejecuté una especie de programa automático en el portátil; para decirlo en pocas palabras: era un proceso para mantener atareado al ordenador y dar así al virus grandes oportunidades de reproducirse. Pensé concederle un plazo de un par de horas antes de examinar su progenie.
Estaba recogiendo mis cosas cuando llegó George.
—Si quieres que te pague la cerveza, es el momento adecuado -me dijo. Miré el reloj, lo cual fue un acto superfluo, porque mi estómago ya estaba diciéndome que necesitaba comer. Eran más de las seis y no había tomado nada desde el desayuno.
—¿Sería posible acompañar esa cerveza con un poco de comida?
—Desde luego. Conozco un sitio bastante bueno en University Avenue. Aunque, bien pensado, creo que tú deberías invitarme a mí. Al fin y al cabo, eres tú quien tiene los gastos pagados.
Media hora más tarde estaba comiéndome unos
tortellini
con queso de cabra y tomates naturales. Aplacé el pago de la cerveza y me tomé a medias con George una botella de un
merlotde
Napa Valley bastante bueno.
Charlamos sobre varias cosas y nos pusimos al día de todo lo sucedido desde que nos graduamos. George levantó la botella para volver a llenar mi vaso y me miró con expresión taimada.
—Bueno, ahora cuéntame lo de Al Meade y tú.
—¿Te refieres a si creo que fue ella quien saboteó el programa? -pregunté haciendo una mueca.
—¡Diablos, no! Oye, te dije que Jason era un paranoico. No, no era eso lo que quería decir. Dime qué es lo que hay entre Al Meade y tú.
Me eché a reír. Me hubiese gustado pensar que era una risa alegre y despreocupada, pero no puedo negar que tenía un matiz amargo.
—Está claro que meas fuera del tiesto -respondí.
—¿Qué fue? ¿Una noche de locura? ¿No la llamaste más y ahora te considera un bicho repugnante?
—Tienes razón a medias -dije, meneando la cabeza-. Es evidente que cree que soy repugnante. Pero de sus motivos, no tengo ni idea.
—¿Nunca le has tirado los tejos?
—Siempre un trato estrictamente profesional. Es una colega, ya sabes. ¿Quieres que me acuse de acoso sexual?
George asintió con la cabeza con gesto comprensivo.
—Creo que ya entiendo el problema.
Me quedé totalmente confuso.
—¿De qué rayos estás hablando?
Se recostó en el asiento y tomó un sorbo de vino con una enervante sonrisa de suficiencia. Estaba empezando a fastidiarme.
—Michelangelo, amigo mío, hay dos cosas que pueden hacerse a una mujer realmente imperdonables: una es tirarle los tejos cuando tus atenciones no son bienvenidas; la otra, no tirárselos cuando ella lo está deseando. Dado que hemos eliminado la primera posibilidad, sólo queda la segunda.
Quod erat demonstrandum.
Me eché a reír de nuevo, pero casi me atraganté con los
tortellini
cuando comprendí que hablaba en serio.
—¿Has estado mirando últimamente esos programas de entrevistas? ¿Cómo se llamaba:
Oprab Winfrey habla con mujeres despreciadas
o algo así?
—Mike, Mike… -dijo George meneando la cabeza-. Es evidente. ¿Sabes? nunca supe por qué, pero la mayoría de las mujeres que conocí en la universidad parecían creer que eras atractivo. Deben de ser tus grandes e ingenuos ojos azules.
George tenía suerte de que el vino fuese excepcional; de lo contrario, se lo habría tirado a la cara.
Cuando terminamos la comida y el vino, George dijo:
—Pareces tan agotado como yo. ¿Por qué no vienes a dormir a mi apartamento? No creo que pueda soportar ir en coche a San Francisco y volver.
—Vale. Además, estás demasiado borracho para conducir.
—Es sólo fatiga, no embriaguez -replicó en tono severo.
—Quizá tengas razón. O tu resistencia ya no es lo que era. Bueno, vamos primero al SAIL, quiero comprobar una cosa.
Conduje yo. Al llegar al SAIL vimos que todavía estaban todos allí, haciendo lo mismo, lo que para una persona ajena al lugar se parecía mucho al ambiente que cabía esperar en una institución para enfermos mentales. Alex Krakowski, encorvado frente a un tablero, murmuraba para sí y se estiraba los pelos de la barba; los expertos en hardware hacían cosas típicamente inescrutables en el Tokoyo IV; los programadores aporreaban los teclados de sus terminales, y Jason Wright iba de un lado a otro a unos mil kilómetros por hora e interfería en todo lo que hacían los demás.
Acerqué una silla a la mesa donde había dejado mi portátil y me senté. George se situó encima de mi hombro. Jason apareció de inmediato al otro lado.
—No es necesario que revele ningún secreto profesional, pero ¿qué es lo que está haciendo exactamente? -preguntó.
—He infectado este sistema operativo de forma deliberada con el virus del OCR -comenté mientras trabajaba-. Quiero comprobar si ha mutado. Con este programa puedo averiguar incluso eso. Entonces tendremos más claro a qué nos estamos enfrentando.
Escribí las instrucciones para ejecutar una subrutina que explorara todo el sistema operativo en busca de cuerpos extraños.
—¡Felicidades! -dije cuando los resultados de la exploración aparecieron en el monitor de cristal líquido-. El virus ha tenido hijos. Diecisiete.
George lanzó una mirada a Jason.
—Espero que te acuerdes de los puros -comentó en tono inexpresivo. Jason no parecía muy contento.
Ejecuté otra subrutina para que creara una lista de todos los virus y los comparara con el original. Los primeros eran iguales.
—¡Caramba, Mike! -exclamó George-. Estás complicándote un poco la vida. ¿Has oído hablar de la inteligencia artificial?
En realidad, había varios programas antivirus en el mercado que incluían inteligencia artificial, incluso recomendaba algunos de ellos a mis clientes de vez en cuando, pero a mí no me gustaba utilizarlos.
—Cuando busco virus, prefiero poner yo la inteligencia y dejar que el ordenador haga el trabajo sucio -respondí.
George emitió un gruñido.
Seguí comparando las copias del virus hasta el final de la lista. Todos eran iguales al original.
Jason había rodeado la mesa para verme la cara. Al parecer, pensaba que así obtendría más información útil que de la propia pantalla. Cuando me vio arrugar el entrecejo, gritó:
—¿Qué? ¿Qué sucede?
Pensé que iba a necesitar un sedante, pero a pesar de ello le di la mala noticia.
—Este virus no muta -dije.
—¿Cómo puedes estar seguro de que no mutará si le das más tiempo? -preguntó George, rascándose la cabeza-. Al fin y al cabo, Goodknight ha estado funcionando durante meses con ese OCR.