¿Cómo de amenazador crees que puede ser un programador de la vieja escuela?

Recientemente, Eugene kaspersky escribió en su blog un post  titulado  ‘Gran regreso de los programadores de malware de la vieja escuela’. Tengo edad suficiente para recordarlos a ellos y a

assembly_SPA

Recientemente, Eugene kaspersky escribió en su blog un post  titulado  ‘Gran regreso de los programadores de malware de la vieja escuela’. Tengo edad suficiente para recordarlos a ellos y a su brillante trabajo; no necesariamente me refiero a creadores de malware, sino programadores, codificadores y ensambladores. Son casi como los Jedi y los Sith, los cuales eran considerados por todos los héroes de la saga Skywalker, mucho más poderosos y hábiles en el uso de los Lightsabers (no es broma, pregúntenle a Yoda). Y pensé… rayos… vivimos  tres personas de las que presenciamos el verdadero poder de estas personas (Kaspersky, Bill Gates y yo).

En verdad, es realmente difícil entender lo que un hacker de la vieja escuela es capaz de hacer,  así que decidí mostrarles un poco de lo que Eugene hablaba, para que puedan decidir si, como pienso, son noticias verdaderamente aterradoras.

 Entrenamiento extremo para calculadoras estúpidas.

En 1992, las computadoras eran básicamente calculadoras inteligentes con pantallas grandes (no es broma, chicos). Sin embargo, existían muchos grupos de entusiastas que estaban más que felices de enfrentar retos con el software existente: algunos programadores se las arreglaron para crear un código que utilizara cada byte de memoria, cada función del procesador, registrar cada comando del SO y, lo más importante, el 100% de poder del hardware, exprimiendo hasta la última gota para obtener resultados. Tengo que señalar que para lograr esos resultados, uno debía ser muy creativo, beber mucho café (o fumar mucha mota, siendo honestos) y tener un nivel de IQ de miedo.  El movimiento comenzó alrededor de 1988, básicamente, más o menos al mismo tiempo que la primera versión de MS-DOS. No tenía nombre oficial, pero de acuerdo con las leyes de la evolución, tarde o temprano los involucrados tendrían que competir. Y de esta manera nació The Assembly  en 1992.

 

Future Crew vuelve del futuro.

En 1992, un grupo de programadores llamado Future Crew, junto con grupos amigos de programadores en Complex y Amiga, organizaron un evento llamado The Assembly, para compartir los resultados de su trabajo con Assembler y competir por el título de Mejor Programador del año. Existían muchas disciplinas, pero las dos más interesantes eran los demos de plataforma (PC, Amiga, C64) y PC de 64k. La  primera tenía como objetivo demostrar las más elegantes soluciones y habilidades de programación del hardware con código optimizado y minimalista. La  segunda era más  complicada: los programadores estaban limitados a 64kb -su código compilado (o sea, archivos read2work)- y  no podía pesar más de 64kilobytes. Por esto,  esta disciplina se volvió un concurso de elegancia en programación.

“Un demo de codificación es básicamente una serie de eventos programados con secuencias de comandos para demostrar las capacidades de hardware y / o las mejores soluciones de software para una tarea específica, como cálculos físicos complejos “.

En 1992, los Future Crew ganaron la competición  con su demo ‘Unreal’. Aquí lo pueden ver, (cabe destacar que es 1992 y aún no existia Windows). Este demo se llamó ‘Unreal’ (irreal) por una razón: nadie había logrado algo así antes.

Ellos fueron los primeros enmostrar un ambiente de trabajo en 3D, capas gráficas y complejos cálculos físicos y de iluminación. Y lo más impresionante, todo el

código compilado pesaba 1mb incluyendo la música (y en aquel  momento no existía la compresión en mp3). La única manera de lograr estos resultados, era dominando Assembler que, en mi opinión, es uno de los lenguajes de programación más complejos. Para que tengan una idea de lo que es Assembler, esto es lo que los chicos de Future Crew me dijeron hace ya muchos años:

Aprender a codificar demos es un proceso largo y difícil, que puede llevar  años. Una buena manera de comenzar es con un lenguaje de alto nivel como Pascal o C y luego  experimentar con Assembler. Toma mucho tiempo y experimentación para mejorar y no existen los atajos. Lo principal es tratar de entender qué es lo que haces para tratar de cambiar el programa y ver qué puedes obtener, y ganar sabiduría  para saber  cuál es la mejor manera de hacer las cosas. Aprender a programar bien requiere mucha paciencia, mucho entusiasmo y mucho tiempo. No es nada fácil.

Básicamente aquellos que estaban comprometidos con la competición, se volvieron la máxima fuente de inspiración para todos los desarrolladores de software. No digo que la gente se robara las  ideas, sino que todos estaban adoptando su visión creativa. Muchos productos que tenemos hoy en día, TODOS LOS VIDEOJUEGOS, Gráficos de Adobe y productos de video, GPS, Google Earth… todos esos productos que valen billones de dólares, se insipiraron en Assembly en algún punto. Por cierto, filmar y tomar fotos estaban estrictamente prohibido dentro del saloón de la competición , y quienes violaran esta regla serían  expulsados  para siempre.

1993 – El año de Second Reality y Eclipse.

El evento The Assembly resultó tener tal éxito, que el siguiente año el número de asistentes y demos presentados se duplicó (la tendencia fue bastante constante, ya que desde 1999 The Assembly se realiza en el campo  de fútbol  más grande  en Helsinky, que alberga más o menos a 5.000 personas de todo el mundo).

En 1993, Future Crew presentó algo fantástico, algo que elevó ó el estándar de calidad para  concursos venideros y cambió el mundo de la programación para siempre: el demo Second Reality:

Es esencial entender que este demo fue creado ANTES de que Intel presentara sus procesadores Pentium: Intel los presentó  el 22 de marzo  y las primeras PCs con Pentium comenzaron a enviarse antes de  1994. The Assembly generalmente se celebra en  verano, lo que significa que Future Crew lo presentó al menos medio año antes de que comenzara a comercializarse  Pentium. Esto significa que todas estas gráficas fantásticas y sonidos estaban disponibles en CPUs x486 con Sound Blasters primitivos y SIN tarjetas de video. Este demo enloqueció al jurado y a la comunidad de programadores: demostró los resultados que se podrían  logradr en niveles pro de Assembler con un acercamiento minimalista (el código complilado de Second Reality era de 1.5mb). Ese año, los Future Crew se hicieron famosos.

 Este es un video Behind the Scenes de Future Crew cuando estaban trabajando en Second Reality.

Otra victoria simbólica de 1993 es el demo Eclipse del  grupo EMF. Este código fue el número 1 en la nominación de 64kb máximo:

En 1994, el demo Verses,  del  grupo EMF,  ganó el primer lugar.

Básicamente, ellos mostraron al mundo que se pueden hacer cálculos de física de líquidos de manera realista, y cualquier transformación de objetos 3D usando Pentium es cosa fácil.

Y este ganador de 64kb, Airframe, del  grupo Prime, es la madre y el padre de todos los simuladores modernos de aviación en 3D:

Para que se hagan  una idea de lo  rápido que evolucionó el código, aquí hay una lista de los ganadores de 1995 a 2012.

Ganador de The Assembly de 1995: Stars, del  grupo NoooN.

Ganador de The Assembly de 1996: Machines of Madness, del  grupo Dubius.

Ganador de The Assembly de 1997: Boost, del  grupo Doomsday.

Ganador de The Assembly de 1998: Gateways, del  grupo Trauma.

Por cierto, estos son los  ancestros de la realización visual de World of Warcraft. Aquí nacieron los visuales en 3D para los MMORPG.

En 1999, la tecnología 3DFX cambió los gráficos para siempre. El demo de MatureFunk llamado Virhe volvió locos a todos los asistentes.

Assembly revisado.

En el 2000, las reglas cambiaron un poco: en lugar de competir en tres categorías, Amiga, PC y C64, se crearon categorías como Demo Combinado, Demo Oldschool y Límite de 64kb. La competición  en 64kb quedó  obsoleta en 2010, pero al final de este post podrán ver  algunos ejemplos fantásticos de lo que un programador ensamblador nivel pro puede lograr con 64kb.

Esta es la lista de ganadores en la categoría Demo Combinado, que es la más brillante en términos de dominio de Assembler:

En el 2000, el ganador del primer lugar fue Spot, del  grupo Exceed.

No se pierdan los efectos de iluminación, son increíbles (y no olviden que son tecnologías de hace 13 años).

En el 2001, el ganador  fue Lapsus, del  grupo MatureFunk.

En el 2002, el ganador  fue Liquid…Wen?, del  grupo Haujobb.

Tengo que destacar que todos los gráficos, incuyendo las caras y personajes en todos los demos de Assembly,  están dibujados usando solamente el código, no son archivos de imágenes insertados en el demo.

En el 2003, el ganador  fue Legomanía, de Doomsday. ¡Saluden a todos los juegos de las consolas 3D! Además, estoy seguro de que en este momento es cuando nació la visión del Nintendo Wii:

En el 2004, el ganador  fue Obsoleet, del Unreal Voodoo.

En el 2005, el ganador  fue Lconoclast, del  grupo ASD.

En el 2006, el demo Starstuck, de  The Black Lotus impresionó a todos por el nivel de sofisticación de la programación gráfica. Definitivamente elevaron bastante todos los estándares:

El ganador de 2007 fue Life Force, de ASD. Otro  fantástico  trabajo de  Assembler.

El 2008 fue el año de Within Epsilon, de Pyrotech.

El ganador del 2009 es uno de mis favoritos: Frameranger, de  los grupos Fairlight, CNCD y Orange.

En el 2010 “Happiness is right around the bend” ,de ASD nos enseñó un tanque fantástico 🙂

El ganador del 2011 fue Spin, de  ASD.

El 2012 fue fenomenal: Spacecut de  Carillon y Cyberiad, de  CNCD.

Los mejores ejemplos de la categoría de 64kb máximo

Para que se hagan  una idea de lo que un programador profesional puede hacer con 64kb, este es el mejor,  el del 2005: Che Guevara, der Fairlight.

Y lo repito: esto es código ensamblador de 64kb. Ni un byte de más.

Pero tres años después, en  2008, el mismo grupo demostró un inmenso progreso en  tecnología y se las arregló para hacer un demo como este de 64kb, ganando el primer premio con Panic Room.

Pero el mejor demo de 64kb de  la historia fue “X marks the spot”, de Portal Process , ganador en  2010.:

Ahora bien, déjenme presentarles el siguiente panorama… todos estos demos, especialmente los limitados a 64kb, demuestran el trabajo y talento de los programadores de la vieja escuela y lo que  pueden lograr cuando se lo proponen,  pero, y lo que es más importante, cuando dominan completamente Assembler, algo que no es muy común, ya que casi todos los productos son creados con lenguajes de programación de alto nivel, como Visual C y Object C.

Imagina sólo por un segundo que un programador de estos o un grupo como Future Crew decide mandar a paseo  todo el proceso creativo, 3D, música y cálculos físicos y enfocarse en un solo objetivo: crear un pequeño código que robe tu información financiera o ayude a recalibrar un Reactor Nuclear. ¿Qué te parece ?, ¿Lo lograrían? ¿Cuánto tiempo más vas a creer  que 64kb es más son  suficientes? ¿Podrían encontrar una manera de romper los sistemas integrados de Seguridad de Windows o de Apple? ¿Son móviles, flexibles? ¿Tienen el financiamiento para que esto sea   real tras hacer eventos gratuitos para 5.000 asistentes durante 20 años?

No les quiero decir la respuesta. Tienen que decidir por sí mismos. Pero cuando oigo a alguien decir: “Mi PC no necesita protección”, no puedo sino recordar el Second Reality y comenzar a rezar.

Gracias a Dios que los chicos que eran Future Crew están ahora muy ocupados 😀 Si tú eres el mejor en programar demos, ¿por qué no hacerlo en tu negocio? La próxima  vez que corras una prueba 3DMark en tu PC piensa en Unreal, Second Reality y Future Crew. Future Crew, como equipo, no presentó  nada más después de Scream Tracker 3 (en diciembre de 1994). Nunca se separaron de manera oficial, pero sus miembros se dispersaron  en la segunda mitad de la década de los 90 . Compañías como Futuremark (3DMark), Remedy (Death Rally, Max Payne, Alan Wake), Bugbear Entertainment (FlatOut, Glimmerati, Rally Trophy), Bitboys (compañía de hardware) y Recoil Games (Rochard) comenzaron con miembros de Future Crew.

Quiero dar las gracias  a todos ellos: cambiaron el mundo para siempre y nos demostraron que todo es posible si te centras  en ello. Incluyendo Kaspersky Internet Security.

Gracias por su inspiración, chicos. Y en el  fondo de mi corazón  espero que ninguno de los programadores que fueron  sido parte de The Assembly usen nunca sus habilidades con propósitos malignos.

 

 

 

 

 

 

 

 

 

Consejos