Inicio / Tecno / Este donut es un ejemplo de la magia del código ofuscado: así es como los programadores juegan a disfrazar el código de otra cosa

Este donut es un ejemplo de la magia del código ofuscado: así es como los programadores juegan a disfrazar el código de otra cosa

En 2006 un programador Andy Sloane se aburría, así que se dijo, "voy a probar a hacer algo con código ofuscado". Dicho y hecho. Creó un pequeño programa cuyo aspecto en el editor de código era el de un sencillo donut. Uno lo ve y se dice "bueno, bien, tiene forma de donut y hay letras dentro".

Pero no son solo letras. Ese donut encierra un código que al ser compilado y ejecutado muestra su magia. En este caso dibuja un donut en 3D con caracteres ASCII que además está animado y gira sobre un eje. Es un ejemplo de código ofuscado, una disciplina que atrae a desarrolladores de distintos lenguajes de programación y que les permite crear piezas de código singulares disfrazadas, por ejemplo de arte ASCII, o generar sorprendentes funciones a partir de líneas de código aparentemente inocuas .

Un generador de donuts encerrado en un donut

Podéis probarlo vosotros mismos rápidamente en vuestro ordenador si tenéis acceso a Linux (también en Windows gracias al bash que proporciona WSL, es fácil acceder a él) y a un compilador como gcc.

Basta con crear un nuevo fichero de texto llamado por ejemplo donut.c y copiar el contenido de este código. A partir de ahí guardáis, compiláis con 'gcc -o donut donut.c -lm', y ejecutáis el resultado. Os aparecerá un donut girando en 3D similar al vídeo superior.

Cuando el ASCII Art conquistó nuestras pantallas En Xataka Cuando el ASCII Art conquistó nuestras pantallas

El ejemplo es sencillo pero igualmente sorprendente, y a partir de ese punto de partida este usuario llevó su ejemplo a una implementación más ambiciosa para luego explicar (cinco años después) que aquel sencillo código tenía mucha más miga de la que parecía.

Ofuscar el código es todo un arte, y tiene su propio campeonato (con trampas)

Hacer que el código haga cosas que parece que no está haciendo es todo un arte en sí mismo, y los programadores aficionados a esta disciplina suelen ir a contracorriente y producir código que es de todo menos entendible de forma sencilla.

Plane

El propósito es a menudo el de lograr por ejemplo ocultar ese código en imágenes ASCII aparentemente inocuas, pero también el de proteger el código para hacer que como decimos sea difícil entenderlo y proteger así su propósito (seguridad a través de la oscuridad).

Repensando la carrera de ingeniería informática: hablan los profesionales En Xataka Repensando la carrera de ingeniería informática: hablan los profesionales

Lenguajes como C o Perl son especialmente adecuados para este tipo de tareas, y esta disciplina ha hecho que aparezcan de hecho concursos y campeonatos como el conocido International Obsfuscated C Code Contest que se celebra de forma irregular (a veces un evento anual, otras pueden pasar dos, tres o incluso más años entre edición y edición) y en el que podemos encontrar ejemplos espectaculares de lo que se logra con este código.

El resumen de lo que hace cada pequeño programa participante en estas ediciones lo deja claro. Tenemos de todo: transcodificadores de audio a morse, pequeñas demos de Flappy Bird, codificador QR, generadores de GIF animado a partir de texto, simuladores de viejos ordenadores como un PDP-7/11, herramientas de factorización visual, calculadoras hexadecimales, pequeños juegos de tanques o incluso reproductores de ficheros de trackers musicales.

Codif

El concurso cuenta con ciertas reglas, pero desde que se creó una de las reglas es precisamente tratar de violarlas. "Hackear las reglas del campeonato es una tradición", decía Landon Curt Noll, uno de sus creadores, en 2011. Dichas reglas se crean con deficiencias que los programadores deben encontrar y aprovechar para ganar el concurso.

Código ofuscado por doquier

Las técnicas y elementos que utilizan los programadores no solo logran que el código haga algo, sino también importa el formato del código, que a menudo se esconde en forma de imágenes de arte ASCII o que también puede ser código que se auto-modifica (es decir, que altera sus propias instrucciones mientras que se ejecuta).

Chess1 El motor de ajedrez es alucinante: muestra el tablero de forma muy básica, pero la máquina juega contra ti como si de un juego completo de ajedrez se tratase.

Los ejemplos son numerosos y hay de todo, pero por ejemplo uno de los más llamativos es el llamado Toledo Nanochess, un motor ajedrecístico programado en tan solo 1.255 caracteres por parte de Oscar Toledo Gutiérrez, un programador mexicano que ha ganado cinco veces el campeonato de la IOCCC y que acabó escribiendo un libro para explicar qué hacía ese código tan singular. Más tarde fue más allá y creó el Toledo Picochess, aún más reducido y que con tan solo 944 caracteres lograba lo mismo.

Y el editor de código favorito de los programadores es… 8 profesionales nos dan su respuesta En Xataka Y el editor de código favorito de los programadores es… 8 profesionales nos dan su respuesta

Estas técnicas son desde luego llamativas y han hecho que por ejemplo exista un subrredit dedicado a este tipo de código, pero también todo tipo de retos en otros foros como Stack Exchange o Stack Overflow en los que por ejemplo se proponen retos que los programadores logran resolver de formas tan distintas como originales. Hay quien simplemente trata de explicar cómo hacen estos programas lo que hacen.

Los ejemplos son también numerosos en sitios como GitHub -atentos a esta animación de fluidos en ASCII- y desde luego todo ello demuestra que estamos ante otro particular ejemplo de la creativad de unos desarrolladores que no se conforman ya con programar: lo hacen de formas realmente originales (y enrevesadas).


La noticia Este donut es un ejemplo de la magia del código ofuscado: así es como los programadores juegan a disfrazar el código de otra cosa fue publicada originalmente en Xataka por Javier Pastor .

Chequea también

Galicia prohibirá fumar “si no se puede garantizar la distancia de seguridad” para luchar el COVID-19: esto es lo que sabemos

El presidente de la Xunta de Galicia, Alberto Núñez Feijóo, ha anunciado la prohibición de fumar cuando se circule por la calle y otros espacios públicos si no se puede garantizar la distancia de seguridad. ¿El motivo? "Varios miembros del comité clínico coincidían en que fumar sin ninguna limitación en terrazas o zonas de gran afluencia de ciudadanos es un riesgo alto", ha explicado Feijóo en rueda de prensa. Aún no tenemos el texto de la normativa porque, como era previsible, tiene muchas derivadas legales y "se está redactando para dar seguridad jurídica". No obstante, si todo va como espera la Xunta, entrará en vigor a partir del jueves en las cuatro provincias gallegas. La idea sigue las recomendaciones del documento que elaboró en julio la Comisión de Salud Pública del Sistema Nacional de Salud que ya advertía que fumar y vapear podía aumentar el riesgo de contagio. Esto es lo que sabemos hasta ahora. ¿Fumar aumenta el riesgo de contraer el virus? ÚLTIMA HORA | Feijóo anuncia ademais que se prohibirá fumar nas rúas de toda Galicia a partir de mañá para evitar a propagación do virus https://t.co/9MwLMOCEfB pic.twitter.com/uuSoSwxUf4— G24 (@G24Noticias) August 12, 2020 Efectivamente, el 2 de julio la Comisión de Salud Pública recopilaba la opinión de la la Organización Mundial de la Salud y varias sociedades científicas y médicas sobre el asunto. Además de resaltar que el tabaquismo es un factor de riesgo en la evolución de la enfermedad, encontraron que hay otros riesgos relacionados con el contagio del virus. En Magnet ¿No afecta a fumadores? La desinformación en torno a la protección del tabaco frente al coronavirus Según indicaban, el acto de fumar y vapear suele tener aparejado "la manipulación de la mascarilla de protección y el contacto repetitivo de los dedos con la boca tras tocar productos (cigarrillos convencionales o electrónicos) o utensilios (pipas de agua)". De la misma forma, aunque no se han encontrado evidencias de que los fumadores exhalen más cantidad de virus que los no fumadores, el hecho de fumar aparece vinculado a prácticas que conllevan la "expulsión de gotitas respiratorias que pueden contener carga viral y ser altamente contagiosas". A todo eso hay que sumar la "relajación de la distancia social de seguridad" del "fumar social". Es decir, las autoridades encontraban en el tabaco una actividad asociada a conductas de riesgo. Sin embargo, las recomendaciones de la comisión eran "evitar su consumo en ambientes comunitarios y sociales" y "realizarse en espacios separados abiertos, extremando las medidas de higiene personal" (con lavado de manos previo y posterior a la manipulación de los productos y los utensilios empleados. Además, prohibía el uso de pipas de agua durante las fases I, II y III del desconfinamiento. La Xunta, en este caso, iría más lejos. Creando un asidero legal para intervenir en contextos en los que el consumo de tabaco genere situaciones de riesgo. No obstante, hay dudas de la eficacia real de este tipo de prohibiciones. En definitiva, las "reuniones sociales de riesgo" (es decir, personas cerca sin mascarilla al aire libre) ya estarían prohibidas y parece poco probable que fumar al aire libre tenga un impacto real en el número de casos. No obstante, la Xunta nos va a permitir verlo en vivo y en directo. - La noticia Galicia prohibirá fumar "si no se puede garantizar la distancia de seguridad" para luchar el COVID-19: esto es lo que sabemos fue publicada originalmente en Xataka por Javier Jiménez .

La utilidad real de la Fase III de la vacuna contra el coronavirus y cómo se detectan los efectos secundarios

En estos últimos meses, a medida que las noticias sobre la vacuna del coronavirus iban llegando con cuentagotas, conceptos como 'Fase I, II y III', 'farmacovigilancia' o 'ensayo clínico aleatorizado' se han ido colado en la conversación pública. Mientras escribo estas líneas, de hecho, no solo se discute si Rusia tiene realmente la "primera vacuna contra el coronavirus", sino que numerosas vacunas están iniciando la Fase III de sus respectivos ensayos clínicos. Es decir, están a las puertas de hacerse una realidad en las farmacias, hospitales y centros de salud de todo el mundo. Y sin embargo, como reflejo de esa importancia central que han adquirido los ensayos clínicos en las últimas décadas, las dudas y sensaciones encontradas en torno a la 'carrera por la vacuna' también empiezan a generalizarse. Es lógico. Aunque podemos encontrar pioneros que aplicaron el método científico a la búsqueda de medicamentos de forma brillante, en el mundo moderno los avances en torno a la seguridad de los fármacos suelen ser hijos bastardos de las tragedias médicas. ¿Cómo evitamos la próxima tragedia? De hecho, si queremos entender el nacimiento de las ahora famosas fases de los ensayos clínicos tenemos que viajar a la segunda mitad del siglo XX. A 1962, cuando la tragedia de la talidomina, un popular medicamento contra las náuseas del embarazo que resultó ser teratogénico (producía malformaciones congénitas en los fetos), condujo a la aprobación de una serie de regulaciones que cambiaron para siempre la forma en que se investigaba en biomedicina. En Xataka Quedan meses para encontrar una vacuna contra el coronavirus, hasta entonces hay que separar la ciencia de la propaganda A medida que los casos se acumulaban, se hizo patente que en Grünenthal, la empresa que la descubrió, nadie había considerado buena idea hacer estudios con embarazadas antes de comercializarla (ni siquiera con animales embarazados). A medida que las víctimas se acumulaban en los paritorios y las plataformas de afectados se movilizaban contra la compañía, la opinión pública empezó a pedir medidas para evitar la próxima tragedia. En Estados Unidos, se aprobó un paquete legislativo que introdujo la supervisión pública y el consentimiento informado en los estudios clínicos. Era 1962 y en los siguientes años, la declaración de Helsinki de la Asociación Médica Mundial del 64 y el Pacto Internacional de Derechos Civiles y Políticos de la ONU en el 66 asentaron la importancia de la seguridad farmacológica y la ética médica a nivel internacional. Estudios, fases y autorizaciones Con el paso de los años y el incremento de las exigencias éticas y técnicas, la investigación biomédica ha tenido que enfrentarse una y otra vez a la pregunta que encabeza esta sección: ¿cómo evitamos la próxima tragedia? A fuerza de ensayo y error, hoy tenemos un marco de trabajo que obliga a empresas e investigadores a responder a las preguntas necesarias con un nivel de certeza adecuado. Es ahí donde nacen y adquieren su significado las fases del ensayo clínico. Así es como se prueban los medicamentos y las vacunas. En Xataka La carrera de sus vidas para crear una vacuna del COVID-19 española: "Esto nos produce mucha congoja, pero no podemos hacer más" Antes de llegar a las pruebas con humanos todo medicamento o vacuna tiene que pasar una serie de estudios que solemos denominar 'preclínicos'. Ya sean in vitro (en el laboratorio) o in vivo (con modelos animales), estos trabajos intentan extraer datos preliminares sobre eficacia, toxicidad y farmacocinética. Es decir, son los estudios preliminares que nos ayudan a decidir si una molécula concreta es lo suficientemente prometedora como para iniciar todo el proceso 'clínico'. Fases 0, I y II Pasar a las pruebas con humanos no es una decisión sencilla. Los ensayos clínicos suelen ser muy caros y la mayor parte de ellos no conducen a ningún sitio. Por eso, en los últimos años se ha popularizado la llamada "Fase 0". Se tratan de pequeños ensayos con humanos en los que, usando dosis del fármaco o la vacuna a niveles subclínicos, los investigadores tratan de obtener una perspectiva más realista sobre lo que hace el fármaco en el cuerpo de los que lo consumen. Sea como sea, con 'Fase 0' o sin ella, si los investigadores creen que el medicamento tiene posibilidades y los números lo avalan, arrancaría la 'Fase I'. La 'Fase I' son ensayos que buscan evaluar el perfil de seguridad del medicamento. En general, involucran a pequeños grupos de personas (entre 20 y 100 pacientes) y tratan de descartar efectos adversos derivados del consumo del fármaco. Para ello, los investigadores vigilan muy de cerca a los participantes: recogen minuciosamente su experiencia, estudian los posibles síntomas que reportan y les realizan análisis constantes (últimamente incluso genéticos) para encontrar complicaciones. Si supera esta fase y, en condiciones normales, hasta un 70% de los medicamentos la supera, se inicia la Fase II. La gran pregunta de los efectos secundarios: Sin lugar a dudas, la gran pregunta por responder durante el proceso de testeo de un fármaco o vacuna es la de los efectos secundarios. Al fin y al cabo, los efectos deseados, las dosis exactas o su eficacia comparada son cosas que esperamos. Los efectos secundarios, no. Nunca podemos estar seguros de que no se nos escapa algo. Sin ir más lejos, el año pasado estuvimos discutiendo sobre los posibles efectos secundarios de uno de los medicamentos más usados del mundo. En estas fases, sobre todo, se trata de descartar los efectos graves En la Fase II se sigue examinando el perfil de seguridad (es algo nuevo y hemos de vigilarlo de cerca). No obstante, su objetivo central es evaluar su eficacia (y se trata de descubrir cuál es la dosis que mejor funciona); en el caso de las vacunas, su capacidad para generar anticuerpos y cuantas dosis serán necesarias. Para ello se suelen dividir en dos subfases: la primera se centraría en demostrar la eficacia clínica del producto y la segunda en determinar la dosis idónea para encarar la Fase III. En condiciones normales, solo un tercio de los medicamentos que llegan a Fase II la superan. La Fase III En este punto, al fármaco o la vacuna le espera el momento más importante: la Fase III. Es donde se encuentran tanto la vacuna rusa como las distintas vacunas de Cansino, Oxford u Moderna. La Fase III es clave por varios motivos: el primero de ellos es que es el momento exacto en el que se prueba en un grupo grande de la población. Por lo general, miles de personas están siendo inoculados al azar con las vacunas aún experimentales ante la atenta mirada de los investigadores. En Xataka Bill Gates cree que acabaremos con la pandemia de COVID-19 para finales de 2021 en los países ricos y en todo el mundo en 2022 El segundo es que, además de evaluar de nuevo su eficacia y seguridad, la Fase III nos permite conocer el efecto real del fármaco en un contexto real. Todo lo que se ha hecho hasta este momento estaba orientado a garantizar que la Fase III es segura y que tiene posibilidades de resultar exitosa. Pero, a efectos prácticos, en esta fase es cuando la vacuna o el medicamento se la juega realmente. Esto es así porque los medicamentos o vacunas no deben mostrar solo su eficacia y seguridad, sino que deben enfrentarse cara a cara con el "estándar de oro", con la mejor opción terapéutica disponible en ese momento. Es difícil y se nota. Solo tres de cada diez fármacos consiguen superar esta fase porque el hecho es que no basta con que un medicamento (o una vacuna) sea eficaz frente a una enfermedad. Centenares de proyectos de investigación muy prometedores acaban siendo incapaces de generar efectos positivos en la práctica clínica. El ejemplo más cercano es el Ébola: decenas de vacunas y tratamientos han sido descartados pese a que parecían eficaces y seguros. Algunos de ellos, de hecho, han terminado usándose para el coronavirus. Se tratan, como podemos imaginar, de ensayos muy caros, muy complejos y muy largos. Con todo esto en mente, se entiende bien el escepticismo que despiertan muchas de las vacunas que se están elaborando contra el coronavirus. Es más, se comprende por qué muchos expertos insisten una y otra vez en que no podemos esperar a tener una vacuna. Fundamentalmente porque eso podría tardar mucho en llegar. La Fase IV Una vez que un producto farmacéutico supera la fase III y se pone en el mercado, arranca la Fase IV, la farmacovigilancia. Los fármacos son ese tipo de cosas que no se pueden dejar de monitorizar. De forma habitual, nuevos estudios señalan posibles problemas o riesgos en el uso de una u otra medicina. Eso hace que los protocolos médicos cambien a menudo para adaptarse a los resultados de esa farmacovigilancia. En esta Fase, de hecho, una vez que ya estaba en el mercado, cuando se descubrieron los efectos de la talidomina y se acumuló los datos suficientes como para prohibirla a nivel internacional. Pero ¿Qué ocurre si nos saltamos estos pasos? Cuando Putin anunció tener la primera vacuna contra el coronavirus, lo que estaba haciendo en realidad era saltarse la Fase III (o, ni siquiera eso, porque, como señalamos en la misma noticia, la vacuna no estaría disponible hasta 2021 cuando esta fase ya habría finalizado). Lo mismo que hizo Pekín con su vacuna militar hace unas semanas. Pero el problema va más allá. Si nos ponemos estrictos, sin llegar a los extremos de Rusia o China, la mayor parte de autoridades sanitarias del mundo se han mostrado favorables a flexibilizar este proceso de aprobación con la intención de acelerar la llegada de una vacuna eficaz y segura. En Xataka «CRISPR nos da una baza agresiva y directa para combatir el coronavirus», Lluís Montoliu, presidente del Comité de Ética del CSIC Aquí surgen las dudas. ¿Tiene sentido saltarse, en mayor o menor medida, un proceso que está pensando para garantizar la seguridad de la vacuna? La pregunta es compleja, pero su respuesta es sencilla: esto es algo que ya se hace. En realidad, el esquema que hemos explicado arriba es un marco de trabajo con el que los reguladores tratan de garantizar buenos medicamentos. No obstante, los requisitos finales varían radicalmente dependiendo de la enfermedad de la que hablemos y de las características concretas del fármaco o vacuna. Si lo miramos con perspectiva, todo el proceso es una enorme balanza donde se colocan riesgos y beneficios: si hay más de los últimos que de los primeros, la aprobación se convierte en algo bastante probable. Cuando hablamos de COVID-19, una enfermedad nueva y altamente transmisible que está colapsando el mundo de una forma casi sin precedentes, entra dentro de lo razonable que se busquen soluciones rápidas que eviten la muerte de todas las personas que esté en nuestra mano. Así que la pregunta relevante no es si se deben o no acelerar los procesos, sino qué información necesitamos, qué niveles de seguridad hay que exigir y cuándo merecerá la pena usar qué vacunas. Esa es la pregunta que se están haciendo las autoridades sanitarias de todo el mundo, pero si algo está claro es que para encontrar esas respuestas hace falta la Fase III de una forma u otra. Esperemos que no se equivoquen. Imagen | Dimitri Houtteman - La noticia La utilidad real de la Fase III de la vacuna contra el coronavirus y cómo se detectan los efectos secundarios fue publicada originalmente en Xataka por Javier Jiménez .