Phạm vi phát hiện

Được đo lường, không phải tuyên bố suông.

Mọi con số bên dưới đều được đo bằng cách tiêm hỏng hóc thật vào các tệp mẫu thật rồi đếm những gì trình kiểm tra bắt được — 100 lượt thử cho mỗi định dạng mỗi chế độ, seed cố định, dữ liệu thô từng lượt thử có trong kho mã. Cả những con số 0 cũng được công bố: một số định dạng đơn giản là không có cơ chế toàn vẹn nào, và chúng tôi thà nói thẳng với bạn còn hơn để bạn hiểu nhầm.

Tỷ lệ phát hiện tăng theo từng bản phát hành: các bộ giải mã chuyên sâu được bổ sung theo từng định dạng, và bảng này được tạo lại từ dữ liệu đo thô mỗi lần.

Ghi chú cơ chế hiển thị bằng tiếng Anh: đây là các mô tả kỹ thuật chuyên sâu được giữ nguyên văn từ báo cáo đo lường.

Hình ảnh & Ảnh chụp

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
PNG ImagePNG100%100%100%CRC32 per chunkgenerated_plasma.png · 336 KB
JPEG XL ImageJXL87%97%100%Container + frame checksumsanimation_icos4d.jxl · 344 KB
WebP ImageWebP83%82%84%libwebp full decodegoogle_gallery_3.webp · 198 KB
macOS IconICNS97%97%100%TLV chunk stream; near-total coveragesample.icns · 234 KB
Flash SWFSWF100%100%100%CWS = zlib wrapper; any flip = zlib CRC failcws_sample.swf · 23 KB
SVG Vector GraphicsSVG45%98%99%XML parse — almost any corruption breaks the XML grammar.sample.svg · 29 KB
Windows IconICO63%54%70%Directory entries + embedded PNG/BMP image validation. Multi-resolution ICO has high structural-byte density.sample.ico · 226 KB
QOI ImageQOI0%0%0%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.sample.qoi · 22 KB
JPEG2000 ImageJPEG2K6%5%97%Codestream marker structureballoon_eciRGB_icc.jp2 · 1.8 MB
GIF ImageGIF9%35%100%LZW decode (shotgun desyncs state); larger animated fixture lifts header-tamper detectionanimated_sample.gif · 400 KB
JPEG ImageJPEG4%8%100%jpegz wrapperDecode (062393f); most single-byte tamper lands in entropy-coded data, which JPEG tolerates by designw3c_exif_420.jpg · 750 KB
OpenEXR HDR ImageEXR1%0%100%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.zip_plasma.exr · 388 KB
Adobe PhotoshopPSD2%2%50%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.rle_plasma.psd · 1.8 MB
HEIC/HEIF ImageHEIC0%0%4%H.265 CABAC per tile; no content checksum, so many entropy-payload flips decode as different valid pixels. Structural, NAL, RBSP, and decoder-state violations are still detectable.sample.heic · 2.9 MB
AVIF ImageAVIF0%0%1%AV1 OBUs with entropy-coded tile data; no image-content checksum, so many payload flips can remain syntactically valid. Container/OBU structure and decoder errors are still detectable.butterfly.avif · 85 KB
BMP ImageBMP0%0%0%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.sample.bmp · 900 KB
DPX ImageDPX0%0%0%Raw pixel; SMPTE 268M spec has no checksumsample.dpx · 1.8 MB
Portable Anymap ImagePAM/PPM0%0%0%Raw pixel; Netpbm spec has no checksumsample.ppm · 1.8 MB
TGA ImageTGA25%27%100%Header + image-spec validation catches malformed-byte tamper; tiny 11 KB fixture pushes structural-byte density upsample.tga · 11 KB
TIFF ImageTIFF63%93%100%Every IFD plus every LZW-compressed strip/tile is decoded with tiffz's shared strict lzwz core. Required EOD plus exact decoded strip/tile extent reject truncation and excess output; valid-but-different LZW streams still have no pixel checksum. Deterministic 100-trial seed-42 sweep: 63% sniper, 93% bolter, 100% shotgun.bali.tif · 175 KB
JBIG2 Bi-level ImageJBIG20%n/an/aBi-level image stream walk; sniper 0% on truncated sample. Shotgun N/A (sample < 4 KB).annex-h-truncated.jbig2 · 860 B

RAW máy ảnh

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
Adobe DNG RAWDNG3%3%3%TIFF-based via tiffz strip+tile decode loop + jpegz preview decode; 77 MB sensor dump dilutes detection density per byteL1006922_leica_M11.DNG · 75.2 MB
Canon CR2 RAWCR22%1%6%TIFF-based; IFD-walked preview JPEG decoded via libjpeg-turbo (sRAW2 lossless strip filtered out so heuristic keeps the real preview)canon_eos_40d_sraw2.cr2 · 5.5 MB
Nikon RAWNEF0%0%0%TIFF-based; deep via zigimgnikon_coolscan_iv.nef · 2.1 MB
Sony RAWARW0%4%15%TIFF-based; deep via zigimgsony_ilce_7s.arw · 5.9 MB
Fuji RAWRAF0%0%2%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.DSCF0652_fuji_GFX_100.RAF · 198.4 MB
NRW0%1%0%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.RAW_NIKON_COOLPIX_P7100.NRW · 15.7 MB
Olympus RAWORF0%0%0%Olympus; validator WARNs on "uncompressed IFD claims but Huffman-compressed data". Structural-only.PB120976.ORF · 13.3 MB
Pentax RAWPEF0%0%0%Pentax; TIFF-wrapped. Structural-only.IMGP1754.PEF · 10.6 MB
Panasonic RAWRW20%0%0%Panasonic; TIFF-wrapped. Structural-only.panasonic_16-9.RW2 · 10.4 MB
Canon CR3 RAWCR3 (Canon)0%0%0%ISOBMFF-based Canon RAW 3; structural box walk. 15 MB sample at 0%/0% confirms no integrity mechanism beyond structure.sample.CR3 · 15.0 MB

Video

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
Matroska VideoMKV100%100%100%CRC32 per EBML cluster — **gold standard**generated_testsrc.mkv · 456 KB
AV1 VideoAV15%6%100%OBU structure + tile decodesample.av1 · 7 KB
MPEG Transport StreamMPEG-TS4%5%100%PAT/PMT CRC + continuity countersmpeg2_aac_latm.ts · 141 KB
Standard MIDI FileMIDI15%94%100%Track framing + delta/event validationfur_elise.mid · 20 KB
Apple ProRes VideoProRes/MOV5%7%78%ProRes intra-frame DCT decode per frameprores_4444_xq.mov · 6.3 MB
MP4 VideoMP40%0%66%H.264 CABAC + AAC decode (sample = `avc1` + AAC)jellyfish_360_10s.mp4 · 1022 KB
QuickTime VideoMOV1%1%75%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.jellyfish_h264.mov · 1022 KB
WebM VideoWebM (VP9+Opus)86%69%78%libvpx 1.14.1 full VP9 decode per frame — every frame entropy + DCT decoded via `vpx_codec_decode`. Opus audio CRC provides additional coverage.jellyfish_vp9_opus.webm · 1.7 MB
WebM VideoWebM (VP8)88%n/a90%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.jellyfish_360_10s.webm · 1.0 MB
AVI VideoAVI0%20%93%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.jellyfish_mjpeg.avi · 8.1 MB
DV VideoDV0%3%0%DV spec has no checksum; relies on tape physical ECCsample.dv · 351 KB
MPEG Elementary StreamMPEG-ES0%0%0%Start codes onlysample.m1v · 30 KB
MPEG Program StreamMPEG-1/20%0%0%Start codes onlysample.mpg · 16 KB
MPEG-4 Part 20%0%0%VOP header parsing tolerates VOP failuresubAVIxvid10.avi · 1.2 MB
RealMediaRM0%1%2%RealMedia spec has no checksums; structural chunk walk onlysample.rm · 13 KB
Flash VideoFLV40%n/an/aFlash Video tag walk; no per-tag CRC. Tiny 33 B sample — sniper hits magic + header bytes. Shotgun N/A (sample < 4 KB).sample.flv · 33 B
MPEG Program StreamMPEG-PS0%n/an/aMPEG Program Stream; PES header walk; no CRC. Shotgun N/A (sample < 4 KB).sample.mpg · 2 KB
Ogg Video (Theora)Theora (.ogv)100%n/a100%Theora-in-Ogg; libtheora-encoded testsrc (CC0). Ogg page CRC32 catches every probed bit flip in both modes.sample.ogv · 50 KB
IVF Video ContainerVP8 (raw IVF)0%0%0%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.sample.ivf · 9 KB

Âm thanh

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
Dolby Digital AC-3 AudioAC3100%100%100%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.Canyon-5.1-48khz-448kbit.ac3 · 2.0 MB
Ogg AudioOGG100%100%100%CRC32 per OGG pagewikipedia_example.ogg · 102 KB
Dolby Digital Plus AudioE-AC3 (large)100%n/a100%CRC-16 per syncframe (full file, after 2026-03-06 fix)sample1_5.1_640kbps.eac3 · 4.0 MB
Dolby Digital Plus AudioE-AC3 (small)81%100%85%⚠ Lower coverage on smaller file — reflects frame-size / coverage density, not a bugsample3_5.1_256kbps.eac3 · 1.2 MB
FLAC AudioFLAC80%96%88%MD5 audio hash + CRC-8/CRC-16 per framegenerated_middle_c.flac · 43 KB
Apple Lossless AudioALAC1%0%100%Lossless decode — 4KB overwrite kills a framesample.m4a · 17 KB
Opus1%62%35%OGG page CRC + libopus decodetest_audio_video.webm · 54 KB
M4A AudioAAC (M4A)4%3%31%MP4 box + AAC syntax decodesample.m4a · 15 KB
AAC-LC Audio (ADTS)AAC (ADTS)6%10%20%ADTS framing + syntaxsample.aac · 9 KB
MP3 AudioMP31%0%1%Frame sync only — MP3 spec has no data CRCgenerated_tone_880hz.mp3 · 48 KB
WAV AudioWAV0%0%2%RIFF structural; no data checksumsample.wav · 8 KB
AIFF AudioAIFF0%0%1%IFF structural; no data checksumsample.aiff · 7 KB
CAF AudioCAF0%0%1%Chunk walk; no data checksumsample.caf · 8 KB
AU/SND AudioAU0%0%0%Header + raw PCMsample.au · 8 KB
ProTracker ModuleTracker (MOD)0%0%0%No integrity mechanism in formatotm.mod · 301 KB
AMR AudioAMR14%n/an/aAdaptive 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.sample.amr · 38 B
Monkey's AudioAPE (Monkey's Audio)99%100%100%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).corpus_synthetic.ape · 15 KB
CD+Graphics KaraokeCD+G (Karaoke)0%0%2%24-byte fixed-size sectors; structural only — no checksum. 0%/2% confirms fundamental format limit.sample.cdg · 14 KB
DSDIFF AudioDFF (DSDIFF)52%n/an/aDSD audio container; chunk walk only. Tiny 32 B header-only sample. Shotgun N/A.sample.dff · 32 B
DSD Stream FileDSF (DSD)60%n/an/aSony DSD; structural walk. Shotgun N/A.sample.dsf · 88 B
DTS Digital Surround AudioDTS (Digital Surround)0%0%51%Frame sync + size walk; no per-frame CRC. Shotgun lift from 4 KB overwrite desyncing the frame stream.sample.dts · 369 KB
True Audio (TTA)TTA (True Audio)97%n/an/aPer-frame CRC32 catches almost every probed bit flip. Shotgun N/A (sample < 4 KB).sample.tta · 3 KB
WavPack AudioWavPack100%100%100%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.corpus_xorshift.wv · 117 KB

Tài liệu & Văn phòng

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
Excel Spreadsheet (97-2003)XLS22%24%96%BIFF8 records + SST + formulas + cellspoi_formula.xls · 174 KB
Word Document (97-2003)DOC (large)2%2%2%FIB + 31 fc/lcb pair bounds + CLX piece table. Detection density drops on large docs — body text is most of the file.word95_large.doc · 589 KB
Word Document (97-2003)DOC (small)n/an/a52%Same validator, smaller file — shotgun has ~21% chance of hitting FIB/Table/CLX.word97_simple.doc · 19 KB
PDF DocumentPDFn/an/an/a†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).(varies — see breakout) · n/a
PowerPoint (97-2003)OLE2 (PPT)0%0%0%FAT/directory structural onlysample.ppt · 891 KB
Adobe InDesign DocumentInDesign1%0%73%Page structure.sample.indd · 4 KB
Word Document (OOXML)DOCX87%82%100%OOXML = ZIP with per-entry CRC32. Sample replaced 2026-04-23 from Apache 2.0 Tika test corpus.sample.docx · 13 KB
Excel Spreadsheet (OOXML)XLSX82%83%100%OOXML = ZIP with per-entry CRC32. Sample from Apache Tika.sample.xlsx · 10 KB
PowerPoint (OOXML)PPTX93%97%100%OOXML = ZIP with per-entry CRC32. Sample from Apache Tika.sample.pptx · 35 KB
OpenDocument TextODT96%98%100%ODF = ZIP with per-entry CRC32. Sample from Apache Tika. Note: currently auto-detected as EPUB (also ZIP) — separate detection-priority bug.sample.odt · 23 KB
OpenDocument SpreadsheetODS88%88%100%Same as ODT.sample.ods · 8 KB
OpenDocument PresentationODP97%98%100%Same as ODT.sample.odp · 23 KB
Rich Text FormatRTF0%0%92%Structural only — RTF has no checksums. Shotgun high because 4 KB overwrite reliably breaks brace matching or control-word syntax.sample.rtf · 1.2 MB
EML Email MessageEML12%97%84%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.sample.eml · 6 KB
MBOX Mail ArchiveMBOX13%100%100%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.sample.mbox · 16 KB
Apple PagesPages100%99%100%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.sample.pages · 56 KB
Apple KeynoteKeynote99%100%100%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.sample.key · 64 KB
Apple NumbersNumbers100%99%100%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.sample.numbers · 64 KB
Adobe IllustratorAI (Adobe Illustrator)6%n/an/aPostScript-derived header + PDF body. Tiny 372 B sample is mostly PDF magic; later bytes are uncovered text. Shotgun N/A.sample.ai · 372 B
BAI2 Balance ReportBAI2 (Bank Admin Inst.)20%n/an/aFixed-format banking text; structural validation of record-type prefixes. No checksum. Shotgun N/A.sample.bai2 · 362 B
CSV DataCSV26%100%100%Structural CSV + mandatory UTF-8 validation. bolter/shotgun reliably produce invalid UTF-8 -> 100%; sniper 26% = flips landing in a multibyte sequence. (Was 0/0/0 before 2026-06-22: CSV was omitted from the extension-remap dispatch and silently skipped its UTF-8 check; fixed and guarded by tests/cli/utf8_required_formats_reject.)large_utf8.csv · 23 KB
ClarisWorks/AppleWorksClarisWorks6%n/an/aLegacy AppleWorks. Structural walk. Shotgun N/A.sample.cwk · 64 B
UN/EDIFACTEDIFACT37%n/an/aFixed-format trade messages; validator cross-checks UNH/UNT counts. Shotgun N/A.sample.edifact · 152 B
Encapsulated PostScriptEPS4%n/an/aPostScript header + structural walk. Shotgun N/A.sample.eps · 430 B
EPUB eBookEPUB69%n/an/aZIP container with mimetype check; per-entry CRC32. Shotgun N/A.sample.epub · 1 KB
HTML DocumentHTML22%100%100%Tag-tree parse + UTF-8 validation gated on a declared charset (<meta charset=utf-8>). bolter/shotgun -> 100%; sniper 22% on the >=12 KB fixture.large_utf8.html · 34 KB
iCalendariCalendar (RFC 5545)21%n/an/aStructural; BEGIN/END pairing + property syntax. Shotgun N/A.sample.ics · 650 B
Adobe InDesign MarkupIDML (InDesign)55%n/an/aZIP+XML markup; per-entry CRC32. Shotgun N/A.sample.idml · 884 B
INI ConfigINI17%n/an/aPlain-text key-value; structural only. Shotgun N/A.sample.ini · 60 B
JSON DataJSON43%100%100%RFC 8259 mandates UTF-8: the validator rejects invalid UTF-8, then parses structure. On the >=12 KB multibyte fixture, bolter/shotgun almost always corrupt a UTF-8 sequence -> 100%; sniper 43% is the share of single-bit flips that land in a multibyte byte or a JSON token.large_utf8.json · 33 KB
JSON530%n/an/aJSON5 parser; structural only. Shotgun N/A.sample.json5 · 329 B
SWIFT MT940 Bank StatementMT940 (SWIFT)11%n/an/aBanking text; structural only. Shotgun N/A.sample.mt940 · 347 B
MacWrite Document0%n/an/aLegacy word processor; structural only. Tiny sample. Shotgun N/A.sample.mwd · 64 B
NACHA/ACH Electronic PaymentsNACHA (ACH)15%n/an/aBanking fixed-format text; record-type validation. Shotgun N/A.sample.ach · 950 B
Open Financial ExchangeOFX (Open Financial)2%n/an/aBanking SGML/XML; structural only. Shotgun N/A.sample.ofx · 850 B
Plain Text (UTF-8)Plain Text0%0%95%UTF-8 + control-char check. Invalid UTF-8 that is still Latin-1-decodable falls back to single-byte decode with a WARN (exit 0, so counted as not-detected) -> sniper/bolter ~0%; shotgun 95% because a random 4 KB overwrite injects NUL or undecodable bytes that hard-fail.large_utf8.txt · 17 KB
Pro Tools SessionPTX (Pro Tools)0%0%0%Avid session structural walk. 0%/0% on 40 KB confirms structural-only.sample.ptx · 39 KB
Quicken Interchange FormatQIF (Quicken Interchange)3%n/an/aPlain-text; structural only. Shotgun N/A.sample.qif · 218 B
TOML ConfigTOML42%100%100%TOML structural parse + mandatory UTF-8. bolter/shotgun -> 100% (invalid UTF-8); sniper 42% on the >=12 KB multibyte fixture.large_utf8.toml · 33 KB
Tax Exchange FormatTXF (Tax Exchange)3%n/an/aPlain-text; structural only. Shotgun N/A.sample.txf · 140 B
vCardvCard (RFC 6350)32%n/an/aStructural BEGIN/END pairing + property syntax. Shotgun N/A.sample.vcf · 198 B
WordPerfect DocumentWordPerfect2%n/an/aHeader walk; structural only. Shotgun N/A.sample.wpd · 512 B
X12 EDI21%n/an/aFixed-format trade messages; ISA/IEA + GS/GE counts cross-validated. Shotgun N/A.sample.edi · 262 B
XML DocumentXML52%100%100%XML well-formedness + mandatory UTF-8. bolter/shotgun -> 100%; sniper 52% from tag/quote/multibyte density on the >=12 KB fixture.large_utf8.xml · 40 KB
YAML DataYAML0%n/an/aPlain-text; structural only. Shotgun N/A.sample.yaml · 68 B
Markdown TextMarkdown0%n/an/aPlain-text; structural only. Shotgun N/A.sample.md · 525 B

Phông chữ

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
TrueType FontTTF100%100%100%Per-table checksum + whole-file checkSumAdjustment (strict mode)noto_sans_regular.ttf · 607 KB
OpenType FontOTF100%100%100%Per-table checksum + whole-file checkSumAdjustmentsource_sans_regular.otf · 327 KB
WOFF FontWOFF100%100%100%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.roboto_regular.woff · 254 KB
WOFF2 FontWOFF249%63%100%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.roboto_regular.woff2 · 172 KB

Khoa học

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
FITS Astronomical DataFITS (with CHECKSUM)100%n/a100%CHECKSUM/DATASUM per HDUsample_with_checksum.fits · 5 KB
FITS Astronomical DataFITS (no CHECKSUM)0%0%2%Keyword validation onlysample.fits · 683 KB
DICOM Medical ImageDICOM7%9%20%Tag structure + value validationCT_small.dcm · 38 KB
HDF5 Scientific DataHDF54%72%13%Jenkins lookup3 checksum (small file)sample_v2.h5 · 6 KB
PDB Protein StructurePDB (Protein)16%19%39%ATOM/HETATM record cross-validation1CRN.pdb · 48 KB
CIF Crystallographic DataCIF (Crystallographic Info)0%n/an/aPlain-text scientific format; structural only. Shotgun N/A.sample.cif · 145 B
FASTA SequenceFASTA22%n/an/aPlain-text bioinformatics; structural only. Shotgun N/A.sample.fasta · 479 B
FASTQ Sequencing ReadsFASTQ28%n/an/aPlain-text bioinformatics; per-record sequence/quality length cross-check. Shotgun N/A.sample.fastq · 447 B
MATLAB DataMAT-File94%n/an/aElement header + flag walk; magic + endian + tag length validation. Shotgun N/A.sample.mat · 1 KB
NetCDF Scientific DataNetCDF39%n/an/aNetCDF classic header walk; HDF5-derived NetCDF-4 reuses HDF5's lookup3 checksums. Tiny sample. Shotgun N/A.sample.nc · 84 B
NIfTI NeuroimagingNIfTI-11%n/an/aHeader magic + dims; no checksum. Shotgun N/A.sample.nii · 416 B
Apache Parquet DataParquet2%n/an/aFooter + page CRC32 (not currently verified by validator beyond header). Shotgun N/A.sample.parquet · 484 B
ESRI ShapefileShapefile89%n/an/aGIS .shp; record-by-record header check + magic. Shotgun N/A.sample.shp · 128 B

Cơ sở dữ liệu

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
QuickBooks Company FileQBW100%100%100%CRC32 per 4096-byte page (v12+)B18_Managing_Company_Files.qbw · 14.4 MB
SQLite DatabaseSQLite54%52%100%Page headers + btree structurechinook.sqlite · 984 KB
Microsoft Access DatabaseACCDB1%0%73%Jet engine page structure (small file)sample.accdb · 4 KB
Microsoft Access Database (97-2003)MDB1%0%73%Jet engine page structure (small file)sample.mdb · 4 KB
QuickBooks BackupQuickBooks Backup (.qbb)8%7%24%OLE2-based; dispatches through document_validators (no per-stream checksum). Sample shared with ole2/sample.doc.sample.qbb · 19 KB
dBASE DatabasedBASE (.dbf)0%0%100%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.sample.dbf · 20 KB

Lưu trữ

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
Compact Pro ArchiveCPT100%100%100%CRC per resource fork entry (Compact Pro archive, not audio)sample.cpt · 19 KB
Tar ArchiveTAR15%78%73%Header checksum per 512-byte blocksample.tar · 4 KB
7-Zip Archive7z99%n/a100%7z next-header CRC32 + per-stream CRC32. Hand-authored xorshift corpus (CC0). Both sniper and shotgun catch nearly every flip.corpus_xorshift.7z · 16 KB
Unix ar ArchiveAR (Unix archive)38%n/an/a`!<arch>\n` magic + 60-byte member headers; no per-entry checksum. Shotgun N/A.minimal.a · 88 B
BLIP ArchiveBLAR (Blake3 Archive)100%n/an/aPeter's archive format with Blake3 per-entry hashing. Every probed bit flip detected. Shotgun N/A.sample.blar · 1 KB
Brotli CompressedBrotli47%72%100%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).realistic_corpus.br · 26 KB
Bzip2 CompressedBzip2100%100%100%CRC32 per block + combined CRC. Hand-authored xorshift corpus (CC0).corpus_xorshift.bz2 · 16 KB
Microsoft Cabinet ArchiveCAB (Microsoft)100%100%100%Per-folder + per-file CSUM (Adler-like) cross-validated. CC0 sample built via gcab.corpus_xorshift.cab · 26 KB
Gzip CompressedGzip100%100%100%CRC32 + ISIZE in trailer. Hand-authored xorshift corpus (CC0).corpus_xorshift.gz · 16 KB
BinHex 4.0 ArchiveBinHex (.hqx)100%100%100%BinHex 4.0 header + per-fork CRC16. Hand-authored CC0 sample (encoder reverse-engineered from validator).corpus_xorshift.hqx · 13 KB
BLIP Mini-ArchiveMBLAR (Multi-Blake3)100%n/an/aPeter's manifest-bundle archive; Blake3 per file. Shotgun N/A.sample.mblar · 393 B
PAR2 Parity ArchivePAR2100%100%100%MD5 of every packet + recovery slice integrity. Built via par2cmdline (BSD-licensed).corpus_xorshift.par2 · 33 KB
RAR ArchiveRAR100%100%100%Per-entry CRC32 + RAR5 BLAKE2sp option. CC0 corpus (rar -m5).corpus_xorshift.rar · 16 KB
StuffIt ArchiveStuffIt94%n/an/aHeader + entry walk; sniper 94% on 140 B from header dominance. Shotgun N/A.sample.sit · 140 B
XZ CompressedXZ100%100%100%CRC32/CRC64/SHA-256 per stream + index integrity. Hand-authored xorshift corpus (CC0).corpus_xorshift.xz · 16 KB
ZIP ArchiveZIP100%100%100%Per-entry CRC32 + EOCD record. Hand-authored xorshift corpus (CC0).corpus_xorshift.zip · 16 KB
Zstandard CompressedZstd100%100%100%Frame-level XXH64 + frame footer. Hand-authored xorshift corpus (CC0).corpus_xorshift.zst · 16 KB
Studio One ProjectStudio One Project (.song)100%99%100%ZIP-based; per-entry CRC32 + metainfo.xml integrity. Hand-authored CC0 sample.sample.song · 41 KB
StuffIt X ArchiveStuffIt X (.sitx)0%0%0%Magic + structural header walk only; no per-entry checksums in current validator. Hand-authored.sample.sitx · 16 KB

ROM trò chơi

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
SNES ROMSNES100%100%99%Internal ROM checksum + complementF-ZERO.smc · 512 KB
Game Boy ROMGB0%100%1%Header checksum only (tiny coverage)Addams · 128 KB
Game Boy Advance ROMGBA0%0%0%Header checksum onlyBomberman · 8.0 MB
Sega Genesis ROMGenesis0%100%1%Header checksum onlyAero · 512 KB
NES ROMNES0%0%0%iNES header only1943 · 128 KB
Nintendo 64 ROMN640%10%0%No integrity mechanismSuper · 8.0 MB
MAME CHD ImageCHD (MAME)10%n/an/aMAME's compressed disc; SHA-1 per hunk + global SHA-1. Tiny synthetic 124 B sample. Shotgun N/A.synthetic_chd.chd · 124 B
Nintendo DS ROMNDS (Nintendo DS)41%n/an/aHeader CRC16 (logo + secure area). 41% sniper on 1 KB. Shotgun N/A.synthetic_nds_rom.nds · 1 KB
DOOM WAD ArchiveWAD (Doom/Wii)100%n/an/aLump table; structural only. Tiny synthetic sample — header IS most of file. Shotgun N/A.sample.wad · 12 B

Ảnh đĩa / Hệ thống tệp / Tệp thực thi / Khác

Định dạngSniperBolterShotgunđã đoBắt lỗi bằng cách nào (hoặc vì sao không thể)
Apple Disk ImageDMG0%0%10%Plist + koly trailersample.dmg · 16 KB
ISO 9660 Disk ImageISO0%0%0%PVD structural onlysample.iso · 350 KB
COFF Object FileCOFF0%0%1%Section header structuresample.o · 10 KB
Mach-O Universal BinaryMach-O Fat0%0%0%Architecture header onlysample · 32 KB
Blorb Interactive FictionBlorb0%0%0%IFF structural onlyAlabaster.gblorb · 3.0 MB
macOS DS_StoreDS_Store0%0%25%BTree page structuresample.ds_store · 10 KB
ASF MediaASF1%4%0%GUID/object structuralsample.asf · 6 KB
Quicken Data FileQDF1%1%0%OLE2/ZIP structuralLONDON_2018.QDF · 4.9 MB
3MF 3D Manufacturing3MF (3D Manufacturing)75%n/an/aZIP-based; per-entry CRC32 + XML manifest. Shotgun N/A (sample < 4 KB).sample.3mf · 1 KB
Adobe After Effects ProjectAEP (After Effects Project)27%n/an/aRIFX container; structural-only walk. Tiny sample (44 B). Shotgun N/A.sample.aep · 44 B
Ableton Live SetALS (Ableton Live Set)90%n/an/agzip-wrapped XML. Tiny sample — gzip CRC32 + zlib structure catches most bit flips. Shotgun N/A.sample.als · 82 B
Apple Media Library DatabaseApple Media DB46%n/an/atvdb/photo SQLite-derived store. Structural walk. Shotgun N/A.sample.tvdb · 253 B
GarageBand ProjectGarageBand (.band)0%n/an/aBundle (directory) format — `projectData` inside is a plist routed to plist validator. Sweep-only on the plist file. Shotgun N/A.projectData · 512 B
Erlang/Elixir BEAM BytecodeBEAM (Erlang)36%n/an/aFOR1/IFF chunk container; chunk lengths cross-validated. No CRC. Shotgun N/A.sample.beam · 736 B
Blender 3D ProjectBlender (.blend)47%n/an/aDNA-block-based binary. Structural walk; no checksum. Tiny header-only sample. Shotgun N/A.sample.blend · 104 B
BSP Map FileBSP (Quake)39%n/an/aLump-table walk; no CRC. Structural only. Shotgun N/A.sample.bsp · 1 KB
Bitwig Studio ProjectBitwig Project0%n/an/aZIP-derived but tiny sample (128 B). Sniper 0% — sample is below ZIP minimum. Shotgun N/A.sample.bwproject · 128 B
Chromium Resource PAKChromium PAK0%n/an/aResource bundle; index walk only. Tiny synthetic sample. Shotgun N/A.sample.pak · 30 B
Cubase Project49%n/an/aSteinberg binary. Structural only. Shotgun N/A.sample.cpr · 76 B
DER Certificate/KeyDER (ASN.1)7%n/an/aTLV-walked. Structural; no checksum. Shotgun N/A.sample.der · 688 B
DaVinci Resolve ProjectDRP (DR Painter)60%n/an/aGeneric binary — high sniper from header dominance. Shotgun N/A.sample.drp · 263 B
AutoCAD DrawingDWG (AutoCAD)1%n/an/aSection structure walk. Tiny sample. Shotgun N/A.sample.dwg · 1 KB
AutoCAD DXFDXF (AutoCAD)5%n/an/aPlain-text CAD; structural only. Shotgun N/A.sample.dxf · 388 B
EEx/ERB TemplateErlang Mix .eex0%n/an/aPlain-text template; structural only. Shotgun N/A.sample.eex · 378 B
ELF ExecutableELF20%n/an/aSection header walk; no whole-file checksum. Tiny synthetic 64 B sample. Shotgun N/A.minimal.elf · 64 B
Erlang TermErlang BERT0%n/an/aExternal Term Format walk. Shotgun N/A.sample.app · 281 B
Final Cut Pro XMLFCPXML (Final Cut)58%n/an/aXML-based; structural walk. Shotgun N/A.sample.fcpxml · 134 B
FL Studio ProjectFL Studio6%n/an/aProject file structural walk. Tiny sample. Shotgun N/A.sample.flp · 122 B
GLB Binary glTFGLB (glTF binary)32%n/an/aChunk-based; structural walk. JSON chunk + BIN chunk lengths cross-validated. Shotgun N/A.box.glb · 1 KB
glTF 3D SceneglTF (JSON)20%n/an/aJSON manifest; structural only. Shotgun N/A.box.gltf · 2 KB
IFF ContainerIFF (EA)46%n/an/aChunk walk; no CRC. Shotgun N/A.sample.iff · 232 B
Java Class FileJava .class21%n/an/aClassFile constant pool walk; magic + version check. Shotgun N/A.Hello.class · 397 B
KML Geographic DataKML58%n/an/aGIS XML; structural only. Shotgun N/A.sample.kml · 1 KB
KMZ Compressed KMLKMZ95%n/an/aKMZ = zipped KML; per-entry CRC32 catches almost any bit flip on the small sample. Shotgun N/A.sample.kmz · 538 B
Logic Pro X ProjectLogic Pro X71%n/an/aBundle format — sample is `ProjectData` plist alone. Shotgun N/A.sample.logicx · 249 B
Larian Studios PAKLSPK (Larian Studios)3%n/an/aPak file; structural only. Shotgun N/A.sample.lspk · 256 B
Mach-O BinaryMach-O0%n/an/aSingle-arch sample; load command walk; no checksum. Shotgun N/A.sample.o · 536 B
Wavefront OBJ 3D ModelOBJ (Wavefront)44%n/an/aPlain-text 3D; vertex/face syntax check. Shotgun N/A.sample.obj · 652 B
Quake PAK ArchivePAK (Quake)60%n/an/aHeader offset/length cross-check. Tiny synthetic sample (12 B). Shotgun N/A.sample.pak · 12 B
Windows PE ExecutablePE (Windows)3%n/an/aMZ + PE headers; optional checksum (rarely populated). Tiny sample. Shotgun N/A.sample.exe · 1 KB
PEM Certificate/KeyPEM (RFC 7468)51%n/an/aBase64 envelope; structural only. Shotgun N/A.sample.pem · 989 B
PGP Signed Message81%n/an/aHeader/footer detect + Base64 walk. Shotgun N/A.sample.asc · 370 B
Apple Property ListPlist52%n/an/aBoth XML and binary plist; structural only. Shotgun N/A.sample.plist · 830 B
PLY Polygon FilePLY (3D)51%n/an/aHeader + element count; no per-element checksum. Shotgun N/A.sample.ply · 447 B
Adobe Premiere Pro ProjectPremiere Project55%n/an/aGzip-wrapped XML. Tiny sample. Shotgun N/A.sample.prproj · 112 B
Reason ProjectReason (Propellerhead)33%n/an/aBundle binary; structural walk. Shotgun N/A.sample.reason · 96 B
Reaper ProjectRPP (Reaper)50%n/an/aPlain-text project; structural only. Shotgun N/A.sample.rpp · 44 B
Sketch Design FileSketch (.sketch)56%n/an/aZIP-based; per-entry CRC32. Shotgun N/A.sample.sketch · 631 B
SSH Signature64%n/an/aRFC 4880-like wire-format walk. Shotgun N/A.sample.sig · 294 B
STEP CAD ModelSTEP (.step)23%n/an/aISO 10303-21 plain-text CAD. Shotgun N/A.sample.stp · 711 B
STL 3D ModelSTL (3D)73%n/an/aBoth ASCII and binary stl; sniper 73% on small ASCII sample. Shotgun N/A.sample.stl · 518 B
Roxio Toast Disc ImageToast (Roxio)0%0%10%Apple Toast disc image; structural walk.sample.toast · 36 KB
Type 1 Font0%n/an/aPostScript-derived font; eexec encrypted body walk. Shotgun N/A.sample.pfa · 174 B
VMware Virtual DiskVMDK0%0%0%VMware disk descriptor + extent walk. 65 KB sample at 0%/0% — structural-only.sample.vmdk · 64 KB
Valve PAK ArchiveVPK (Valve Pak)100%n/an/aTiny synthetic 28 B sample; structural walk catches every flip (header IS the file). Shotgun N/A.sample.vpk · 28 B
WARC Web ArchiveWARC (Web Archive)48%n/an/aRecord header + content-length walk. Shotgun N/A.sample.warc · 1 KB
WebAssembly ModuleWebAssembly35%n/an/aSection LEB128 length walk; magic + version. Tiny sample. Shotgun N/A.minimal.wasm · 24 B
Windows Imaging FormatWIM (Windows Imaging)8%n/an/aXPRESS/LZX section walk; partial integrity. Shotgun N/A.sample.wim · 1 KB
Microsoft InstallerMicrosoft Installer (.msi)0%0%43%OLE2 compound file (no integrity beyond CFBF FAT structure). Built via wixl. Shotgun catches FAT/dir mismatch.sample.msi · 9 KB
Windows ESD ImageWindows ESD (.esd)1%0%0%WIM variant with LZMS compression; structural header walk (208-byte WIM header). Hand-authored.sample.esd · 16 KB
LLVM Precompiled HeaderLLVM Precompiled Header (.pch)0%0%0%Magic ("CPCH") + LLVM bitcode signature only. Bitcode contents are version-specific; structural only.sample.pch · 16 KB
LLVM Serialized DiagnosticsLLVM Serialized Diagnostics (.dia)0%0%0%Magic ("DIAG") + LLVM bitcode signature only. Same limit as .pch.sample.dia · 16 KB
PCAP Network CapturePCAP4%3%100%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.sample.pcap · 13 KB
PCAPNG Network CapturePCAPNG10%8%100%Walks every PCAPNG block's declared length and matching trailing length across every section. Unknown packet payloads remain opaque, so this is structural—not a per-packet checksum guarantee.sample.pcapng · 9 KB
G-code (3D Printer/CNC)G-code27%99%98%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.sample.gcode · 20 KB
MessagePack DataMessagePack (.msgpack)0%0%0%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.sample.msgpack · 19 KB
Gói RPMRPM Package (.rpm)3%7%30%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.sample.rpm · 22 KB