Acabei de ver isso nos últimos dias e não consigo descobrir como funciona. O vídeo de que falo está aqui :
É a resposta mais bem avaliada desta pergunta do Stack Overflow: Por que este programa foi rejeitado por três compiladores?
Como este bitmap consegue mostrar um programa C ++ para "Hello World"?
Respostas:
Uma imagem BMP (DIB) é composta por um cabeçalho seguido por dados descompactados de 1 cor (para imagens de 24 bpp são 3 bytes por pixel, armazenados em ordem reversa de linha e com 4 bytes de avanço de linha).
Os bytes para dados de cores são usados para representar cores (ou seja, nenhum deles é "obrigatório" pelo formato de arquivo 2 , todos eles vêm da cor de cada pixel), e há uma correspondência 1: 1 perfeita entre as cores dos pixels e os bytes escritos no arquivo; assim, usando cores perfeitamente escolhidas, você pode realmente escrever o que quiser no arquivo (com exceção do cabeçalho).
Ao abrir o arquivo gerado no bloco de notas, os dados de cores serão mostrados como texto; você ainda pode ver claramente do cabeçalho (a parte do
BM
início do texto), que é exigido pelo formato do arquivo.Na minha opinião, este vídeo foi feito da seguinte maneira: primeiro o autor calculou o tamanho necessário para o bitmap e criou um arquivo DIB do tamanho correto preenchido com uma cor que se expande para um padrão simples (por exemplo, todos os bytes 65 =>
'A'
); em seguida, substituiu esse padrão pelo código de "carga útil", conforme mostrado no vídeo.Observe, no entanto, que não é impossível fazer tudo manualmente com o bloco de notas - com a caixa de diálogo do seletor de cores, uma tabela ASCII e um conhecimento básico do formato DIB, isso pode ser feito, mas seria muito mais lento e sujeito a erros.
Mais informações sobre o formato DIB
fonte
Suponho que você esteja se referindo à resposta a uma das perguntas do Dia da Mentira.
Meu palpite é que cada pixel tem uma representação binária para ele. E que cada caractere no código-fonte tem uma representação binária para ele.
A pessoa que criou o programa deve ter calculado a cor de cada pixel que teria uma representação binária que corresponderia a cada personagem.
fonte
Do ponto de vista teórico da ciência da computação, seria interessante perguntar se todo programa pode ser escrito de forma que, visto como um bitmap, você realmente veja o código-fonte que faz a mesma coisa. Se você estiver seriamente interessado em tais resultados, leia, por exemplo, sobre o teorema do ponto fixo de Kleene .
O programa como imagem também pode ser visto como uma forma de ofuscação de código. Não que fosse particularmente prático ...
fonte