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:

  1. Verificação de integridade: Confirma se os arquivos PNG estão corretos e sem erros.

  2. Exibição de informações detalhadas: Mostra estatísticas básicas sobre a imagem, como dimensões e profundidade de bits.

  3. Extração de anotações de texto: Permite visualizar textos embutidos na imagem.

Como usar?

pngcheck [Opções] Arquivo.png

Opções de Comando

  • -7: Imprime o conteúdo dos chunks tEXt, 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 chunks PLTE, tRNS, hIST, sPLT e PPLT (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 chunks tEXt (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 teste windowBits (verificação mais rigorosa da compactação).

  • -x: Busca arquivos PNG dentro de outro arquivo e os extrai quando encontrados.

PNGCheck - Ritsec Writeups

alt text

É nos apresentada uma imagem (pode ser baixadaaqui)

Quando tentamos abrir a imagem, recebemos um erro CRC:

alt text

Podemos usar pngcheck para obter uma saída detalhada dos erros:

alt text

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)

alt text

Substituímos por 01AAE416

alt text

Agora podemos abrir o arquivo e encontrar a flag:

alt text

Materiais Complementares

Atualizado