Join Nostr
2026-09-18 21:29:00 UTC

Daniel on Nostr: Como visualizar uma imagem enviada em hexadecimal (totalmente offline), e até ...



Como visualizar uma imagem enviada em hexadecimal (totalmente offline), e até encontrar imagens gravadas na blockchain do Bitcoin e poder visualiza-las

Uma coisa muito interessante no Bitcoin é perceber que uma imagem, no fundo, também é apenas dados.

Os bytes que formam uma imagem podem ser representados em hexadecimal (HEX). Isso significa que é possível pegar uma sequência enorme de caracteres aparentemente sem sentido e reconstruir a imagem original a partir dela.

E dá para fazer essa experiência usando uma transação real da blockchain do Bitcoin.

TXID para colocar na http://mempool.space/ e testar:
Segue 3 transações que possuem imagem
1c5435cd882e98ec5532a5006a8afe313207f18dd54042219ac57587080a80b8

5250f85d93c4b638d21d6b3a34db169a10fe0b3b8f2d87c5ac0556bc3e1eb6e4

b553f0f679522f51040865bd285037f4ccb2b4c1a1f50e7de372bb211db7ebf0

Acesse o mempool.space, cole o TXID da transação na busca e abra a transação.
Em Entradas e Saídas, clique em Detalhes.
Dentro dos dados da transação, procure o trecho em hexadecimal correspondente ao arquivo. No exemplo das imagens deste post, é possível identificar o começo de um arquivo PNG pelo hexadecimal:

89504E470D0A1A0A...

Esse é o início característico de um arquivo PNG.

Copie o bloco hexadecimal que representa a imagem.
Abra o CyberChef (https://gchq.github.io/CyberChef/), ferramenta criada pelo GCHQ para manipulação e transformação de dados.
Abrir o CyberChef oficial
Cole todo o hexadecimal no campo Input.
Na área Operations, procure por From Hex e arraste essa operação para Recipe.
Depois procure por Render Image e arraste também para Recipe, logo abaixo de From Hex.

Pronto.

O CyberChef primeiro transforma aquela representação hexadecimal novamente nos bytes originais e depois interpreta esses bytes como uma imagem. O resultado aparece no campo Output.

Às vezes o próprio CyberChef também mostra a famosa varinha mágica, sugerindo automaticamente operações capazes de interpretar os dados. Mas nem sempre ele identifica exatamente o que queremos; por isso é interessante entender o processo manualmente.
O CyberChef realmente possui mecanismos de detecção automática de possíveis transformações.

E aqui está a parte que acho mais interessante:

Você não precisa necessariamente “enviar uma imagem” como arquivo.

Pode transformar os bytes dessa imagem em hexadecimal, enviar aquela sequência como texto, e outra pessoa pode reconstruir exatamente os mesmos bytes do outro lado.

Ou seja:

imagem → bytes → hexadecimal → texto → hexadecimal → bytes → imagem

E o mais curioso é que o CyberChef pode ser baixado e executado localmente/offline. Segundo a documentação oficial, o processamento é feito no próprio navegador e existe uma versão que pode ser executada localmente.

Então, se alguém recebesse apenas aquela sequência hexadecimal em uma máquina isolada da internet, ainda conseguiria reconstruir a imagem, desde que tivesse todos os bytes necessários e uma ferramenta adequada para interpretá-los.

É praticamente olhar para uma parede gigantesca de números e letras…

89504e470d0a1a0a0000000d49484452...
…e descobrir que ali dentro existe uma imagem.

E quando esses dados fazem parte de uma transação registrada no Bitcoin, podemos recuperar o conteúdo diretamente dos dados públicos da blockchain.

Bitcoin não guarda apenas números. No fim das contas, tudo é dado. ₿

Nem toda transação Bitcoin contém uma imagem e nem todo bloco hexadecimal é uma imagem. Dependendo de como o conteúdo foi registrado, os dados também podem estar divididos em partes ou acompanhados de outros dados do script/protocolo. No exemplo específico, porém, o 89504E47... é uma pista fortíssima porque é justamente a assinatura inicial de um PNG.

Hexadecimal é uma representação textual dos bytes, então dá mesmo para transmitir uma imagem como uma enorme sequência de caracteres e remontá-la depois. Só não é compressão nem criptografia, é uma representação dos mesmos dados.