Ferramentas para corromper ficheiros de código e dados
Os formatos de texto não têm cabeçalho a destruir, por isso baralhar caracteres apenas produz outro texto. Estas ferramentas injetam sequências de bytes que não são de todo UTF-8 válido, de modo que o ficheiro deixa de ser descodificável em vez de se limitar a ler-se como disparate. É isso que faz um analisador falhar como falha perante corrupção real.
Cada ferramenta em resumo
- Corruptor de JSON .json, .jsonl, .geojson
Caracteres estruturais. Chavetas, parênteses retos, vírgulas e aspas são sobrescritos, pelo que o documento deixa de poder ser equilibrado. - Corruptor de XML .xml, .xsd, .rss, .plist
A declaração XML. A instrução de processamento inicial<?xml version…?>é destruída, pelo que a codificação e a versão deixam de poder ser estabelecidas. - Corruptor de HTML .html, .htm, .xhtml
A codificação de caracteres. São injetadas sequências UTF-8 inválidas, pelo que o descodificador do navegador produz caracteres de substituição por todo o documento. - Corruptor de CSV .csv, .tsv
A estrutura de delimitadores. As vírgulas e as quebras de linha são sobrescritas, pelo que as linhas deixam de se dividir num número consistente de colunas. - Corruptor de dumps SQL .sql, .dump
Os terminadores de instrução. Os pontos e vírgulas e as quebras de linha são sobrescritos, pelo que as instruções se fundem numa entrada impossível de analisar. - Corruptor de YAML .yaml, .yml
A indentação. Os espaços iniciais são sobrescritos, colapsando o aninhamento que dá estrutura ao YAML. - Corruptor de Markdown .md, .markdown, .mdx
A codificação de caracteres. São injetadas sequências UTF-8 inválidas por todo o ficheiro, pelo que este deixa de poder ser descodificado como texto.
Sobre estas ferramentas de código e dados
Todas as ferramentas aqui listadas usam o mesmo motor. As páginas dedicadas existem porque cada formato falha de maneira diferente e vale a pena saber o que esperar: que aplicação mostra que erro, se uma função de reparação salvará o ficheiro e o que sobrevive em cada nível de dano.
O que têm em comum
- Nada é enviado. Cada byte é processado no seu navegador.
- Sem limite de tamanho. Os ficheiros são tratados em fatias de 8 MB.
- O resultado parece normal. Mesmo nome de ficheiro, comprimento em bytes e tipo MIME.
- Quatro níveis de dano. Do dano parcial ao ruído criptográfico.