Acabo de ver esto en los últimos días y no puedo entender cómo funciona. El video del que hablo está aquí :
Es la respuesta mejor calificada de esta pregunta de Stack Overflow: ¿Por qué este programa fue rechazado por tres compiladores?
¿Cómo puede este mapa de bits mostrar un programa C ++ para "Hello World"?
Respuestas:
Una imagen BMP (DIB) está compuesta por un encabezado seguido de datos de 1 color sin comprimir (para imágenes de 24 bpp son 3 bytes por píxel, almacenados en orden inverso de fila y con 4 bytes de paso de fila).
Los bytes para los datos de color se utilizan para representar colores (es decir, ninguno de ellos es "obligatorio" por el formato de archivo 2 , todos provienen del color de cada píxel), y hay una correspondencia perfecta 1: 1 entre los colores de los píxeles y los bytes escritos en el archivo; por lo tanto, utilizando colores perfectamente elegidos, puede escribir lo que quiera en el archivo (con la excepción del encabezado).
Cuando abre el archivo generado en el bloc de notas, los datos de color se mostrarán como texto; todavía puede ver claramente desde el encabezado (la parte desde
BM
el comienzo del texto), que es obligatorio por el formato de archivo.En mi opinión, este video se hizo de esta manera: primero, el autor calculó el tamaño necesario para el mapa de bits y creó un archivo DIB del tamaño correcto relleno con un color que se expande a un patrón simple (por ejemplo, todos los bytes 65 =>
'A'
); luego reemplazó dicho patrón con el código de "carga útil", como se muestra en el video.Sin embargo, tenga en cuenta que no es imposible crear todo a mano con el bloc de notas: con el cuadro de diálogo del selector de color, una tabla ASCII y un conocimiento básico del formato DIB, se puede hacer, pero sería mucho más lento y propenso a errores.
Más información sobre el formato DIB
fuente
Supongo que se refiere a la respuesta a una de las preguntas de April Fools.
Supongo que cada píxel tiene una representación binaria. Y que cada carácter en el código fuente tiene una representación binaria.
La persona que creó el programa debe haber calculado el color de cada píxel que tendría una representación binaria que correspondería a cada carácter.
fuente
Desde un punto de vista teórico de la ciencia de la computación, sería interesante preguntar, si cada programa puede escribirse de tal manera que, visto como un mapa de bits, realmente se vea el código fuente que hace lo mismo. Si está realmente interesado en tales resultados, lea, por ejemplo, sobre el teorema del punto fijo de Kleene .
El programa como imagen también se puede ver como una forma de ofuscación de código. No es que fuera particularmente práctico ...
fuente