Strumenti per corrompere file di codice e dati
I formati testuali non hanno un'intestazione da distruggere, quindi rimescolare i caratteri produce solo testo diverso. Questi strumenti iniettano sequenze di byte che non sono affatto UTF-8 valido, così il file smette di essere decodificabile invece di limitarsi a sembrare incomprensibile, ed è questo a far fallire un parser come fa la corruzione reale.
Ogni strumento in breve
- Corruttore di JSON .json, .jsonl, .geojson
I caratteri strutturali. Parentesi graffe, parentesi quadre, virgole e virgolette vengono sovrascritte, così il documento non può più essere bilanciato. - Corruttore di XML .xml, .xsd, .rss, .plist
La dichiarazione XML. L'istruzione di elaborazione iniziale<?xml version…?>viene distrutta, così codifica e versione non possono essere stabilite. - Corruttore di HTML .html, .htm, .xhtml
La codifica dei caratteri. Vengono iniettate sequenze UTF-8 non valide, così il decodificatore del browser produce caratteri sostitutivi in tutto il documento. - Corruttore di CSV .csv, .tsv
La struttura dei delimitatori. Le virgole e le interruzioni di riga vengono sovrascritte, così le righe non si dividono più in un numero coerente di colonne. - Corruttore di dump SQL .sql, .dump
I terminatori di istruzione. I punti e virgola e le interruzioni di riga vengono sovrascritti, così le istruzioni si fondono in un input non elaborabile. - Corruttore di YAML .yaml, .yml
L'indentazione. Gli spazi iniziali vengono sovrascritti, facendo collassare l'annidamento che dà allo YAML la sua struttura. - Corruttore di Markdown .md, .markdown, .mdx
La codifica dei caratteri. Vengono iniettate sequenze UTF-8 non valide in tutto il file, così la decodifica come testo fallisce.
Informazioni su questi strumenti codice e dati
Tutti gli strumenti elencati qui usano lo stesso motore. Le pagine dedicate esistono perché ogni formato fallisce in modo diverso e vale la pena sapere cosa aspettarsi: quale applicazione mostra quale errore, se una funzione di riparazione salverà il file e cosa sopravvive a ciascun livello di danno.
Cosa hanno in comune
- Non viene caricato nulla. Ogni byte viene elaborato nel tuo browser.
- Nessun limite di dimensione. I file vengono gestiti a fette da 8 MB.
- Il risultato sembra normale. Stesso nome file, stessa lunghezza in byte e stesso tipo MIME.
- Quattro livelli di danno. Dal danno parziale al rumore crittografico.