PNGCheck
Manipulação da Ferramenta PNGCheck
O que é?
O PNGCheck é uma ferramenta de teste e depuração de arquivos PNG. Ele foi originalmente desenvolvido para verificar os CRCs (Cyclic Redundancy Check) dentro de um arquivo PNG, o que serve para confirmar se a transferência do arquivo foi feita de maneira correta. Com o tempo, ele foi ampliado para verificar e exibir quase todas as informações contidas em uma imagem PNG.
Permite mostrar informações detalhadas sobre os dados da imagem de forma legível. Por exemplo, pode ser utilizada para imprimir estatísticas básicas da imagem, como suas dimensões e profundidade de bits; listar as informações de cor e transparência presentes na paleta; ou extrair textos incorporados na imagem. O PNGCheck oferece suporte a todos os chunks de arquivos PNG e JNG, além de quase todos os chunks de arquivos MNG, exceto alguns específicos (PAST, DISC, tERm, DROP, DBYK e ORDR).
Algumas das funcionalidades principais do PNGCheck:
Verificação de integridade: Confirma se os arquivos PNG estão corretos e sem erros.
Exibição de informações detalhadas: Mostra estatísticas básicas sobre a imagem, como dimensões e profundidade de bits.
Extração de anotações de texto: Permite visualizar textos embutidos na imagem.
Como usar?
Opções de Comando
-7
: Imprime o conteúdo dos chunkstEXt
, escapando caracteres >= 128 (para terminais de 7 bits).-c
: Coloriza a saída (para terminais ANSI).-f
: Força a continuação mesmo após erros graves.-p
: Exibe o conteúdo dos chunksPLTE
,tRNS
,hIST
,sPLT
ePPLT
(pode ser usado com-q
).-q
: Executa o teste de forma silenciosa (exibe apenas erros).-s
: Busca arquivos PNG dentro de outro arquivo.-t
: Imprime o conteúdo dos chunkstEXt
(pode ser usado com-q
).-v
: Executa o teste de forma detalhada (imprime a maioria dos dados dos chunks).-vv
: Executa o teste de forma muito detalhada (decodifica e imprime filtros de linha).-w
: Suprime o testewindowBits
(verificação mais rigorosa da compactação).-x
: Busca arquivos PNG dentro de outro arquivo e os extrai quando encontrados.
PNGCheck - Ritsec Writeups
É nos apresentada uma imagem (pode ser baixadaaqui)
Quando tentamos abrir a imagem, recebemos um erro CRC:
Podemos usar pngcheck para obter uma saída detalhada dos erros:
Temos um erro CRC no bloco IHDR. Vamos corrigir isso.
O que é o erro CRC? CRC (Cyclic Redundancy Check) é um código de detecção de erros comumente usado em redes digitais e dispositivos de armazenamento para detectar alterações acidentais em dados brutos. Isso significa que há bytes alterados na imagem.
Utilizamos o comando hexedit stegosaurus.png
para fazer alterações no código da imagem.
Identificamos a posição de 93CF1ECA (final da segunda linha e começo da terceira)
Substituímos por 01AAE416
Agora podemos abrir o arquivo e encontrar a flag:
Materiais Complementares
(PicoCTF) Advance Potion Making: Link para o desafio
(Defcamp CTF 2015) She said it doesn’t matter: Write-up do desafio
Uncorrupting a PNG Image: Artigo sobre recuperação de imagens PNG
Fix me: Write-up do desafio
Atualizado