Покриття виявлення
Виміряно, а не заявлено.
Кожне число нижче виміряно шляхом внесення реальних пошкоджень у реальні зразкові файли з підрахунком того, що впіймав валідатор — 100 спроб на формат на режим, фіксований seed, сирі дані кожної спроби лежать у репозиторії. Нулі теж публікуються: деякі формати просто не містять жодного механізму цілісності, і ми радше скажемо вам про це прямо, ніж натякатимемо на протилежне.
- Sniper — одна випадкова інверсія біта за випадковим зміщенням байта — пошкодження, яке найважче впіймати.
- Shotgun — 4 096 послідовних випадкових байтів, перезаписаних за випадковим зміщенням — імітує збійний сектор диска.
Рівень виявлення зростає з кожним випуском: глибокі декодери додаються формат за форматом, і ця таблиця щоразу генерується заново із сирих даних вимірювань.
Нотатки про механізми показані англійською: це глибокі технічні описи, збережені дослівно зі звіту про вимірювання.
Зображення та фото
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| PNG ImagePNG | 100% | 100% | Linux · macOS · Windows | CRC32 per chunk |
| JPEG XL ImageJXL | 87% | 100% | Linux · macOS · Windows | Container + frame checksums |
| WebP ImageWebP | 83% | 84% | Linux · macOS · Windows | libwebp full decode |
| macOS IconICNS | 97% | 100% | Linux · macOS · Windows | TLV chunk stream; near-total coverage |
| Flash SWFSWF | 100% | 100% | Linux · macOS · Windows | CWS = zlib wrapper; any flip = zlib CRC fail |
| SVG Vector GraphicsSVG | 45% | 99% | Linux · macOS · Windows | XML parse — almost any corruption breaks the XML grammar. |
| Windows IconICO | 63% | 70% | Linux · macOS · Windows | Directory entries + embedded PNG/BMP image validation. Multi-resolution ICO has high structural-byte density. |
| QOI ImageQOI | 0% | 0% | Linux · macOS · Windows | QOI spec has no per-opcode checksum — bit flips in pixel data decode to different-but-valid pixels. Only magic (4 B) and end marker (8 B) are checkable. Fundamental format limit. |
| JPEG2000 ImageJPEG2K | 6% | 97% | Структурна валідація у Windows — глибоке декодування JPEG на старті лише для Linux/macOS; оновлення для Windows уже в роботі. | Codestream marker structure |
| GIF ImageGIF | 9% | 100% | Linux · macOS · Windows | LZW decode (shotgun desyncs state); larger animated fixture lifts header-tamper detection |
| JPEG ImageJPEG | 4% | 100% | Структурна валідація у Windows — глибоке декодування JPEG на старті лише для Linux/macOS; оновлення для Windows уже в роботі. | jpegz wrapperDecode (062393f); most single-byte tamper lands in entropy-coded data, which JPEG tolerates by design |
| OpenEXR HDR ImageEXR | 1% | 100% | Linux · macOS · Windows | ZIP-compressed EXR — zlib decompress path runs on every scanline block. Shotgun detection perfect; sniper lower than the 26 KB NONE-compressed sample (6%) because structural bytes are a smaller fraction on the larger file. Both paths validated. |
| Adobe PhotoshopPSD | 2% | 50% | Linux · macOS · Windows | RLE-compressed PSD — `validatePsdDeep` decodes every scanline. The old RAW-compressed `sample.psd` (0%/7%) is retained; sweep picks the larger RLE one. Measures the strong path that the RAW sample couldn't exercise. |
| HEIC/HEIF ImageHEIC | 0% | 4% | Linux · macOS · Windows | H.265 CABAC per tile — **arithmetic coding absorbs single-bit errors by design** |
| AVIF ImageAVIF | 0% | 1% | Linux · macOS · Windows | AV1 OBU + CABAC — same limitation |
| BMP ImageBMP | 0% | 0% | Linux · macOS · Windows | BMP spec has no data checksums — `bmp_decoder.validateBmp` walks every pixel row proving accessibility but cannot detect bit-flips in pixel bytes. 0/400 at ±0.5% CI. Fundamental format limit. |
| DPX ImageDPX | 0% | 0% | Linux · macOS · Windows | Raw pixel; SMPTE 268M spec has no checksum |
| Portable Anymap ImagePAM/PPM | 0% | 0% | Linux · macOS · Windows | Raw pixel; Netpbm spec has no checksum |
| TGA ImageTGA | 25% | 100% | Linux · macOS · Windows | Header + image-spec validation catches malformed-byte tamper; tiny 11 KB fixture pushes structural-byte density up |
| TIFF ImageTIFF | 0% | 0% | Linux · macOS · Windows | IFD structural only — no per-strip checksum |
| JBIG2 Bi-level ImageJBIG2 | 0% | — | Linux · macOS · Windows | Bi-level image stream walk; sniper 0% on truncated sample. Shotgun N/A (sample < 4 KB). |
Камерний RAW
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| Adobe DNG RAWDNG | 3% | 3% | Структурна валідація у Windows — глибоке декодування JPEG на старті лише для Linux/macOS; оновлення для Windows уже в роботі. | TIFF-based via tiffz strip+tile decode loop + jpegz preview decode; 77 MB sensor dump dilutes detection density per byte |
| Canon CR2 RAWCR2 | 1% | 6% | Структурна валідація у Windows — глибоке декодування JPEG на старті лише для Linux/macOS; оновлення для Windows уже в роботі. | TIFF-based; IFD-walked preview JPEG decoded via libjpeg-turbo (sRAW2 lossless strip filtered out so heuristic keeps the real preview) |
| Nikon RAWNEF | 0% | 0% | Linux · macOS · Windows | TIFF-based; deep via zigimg |
| Sony RAWARW | 0% | 0% | Linux · macOS · Windows | TIFF-based; deep via zigimg |
| Fuji RAWRAF | 0% | 1% | Структурна валідація у Windows — глибоке декодування JPEG на старті лише для Linux/macOS; оновлення для Windows уже в роботі. | Fuji; validator decodes the JPEG preview at 0x54/0x58, but preview is ~0.5% of a 208 MB sensor dump — shotgun almost never lands in it. ⚠ See Action Items. |
| NRW | 0% | 0% | Linux · macOS · Windows | Nikon; dispatched through LibRaw which unpacks sensor data but the format has no per-row checksum. `libraw_unpack_thumb` is not currently wired up — adding it would catch corruption inside the embedded preview JPEG and could lift this to ~15-30% shotgun. Follow-up item. |
| Olympus RAWORF | 0% | 0% | Linux · macOS · Windows | Olympus; validator WARNs on "uncompressed IFD claims but Huffman-compressed data". Structural-only. |
| Pentax RAWPEF | 0% | 0% | Linux · macOS · Windows | Pentax; TIFF-wrapped. Structural-only. |
| Panasonic RAWRW2 | 0% | 0% | Linux · macOS · Windows | Panasonic; TIFF-wrapped. Structural-only. |
| Canon CR3 RAWCR3 (Canon) | 0% | 0% | Linux · macOS · Windows | ISOBMFF-based Canon RAW 3; structural box walk. 15 MB sample at 0%/0% confirms no integrity mechanism beyond structure. |
Відео
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| Matroska VideoMKV | 100% | 100% | Linux · macOS · Windows | CRC32 per EBML cluster — **gold standard** |
| AV1 VideoAV1 | 5% | 100% | Linux · macOS · Windows | OBU structure + tile decode |
| MPEG Transport StreamMPEG-TS | 4% | 100% | Linux · macOS · Windows | PAT/PMT CRC + continuity counters |
| Standard MIDI FileMIDI | 15% | 100% | Linux · macOS · Windows | Track framing + delta/event validation |
| Apple ProRes VideoProRes/MOV | 5% | 78% | Linux · macOS · Windows | ProRes intra-frame DCT decode per frame |
| MP4 VideoMP4 | 0% | 66% | Linux · macOS · Windows | H.264 CABAC + AAC decode (sample = `avc1` + AAC) |
| QuickTime VideoMOV | 1% | 75% | Linux · macOS · Windows | H.264 CABAC decode — new sample generated from public-domain jellyfish footage via ffmpeg. Old MPEG-4 Part 2 sample kept in `sample.mov` but sweep now picks the larger H.264 one. |
| WebM VideoWebM (VP9+Opus) | 86% | 78% | Linux · macOS · Windows | libvpx 1.14.1 full VP9 decode per frame — every frame entropy + DCT decoded via `vpx_codec_decode`. Opus audio CRC provides additional coverage. |
| WebM VideoWebM (VP8) | 88% | 90% | Linux · macOS · Windows | libvpx 1.14.1 full VP8 decode. **Critical:** uses `VP8D_GET_FRAME_CORRUPTED` control query after each frame — without it, VP8's built-in error concealment silently patches bit flips. Both sniper and shotgun lift by ~90 points because of this query. |
| AVI VideoAVI | 0% | 93% | Структурна валідація у Windows — глибоке декодування JPEG на старті лише для Linux/macOS; оновлення для Windows уже в роботі. | MJPEG per-frame decode via libjpeg-turbo — new sample generated via ffmpeg. Old MPEG-4 Part 2 sample kept in `generated_testsrc.avi` but sweep picks the larger MJPEG one. |
| DV VideoDV | 0% | 0% | Linux · macOS · Windows | DV spec has no checksum; relies on tape physical ECC |
| MPEG Elementary StreamMPEG-ES | 0% | 0% | Linux · macOS · Windows | Start codes only |
| MPEG Program StreamMPEG-1/2 | 0% | 0% | Linux · macOS · Windows | Start codes only |
| MPEG-4 Part 2 | 0% | 0% | Linux · macOS · Windows | VOP header parsing tolerates VOP failures |
| RealMediaRM | 0% | 2% | Linux · macOS · Windows | RealMedia spec has no checksums; structural chunk walk only |
| Flash VideoFLV | 40% | — | Linux · macOS · Windows | Flash Video tag walk; no per-tag CRC. Tiny 33 B sample — sniper hits magic + header bytes. Shotgun N/A (sample < 4 KB). |
| MPEG Program StreamMPEG-PS | 0% | — | Linux · macOS · Windows | MPEG Program Stream; PES header walk; no CRC. Shotgun N/A (sample < 4 KB). |
| Ogg Video (Theora)Theora (.ogv) | 100% | 100% | Linux · macOS · Windows | Theora-in-Ogg; libtheora-encoded testsrc (CC0). Ogg page CRC32 catches every probed bit flip in both modes. |
| IVF Video ContainerVP8 (raw IVF) | 0% | 0% | Linux · macOS · Windows | IVF container with VP8 frames; structural-only without libvpx wired into the IVF dispatch path. Hand-authored CC0 sample. Detection is fundamentally low until VP8-in-IVF gets the same `VP8D_GET_FRAME_CORRUPTED` query as VP8-in-WebM. |
Аудіо
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| Dolby Digital AC-3 AudioAC3 | 100% | 100% | Linux · macOS · Windows | CRC-16 per syncframe. Previous sample `TomorrowNeverDies-...ac3` was malformed (started with bytes 0x84 4F 59 11, not AC3 sync 0B 77) — validator correctly rejected it, so the old 100%/100% number was a false positive from trial inheritance. Removed 2026-04-23; now measured against a genuinely valid sample. |
| Ogg AudioOGG | 100% | 100% | Linux · macOS · Windows | CRC32 per OGG page |
| Dolby Digital Plus AudioE-AC3 (large) | 100% | 100% | Linux · macOS · Windows | CRC-16 per syncframe (full file, after 2026-03-06 fix) |
| Dolby Digital Plus AudioE-AC3 (small) | 81% | 85% | Linux · macOS · Windows | ⚠ Lower coverage on smaller file — reflects frame-size / coverage density, not a bug |
| FLAC AudioFLAC | 80% | 88% | Linux · macOS · Windows | MD5 audio hash + CRC-8/CRC-16 per frame |
| Apple Lossless AudioALAC | 1% | 100% | Linux · macOS · Windows | Lossless decode — 4KB overwrite kills a frame |
| Opus | 1% | 35% | Linux · macOS · Windows | OGG page CRC + libopus decode |
| M4A AudioAAC (M4A) | 4% | 31% | Linux · macOS · Windows | MP4 box + AAC syntax decode |
| AAC-LC Audio (ADTS)AAC (ADTS) | 6% | 20% | Linux · macOS · Windows | ADTS framing + syntax |
| MP3 AudioMP3 | 1% | 1% | Linux · macOS · Windows | Frame sync only — MP3 spec has no data CRC |
| WAV AudioWAV | 0% | 2% | Linux · macOS · Windows | RIFF structural; no data checksum |
| AIFF AudioAIFF | 0% | 1% | Linux · macOS · Windows | IFF structural; no data checksum |
| CAF AudioCAF | 0% | 1% | Linux · macOS · Windows | Chunk walk; no data checksum |
| AU/SND AudioAU | 0% | 0% | Linux · macOS · Windows | Header + raw PCM |
| ProTracker ModuleTracker (MOD) | 0% | 0% | Linux · macOS · Windows | No integrity mechanism in format |
| Compact Pro ArchiveCPT | 100% | 100% | Linux · macOS · Windows | CRC per resource fork entry (Compact Pro archive, not audio) |
| AMR AudioAMR | 14% | — | Linux · macOS · Windows | Adaptive Multi-Rate audio; frame-table based, no per-frame CRC. Sniper at 14% reflects sync-byte coverage on a 38 B sample. Shotgun N/A. |
| Monkey's AudioAPE (Monkey's Audio) | 99% | 100% | Linux · macOS · Windows | MAC header + descriptor + per-frame CRC32. Full deep-decode validation now wired via vendored upstream Monkey's Audio SDK 12.73 (`deps/libape/`, BSD-3 since 2023). The validator runs structural rigor first (descriptor, header, seek-table monotonicity, audio-region bounds, field sanity, version range) then decodes every frame and surfaces per-frame CRC32-over-decoded-PCM mismatches via the C-shim `validate_ape_decode_check`. Truncation is caught either by the structural seek-table walk (modern v3980+ has audio_data_length) or by the decoder's sample-count-mismatch path. Synthetic 16 KB corpus is now a real APE encoded by the SDK from white-noise WAV (\`mac -c2000\`), so it actually decodes; sniper hits 99% (only the descriptor MD5 bytes — which are byte-level metadata not bitstream — escape detection in some random flips), shotgun hits 100%. Tested with the in-tree Zig tests + tests/cli/ape_validation (11 PASS). |
| CD+Graphics KaraokeCD+G (Karaoke) | 0% | 2% | Linux · macOS · Windows | 24-byte fixed-size sectors; structural only — no checksum. 0%/2% confirms fundamental format limit. |
| DSDIFF AudioDFF (DSDIFF) | 52% | — | Linux · macOS · Windows | DSD audio container; chunk walk only. Tiny 32 B header-only sample. Shotgun N/A. |
| DSD Stream FileDSF (DSD) | 60% | — | Linux · macOS · Windows | Sony DSD; structural walk. Shotgun N/A. |
| DTS Digital Surround AudioDTS (Digital Surround) | 0% | 51% | Linux · macOS · Windows | Frame sync + size walk; no per-frame CRC. Shotgun lift from 4 KB overwrite desyncing the frame stream. |
| True Audio (TTA)TTA (True Audio) | 97% | — | Linux · macOS · Windows | Per-frame CRC32 catches almost every probed bit flip. Shotgun N/A (sample < 4 KB). |
| WavPack AudioWavPack | 100% | 100% | Linux · macOS · Windows | libwavpack 5.9.0 deep decode: every block decoded to PCM, per-block CRC over decoded samples + checksum sub-block + sample-count drift. Block-checksum sub-block (`ID_BLOCK_CHECKSUM`) catches header/bitstream tampering at open-time; post-decode CRC catches arithmetic drift; truncation surfaces as decoded < expected sample count. |
Документи та офіс
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| Excel Spreadsheet (97-2003)XLS | 22% | 96% | Linux · macOS · Windows | BIFF8 records + SST + formulas + cells |
| Word Document (97-2003)DOC (large) | 2% | 2% | Linux · macOS · Windows | FIB + 31 fc/lcb pair bounds + CLX piece table. Detection density drops on large docs — body text is most of the file. |
| Word Document (97-2003)DOC (small) | — | 52% | Linux · macOS · Windows | Same validator, smaller file — shotgun has ~21% chance of hitting FIB/Table/CLX. |
| PDF DocumentPDF | n/a† | n/a† | Linux · macOS · Windows | †Headline numbers are misleading for PDF: detection rate is dominated by which compression filters the document uses for its embedded streams (Flate, DCT/JPEG, JPX/JPEG2000, JBIG2, CCITT), not by the validator. See "PDF detection by stream-filter dominance" subsection below for the breakout table. The exit-code bug from 2026-03-06 was fixed in commit `c304f36` (2026-04-23, Action Item #1). |
| PowerPoint (97-2003)OLE2 (PPT) | 0% | 0% | Linux · macOS · Windows | FAT/directory structural only |
| Adobe InDesign DocumentInDesign | 1% | 73% | Linux · macOS · Windows | Page structure. |
| Word Document (OOXML)DOCX | 87% | 100% | Linux · macOS · Windows | OOXML = ZIP with per-entry CRC32. Sample replaced 2026-04-23 from Apache 2.0 Tika test corpus. |
| Excel Spreadsheet (OOXML)XLSX | 82% | 100% | Linux · macOS · Windows | OOXML = ZIP with per-entry CRC32. Sample from Apache Tika. |
| PowerPoint (OOXML)PPTX | 93% | 100% | Linux · macOS · Windows | OOXML = ZIP with per-entry CRC32. Sample from Apache Tika. |
| OpenDocument TextODT | 96% | 100% | Linux · macOS · Windows | ODF = ZIP with per-entry CRC32. Sample from Apache Tika. Note: currently auto-detected as EPUB (also ZIP) — separate detection-priority bug. |
| OpenDocument SpreadsheetODS | 88% | 100% | Linux · macOS · Windows | Same as ODT. |
| OpenDocument PresentationODP | 97% | 100% | Linux · macOS · Windows | Same as ODT. |
| Rich Text FormatRTF | 0% | 92% | Linux · macOS · Windows | Structural only — RTF has no checksums. Shotgun high because 4 KB overwrite reliably breaks brace matching or control-word syntax. |
| EML Email MessageEML | 12% | 84% | Linux · macOS · Windows | UTF-8 + NUL-byte integrity check on the raw file before structural parsing. NUL is never legal in a mail message; flipping the high bit of an ASCII byte produces a lone UTF-8 continuation byte. Caught ~50% of single-bit ASCII flips and ~80% of 4 KB shotgun overwrites. |
| MBOX Mail ArchiveMBOX | 13% | 100% | Linux · macOS · Windows | Same UTF-8 + NUL-byte check as EML, applied to the whole concatenated file. Shotgun catches every 4 KB random overwrite (random bytes almost always include NUL or invalid UTF-8 sequences). Sniper catches roughly half the random bit flips. |
| Apple PagesPages | 100% | 100% | Linux · macOS · Windows | iWork bundle = ZIP with per-entry CRC32. Hand-authored from scratch (no Apple software, no permissive corpus exists); `scripts/build-pages-sample` regenerates a deterministic 8-IWA inner `Index.zip` with high-entropy openssl-AES-CTR payloads plus real plist metadata. CRC32 per entry catches every bit flip and every 4 KB shotgun overwrite. |
| Apple KeynoteKeynote | 99% | 100% | Linux · macOS · Windows | iWork bundle = ZIP with per-entry CRC32. Hand-authored mirroring the Pages sample; `scripts/build-keynote-sample` regenerates a 9-IWA inner `Index.zip` plus an uncompressed `buildVersionHistory.plist` carrying `com.apple.iWork.Keynote` so the format detector keys on it. CRC32 per entry catches every 4 KB shotgun overwrite and ~99% of single-bit flips. |
| Apple NumbersNumbers | 100% | 100% | Linux · macOS · Windows | Same iWork-bundle template as Keynote with a Tables/-shaped IWA layout. The `com.apple.iWork.Numbers` marker is stored uncompressed at the head of the outer ZIP. CRC32 per entry catches every probed bit flip and every 4 KB shotgun overwrite. |
| Adobe IllustratorAI (Adobe Illustrator) | 6% | — | Linux · macOS · Windows | PostScript-derived header + PDF body. Tiny 372 B sample is mostly PDF magic; later bytes are uncovered text. Shotgun N/A. |
| BAI2 Balance ReportBAI2 (Bank Admin Inst.) | 20% | — | Linux · macOS · Windows | Fixed-format banking text; structural validation of record-type prefixes. No checksum. Shotgun N/A. |
| CSV DataCSV | 0% | — | Linux · macOS · Windows | Plain text; structural validator only checks UTF-8 + delimiter consistency. 0% as expected. Shotgun N/A. |
| ClarisWorks/AppleWorksClarisWorks | 6% | — | Linux · macOS · Windows | Legacy AppleWorks. Structural walk. Shotgun N/A. |
| UN/EDIFACTEDIFACT | 37% | — | Linux · macOS · Windows | Fixed-format trade messages; validator cross-checks UNH/UNT counts. Shotgun N/A. |
| Encapsulated PostScriptEPS | 4% | — | Linux · macOS · Windows | PostScript header + structural walk. Shotgun N/A. |
| EPUB eBookEPUB | 69% | — | Linux · macOS · Windows | ZIP container with mimetype check; per-entry CRC32. Shotgun N/A. |
| HTML DocumentHTML | 2% | — | Linux · macOS · Windows | Tag-tree validator; structural only. Shotgun N/A. |
| iCalendariCalendar (RFC 5545) | 21% | — | Linux · macOS · Windows | Structural; BEGIN/END pairing + property syntax. Shotgun N/A. |
| Adobe InDesign MarkupIDML (InDesign) | 55% | — | Linux · macOS · Windows | ZIP+XML markup; per-entry CRC32. Shotgun N/A. |
| INI ConfigINI | 17% | — | Linux · macOS · Windows | Plain-text key-value; structural only. Shotgun N/A. |
| JSON DataJSON | 47% | — | Linux · macOS · Windows | JSON parser; structural only. Tiny sample's curly/brace density yields 47%. Shotgun N/A. |
| JSON5 | 30% | — | Linux · macOS · Windows | JSON5 parser; structural only. Shotgun N/A. |
| SWIFT MT940 Bank StatementMT940 (SWIFT) | 11% | — | Linux · macOS · Windows | Banking text; structural only. Shotgun N/A. |
| MacWrite Document | 0% | — | Linux · macOS · Windows | Legacy word processor; structural only. Tiny sample. Shotgun N/A. |
| NACHA/ACH Electronic PaymentsNACHA (ACH) | 15% | — | Linux · macOS · Windows | Banking fixed-format text; record-type validation. Shotgun N/A. |
| Open Financial ExchangeOFX (Open Financial) | 2% | — | Linux · macOS · Windows | Banking SGML/XML; structural only. Shotgun N/A. |
| Plain Text (UTF-8)Plain Text | 0% | — | Linux · macOS · Windows | UTF-8 + control-char check. 0% as expected. Shotgun N/A. |
| Pro Tools SessionPTX (Pro Tools) | 0% | 0% | Linux · macOS · Windows | Avid session structural walk. 0%/0% on 40 KB confirms structural-only. |
| Quicken Interchange FormatQIF (Quicken Interchange) | 3% | — | Linux · macOS · Windows | Plain-text; structural only. Shotgun N/A. |
| TOML ConfigTOML | 37% | — | Linux · macOS · Windows | Plain-text; structural only. Shotgun N/A. |
| Tax Exchange FormatTXF (Tax Exchange) | 3% | — | Linux · macOS · Windows | Plain-text; structural only. Shotgun N/A. |
| vCardvCard (RFC 6350) | 32% | — | Linux · macOS · Windows | Structural BEGIN/END pairing + property syntax. Shotgun N/A. |
| WordPerfect DocumentWordPerfect | 2% | — | Linux · macOS · Windows | Header walk; structural only. Shotgun N/A. |
| X12 EDI | 21% | — | Linux · macOS · Windows | Fixed-format trade messages; ISA/IEA + GS/GE counts cross-validated. Shotgun N/A. |
| XML DocumentXML | 64% | — | Linux · macOS · Windows | XML parse; structural only. 64% sniper from tag/quote density on tiny sample. Shotgun N/A. |
| YAML DataYAML | 0% | — | Linux · macOS · Windows | Plain-text; structural only. Shotgun N/A. |
| Markdown TextMarkdown | 0% | — | Linux · macOS · Windows | Plain-text; structural only. Shotgun N/A. |
Шрифти
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| TrueType FontTTF | 100% | 100% | Linux · macOS · Windows | Per-table checksum + whole-file checkSumAdjustment (strict mode) |
| OpenType FontOTF | 100% | 100% | Linux · macOS · Windows | Per-table checksum + whole-file checkSumAdjustment |
| WOFF FontWOFF | 100% | 100% | Linux · macOS · Windows | Per-table zlib-decompress + origChecksum verification (font_validator.zig:370). Prior "0%/0%" was a stale sweep — the code was already doing the right thing. |
| WOFF2 FontWOFF2 | 49% | 100% | Linux · macOS · Windows | Per-table Brotli-decompress + origChecksum verification. Prior "0%/0%" was a stale sweep. Sniper is lower than WOFF because WOFF2's Brotli framing is more compact (fewer structural bytes), but shotgun still perfect. |
Наука
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| FITS Astronomical DataFITS (with CHECKSUM) | 100% | 100% | Linux · macOS · Windows | CHECKSUM/DATASUM per HDU |
| FITS Astronomical DataFITS (no CHECKSUM) | 0% | 2% | Linux · macOS · Windows | Keyword validation only |
| DICOM Medical ImageDICOM | 5% | 20% | Linux · macOS · Windows | Tag structure + value validation |
| HDF5 Scientific DataHDF5 | 4% | 13% | Linux · macOS · Windows | Jenkins lookup3 checksum (small file) |
| PDB Protein StructurePDB (Protein) | 16% | 39% | Linux · macOS · Windows | ATOM/HETATM record cross-validation |
| CIF Crystallographic DataCIF (Crystallographic Info) | 0% | — | Linux · macOS · Windows | Plain-text scientific format; structural only. Shotgun N/A. |
| FASTA SequenceFASTA | 22% | — | Linux · macOS · Windows | Plain-text bioinformatics; structural only. Shotgun N/A. |
| FASTQ Sequencing ReadsFASTQ | 28% | — | Linux · macOS · Windows | Plain-text bioinformatics; per-record sequence/quality length cross-check. Shotgun N/A. |
| MATLAB DataMAT-File | 94% | — | Linux · macOS · Windows | Element header + flag walk; magic + endian + tag length validation. Shotgun N/A. |
| NetCDF Scientific DataNetCDF | 39% | — | Linux · macOS · Windows | NetCDF classic header walk; HDF5-derived NetCDF-4 reuses HDF5's lookup3 checksums. Tiny sample. Shotgun N/A. |
| NIfTI NeuroimagingNIfTI-1 | 1% | — | Linux · macOS · Windows | Header magic + dims; no checksum. Shotgun N/A. |
| Apache Parquet DataParquet | 2% | — | Linux · macOS · Windows | Footer + page CRC32 (not currently verified by validator beyond header). Shotgun N/A. |
| ESRI ShapefileShapefile | 89% | — | Linux · macOS · Windows | GIS .shp; record-by-record header check + magic. Shotgun N/A. |
Бази даних
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| QuickBooks Company FileQBW | 100% | 100% | Linux · macOS · Windows | CRC32 per 4096-byte page (v12+) |
| SQLite DatabaseSQLite | 54% | 100% | Linux · macOS · Windows | Page headers + btree structure |
| Microsoft Access DatabaseACCDB | 1% | 73% | Linux · macOS · Windows | Jet engine page structure (small file) |
| Microsoft Access Database (97-2003)MDB | 1% | 73% | Linux · macOS · Windows | Jet engine page structure (small file) |
Архіви
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| Tar ArchiveTAR | 15% | 73% | Linux · macOS · Windows | Header checksum per 512-byte block |
| 7-Zip Archive7z | 99% | 100% | Linux · macOS · Windows | 7z next-header CRC32 + per-stream CRC32. Hand-authored xorshift corpus (CC0). Both sniper and shotgun catch nearly every flip. |
| Unix ar ArchiveAR (Unix archive) | 38% | — | Linux · macOS · Windows | `!<arch>\n` magic + 60-byte member headers; no per-entry checksum. Shotgun N/A. |
| BLIP ArchiveBLAR (Blake3 Archive) | 100% | — | Linux · macOS · Windows | Peter's archive format with Blake3 per-entry hashing. Every probed bit flip detected. Shotgun N/A. |
| Brotli CompressedBrotli | 47% | 100% | Linux · macOS · Windows | Raw Brotli stream; full streaming decompression via libbrotli. RFC 7932 has no whole-file checksum, but the entropy coder rejects most structurally invalid prefix codes / distance overflows / window-bits errors. ~47% of single-bit flips on dense English-text Huffman streams cascade into decoder failure; the rest decode to wrong-but-valid bytes (silent). 4 KB shotgun overwrites are essentially always rejected. Earlier 0%/0% row used a pathological xorshift random-noise corpus where compressed output is ~8 bits/byte and bit flips are statistically valid Huffman codes; replaced with a deterministic CC0 English-text corpus (scripts/build-brotli-corpus). |
| Bzip2 CompressedBzip2 | 100% | 100% | Linux · macOS · Windows | CRC32 per block + combined CRC. Hand-authored xorshift corpus (CC0). |
| Microsoft Cabinet ArchiveCAB (Microsoft) | 100% | 100% | Linux · macOS · Windows | Per-folder + per-file CSUM (Adler-like) cross-validated. CC0 sample built via gcab. |
| Gzip CompressedGzip | 100% | 100% | Linux · macOS · Windows | CRC32 + ISIZE in trailer. Hand-authored xorshift corpus (CC0). |
| BinHex 4.0 ArchiveBinHex (.hqx) | 100% | 100% | Linux · macOS · Windows | BinHex 4.0 header + per-fork CRC16. Hand-authored CC0 sample (encoder reverse-engineered from validator). |
| BLIP Mini-ArchiveMBLAR (Multi-Blake3) | 100% | — | Linux · macOS · Windows | Peter's manifest-bundle archive; Blake3 per file. Shotgun N/A. |
| PAR2 Parity ArchivePAR2 | 100% | 100% | Linux · macOS · Windows | MD5 of every packet + recovery slice integrity. Built via par2cmdline (BSD-licensed). |
| RAR ArchiveRAR | 100% | 100% | Linux · macOS · Windows | Per-entry CRC32 + RAR5 BLAKE2sp option. CC0 corpus (rar -m5). |
| StuffIt ArchiveStuffIt | 94% | — | Linux · macOS · Windows | Header + entry walk; sniper 94% on 140 B from header dominance. Shotgun N/A. |
| XZ CompressedXZ | 100% | 100% | Linux · macOS · Windows | CRC32/CRC64/SHA-256 per stream + index integrity. Hand-authored xorshift corpus (CC0). |
| ZIP ArchiveZIP | 100% | 100% | Linux · macOS · Windows | Per-entry CRC32 + EOCD record. Hand-authored xorshift corpus (CC0). |
| Zstandard CompressedZstd | 100% | 100% | Linux · macOS · Windows | Frame-level XXH64 + frame footer. Hand-authored xorshift corpus (CC0). |
Ігрові ROM
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| SNES ROMSNES | 100% | 99% | Linux · macOS · Windows | Internal ROM checksum + complement |
| Game Boy ROMGB | 0% | 1% | Linux · macOS · Windows | Header checksum only (tiny coverage) |
| Game Boy Advance ROMGBA | 0% | 0% | Linux · macOS · Windows | Header checksum only |
| Sega Genesis ROMGenesis | 0% | 1% | Linux · macOS · Windows | Header checksum only |
| NES ROMNES | 0% | 0% | Linux · macOS · Windows | iNES header only |
| Nintendo 64 ROMN64 | 0% | 0% | Linux · macOS · Windows | No integrity mechanism |
| MAME CHD ImageCHD (MAME) | 10% | — | Linux · macOS · Windows | MAME's compressed disc; SHA-1 per hunk + global SHA-1. Tiny synthetic 124 B sample. Shotgun N/A. |
| Nintendo DS ROMNDS (Nintendo DS) | 41% | — | Linux · macOS · Windows | Header CRC16 (logo + secure area). 41% sniper on 1 KB. Shotgun N/A. |
| DOOM WAD ArchiveWAD (Doom/Wii) | 100% | — | Linux · macOS · Windows | Lump table; structural only. Tiny synthetic sample — header IS most of file. Shotgun N/A. |
Образи дисків / файлові системи / виконувані / інше
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| Apple Disk ImageDMG | 0% | 10% | Linux · macOS · Windows | Plist + koly trailer |
| ISO 9660 Disk ImageISO | 0% | 0% | Linux · macOS · Windows | PVD structural only |
| COFF Object FileCOFF | 0% | 1% | Linux · macOS · Windows | Section header structure |
| Mach-O Universal BinaryMach-O Fat | 0% | 0% | Linux · macOS · Windows | Architecture header only |
| Blorb Interactive FictionBlorb | 0% | 0% | Linux · macOS · Windows | IFF structural only |
| macOS DS_StoreDS_Store | 0% | 25% | Linux · macOS · Windows | BTree page structure |
| ASF MediaASF | 1% | 0% | Linux · macOS · Windows | GUID/object structural |
| Quicken Data FileQDF | 1% | 0% | Linux · macOS · Windows | OLE2/ZIP structural |
| 3MF 3D Manufacturing3MF (3D Manufacturing) | 75% | — | Linux · macOS · Windows | ZIP-based; per-entry CRC32 + XML manifest. Shotgun N/A (sample < 4 KB). |
| Adobe After Effects ProjectAEP (After Effects Project) | 27% | — | Linux · macOS · Windows | RIFX container; structural-only walk. Tiny sample (44 B). Shotgun N/A. |
| Ableton Live SetALS (Ableton Live Set) | 90% | — | Linux · macOS · Windows | gzip-wrapped XML. Tiny sample — gzip CRC32 + zlib structure catches most bit flips. Shotgun N/A. |
| Apple Media Library DatabaseApple Media DB | 46% | — | Linux · macOS · Windows | tvdb/photo SQLite-derived store. Structural walk. Shotgun N/A. |
| GarageBand ProjectGarageBand (.band) | 0% | — | Linux · macOS · Windows | Bundle (directory) format — `projectData` inside is a plist routed to plist validator. Sweep-only on the plist file. Shotgun N/A. |
| Erlang/Elixir BEAM BytecodeBEAM (Erlang) | 36% | — | Linux · macOS · Windows | FOR1/IFF chunk container; chunk lengths cross-validated. No CRC. Shotgun N/A. |
| Blender 3D ProjectBlender (.blend) | 47% | — | Linux · macOS · Windows | DNA-block-based binary. Structural walk; no checksum. Tiny header-only sample. Shotgun N/A. |
| BSP Map FileBSP (Quake) | 39% | — | Linux · macOS · Windows | Lump-table walk; no CRC. Structural only. Shotgun N/A. |
| Bitwig Studio ProjectBitwig Project | 0% | — | Linux · macOS · Windows | ZIP-derived but tiny sample (128 B). Sniper 0% — sample is below ZIP minimum. Shotgun N/A. |
| Chromium Resource PAKChromium PAK | 0% | — | Linux · macOS · Windows | Resource bundle; index walk only. Tiny synthetic sample. Shotgun N/A. |
| Cubase Project | 49% | — | Linux · macOS · Windows | Steinberg binary. Structural only. Shotgun N/A. |
| DER Certificate/KeyDER (ASN.1) | 7% | — | Linux · macOS · Windows | TLV-walked. Structural; no checksum. Shotgun N/A. |
| DaVinci Resolve ProjectDRP (DR Painter) | 60% | — | Linux · macOS · Windows | Generic binary — high sniper from header dominance. Shotgun N/A. |
| AutoCAD DrawingDWG (AutoCAD) | 1% | — | Linux · macOS · Windows | Section structure walk. Tiny sample. Shotgun N/A. |
| AutoCAD DXFDXF (AutoCAD) | 5% | — | Linux · macOS · Windows | Plain-text CAD; structural only. Shotgun N/A. |
| EEx/ERB TemplateErlang Mix .eex | 0% | — | Linux · macOS · Windows | Plain-text template; structural only. Shotgun N/A. |
| ELF ExecutableELF | 20% | — | Linux · macOS · Windows | Section header walk; no whole-file checksum. Tiny synthetic 64 B sample. Shotgun N/A. |
| Erlang TermErlang BERT | 0% | — | Linux · macOS · Windows | External Term Format walk. Shotgun N/A. |
| Final Cut Pro XMLFCPXML (Final Cut) | 58% | — | Linux · macOS · Windows | XML-based; structural walk. Shotgun N/A. |
| FL Studio ProjectFL Studio | 6% | — | Linux · macOS · Windows | Project file structural walk. Tiny sample. Shotgun N/A. |
| GLB Binary glTFGLB (glTF binary) | 32% | — | Linux · macOS · Windows | Chunk-based; structural walk. JSON chunk + BIN chunk lengths cross-validated. Shotgun N/A. |
| glTF 3D SceneglTF (JSON) | 20% | — | Linux · macOS · Windows | JSON manifest; structural only. Shotgun N/A. |
| IFF ContainerIFF (EA) | 46% | — | Linux · macOS · Windows | Chunk walk; no CRC. Shotgun N/A. |
| Java Class FileJava .class | 21% | — | Linux · macOS · Windows | ClassFile constant pool walk; magic + version check. Shotgun N/A. |
| KML Geographic DataKML | 58% | — | Linux · macOS · Windows | GIS XML; structural only. Shotgun N/A. |
| KMZ Compressed KMLKMZ | 95% | — | Linux · macOS · Windows | KMZ = zipped KML; per-entry CRC32 catches almost any bit flip on the small sample. Shotgun N/A. |
| Logic Pro X ProjectLogic Pro X | 71% | — | Linux · macOS · Windows | Bundle format — sample is `ProjectData` plist alone. Shotgun N/A. |
| Larian Studios PAKLSPK (Larian Studios) | 3% | — | Linux · macOS · Windows | Pak file; structural only. Shotgun N/A. |
| Mach-O BinaryMach-O | 0% | — | Linux · macOS · Windows | Single-arch sample; load command walk; no checksum. Shotgun N/A. |
| Wavefront OBJ 3D ModelOBJ (Wavefront) | 44% | — | Linux · macOS · Windows | Plain-text 3D; vertex/face syntax check. Shotgun N/A. |
| Quake PAK ArchivePAK (Quake) | 60% | — | Linux · macOS · Windows | Header offset/length cross-check. Tiny synthetic sample (12 B). Shotgun N/A. |
| Windows PE ExecutablePE (Windows) | 3% | — | Linux · macOS · Windows | MZ + PE headers; optional checksum (rarely populated). Tiny sample. Shotgun N/A. |
| PEM Certificate/KeyPEM (RFC 7468) | 51% | — | Linux · macOS · Windows | Base64 envelope; structural only. Shotgun N/A. |
| PGP Signed Message | 81% | — | Linux · macOS · Windows | Header/footer detect + Base64 walk. Shotgun N/A. |
| Apple Property ListPlist | 52% | — | Linux · macOS · Windows | Both XML and binary plist; structural only. Shotgun N/A. |
| PLY Polygon FilePLY (3D) | 51% | — | Linux · macOS · Windows | Header + element count; no per-element checksum. Shotgun N/A. |
| Adobe Premiere Pro ProjectPremiere Project | 55% | — | Linux · macOS · Windows | Gzip-wrapped XML. Tiny sample. Shotgun N/A. |
| Reason ProjectReason (Propellerhead) | 33% | — | Linux · macOS · Windows | Bundle binary; structural walk. Shotgun N/A. |
| Reaper ProjectRPP (Reaper) | 50% | — | Linux · macOS · Windows | Plain-text project; structural only. Shotgun N/A. |
| Sketch Design FileSketch (.sketch) | 56% | — | Linux · macOS · Windows | ZIP-based; per-entry CRC32. Shotgun N/A. |
| SSH Signature | 64% | — | Linux · macOS · Windows | RFC 4880-like wire-format walk. Shotgun N/A. |
| STEP CAD ModelSTEP (.step) | 23% | — | Linux · macOS · Windows | ISO 10303-21 plain-text CAD. Shotgun N/A. |
| STL 3D ModelSTL (3D) | 73% | — | Linux · macOS · Windows | Both ASCII and binary stl; sniper 73% on small ASCII sample. Shotgun N/A. |
| Roxio Toast Disc ImageToast (Roxio) | 0% | 10% | Linux · macOS · Windows | Apple Toast disc image; structural walk. |
| Type 1 Font | 0% | — | Linux · macOS · Windows | PostScript-derived font; eexec encrypted body walk. Shotgun N/A. |
| VMware Virtual DiskVMDK | 0% | 0% | Linux · macOS · Windows | VMware disk descriptor + extent walk. 65 KB sample at 0%/0% — structural-only. |
| Valve PAK ArchiveVPK (Valve Pak) | 100% | — | Linux · macOS · Windows | Tiny synthetic 28 B sample; structural walk catches every flip (header IS the file). Shotgun N/A. |
| WARC Web ArchiveWARC (Web Archive) | 48% | — | Linux · macOS · Windows | Record header + content-length walk. Shotgun N/A. |
| WebAssembly ModuleWebAssembly | 35% | — | Linux · macOS · Windows | Section LEB128 length walk; magic + version. Tiny sample. Shotgun N/A. |
| Windows Imaging FormatWIM (Windows Imaging) | 8% | — | Linux · macOS · Windows | XPRESS/LZX section walk; partial integrity. Shotgun N/A. |
Пізні доповнення (закриття прогалин у покритті)
| Формат | Sniper | Shotgun | Платформи | Як це виявляється (або чому це неможливо) |
|---|---|---|---|---|
| Studio One ProjectStudio One Project (.song) | 100% | 100% | Linux · macOS · Windows | ZIP-based; per-entry CRC32 + metainfo.xml integrity. Hand-authored CC0 sample. |
| StuffIt X ArchiveStuffIt X (.sitx) | 0% | 0% | Linux · macOS · Windows | Magic + structural header walk only; no per-entry checksums in current validator. Hand-authored. |
| Microsoft InstallerMicrosoft Installer (.msi) | 0% | 43% | Linux · macOS · Windows | OLE2 compound file (no integrity beyond CFBF FAT structure). Built via wixl. Shotgun catches FAT/dir mismatch. |
| Windows ESD ImageWindows ESD (.esd) | 1% | 0% | Linux · macOS · Windows | WIM variant with LZMS compression; structural header walk (208-byte WIM header). Hand-authored. |
| LLVM Precompiled HeaderLLVM Precompiled Header (.pch) | 0% | 0% | Linux · macOS · Windows | Magic ("CPCH") + LLVM bitcode signature only. Bitcode contents are version-specific; structural only. |
| LLVM Serialized DiagnosticsLLVM Serialized Diagnostics (.dia) | 0% | 0% | Linux · macOS · Windows | Magic ("DIAG") + LLVM bitcode signature only. Same limit as .pch. |
| QuickBooks BackupQuickBooks Backup (.qbb) | 8% | 24% | Linux · macOS · Windows | OLE2-based; dispatches through document_validators (no per-stream checksum). Sample shared with ole2/sample.doc. |
| PCAP Network CapturePCAP | 4% | 100% | Linux · macOS · Windows | Hand-authored (no sudo for tcpdump in nix sandbox). Walks every packet record's incl_len/orig_len; shotgun lands in valid trailer bytes that fail length checks. Fixed 64 MiB-stack-overflow bug in `validatePcap` while landing the sample. |
| PCAPNG Network CapturePCAPNG | 0% | 0% | Linux · macOS · Windows | Section Header Block + IDB + EPBs structural walk; pcapng-validator checks magic and BOM only (no block-level CRC verification yet — pcapng has optional CRC32 per block). |
| dBASE DatabasedBASE (.dbf) | 0% | 100% | Linux · macOS · Windows | Header version + date + record-length cross-validation; hand-authored CC0 dBASE III. Sniper rate fundamental (no per-record checksum); shotgun lands in tail records past header-declared range. |
| G-code (3D Printer/CNC)G-code | 27% | 98% | Linux · macOS · Windows | Text format; line-grammar walk catches 27% sniper (most flips break a coordinate or G/M code prefix). Shotgun 98% — large overwrite breaks too many lines to ignore. Hand-authored CC0. |
| MessagePack DataMessagePack (.msgpack) | 0% | 0% | Linux · macOS · Windows | Type-tagged binary; validator walks tag stream but spec has no checksum. Most flips land in payload bytes that decode to different-but-valid values. Fundamental limit per RFC. Hand-authored CC0. |
| RPM-пакетRPM Package (.rpm) | 3% | 30% | Linux · macOS · Windows | RPM v3 lead + signature header + main header. Validator computes SHA-1 over main header (when sig tag 269 present). Shotgun 30% reflects header dominance vs payload mass. Built via rpmbuild (CC0 spec). Fixed 16 MiB-stack-overflow bug in `validateRpm` while landing the sample. |