All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- AI Signature False Positives: Fixed bug where AI generator signatures (e.g. "flux") were incorrectly detected in binary metadata blobs like Photoshop ImageSourceData. Now only scans text-based metadata fields with >90% printable characters.
- British English in Assembly: Corrected US English spellings in assembly file comments (optimised, normalised, initialised).
- Authenticity Burden Mode: New
--authenticity-modeflag inverts the epistemic framing from "prove it's fake" to "prove it's authentic". Useful for supply chain verification and legal chain of custody.- New assessment states:
VERIFIED_AUTHENTIC,LIKELY_AUTHENTIC,UNVERIFIED,INSUFFICIENT_DATA,AUTHENTICITY_COMPROMISED - Tracks verification chain (positive provenance evidence) and provenance gaps (missing verification)
- Confidence scoring based on weighted verification dimensions (C2PA, PRNU, metadata, quantisation)
- New assessment states:
- Authenticity Section in PDF Reports: Court-ready reports now include authenticity assessment when running in authenticity mode.
- Lip-Sync Analysis: Deterministic audio-visual synchronisation detection for deepfake identification.
- Q15 fixed-point FFT for bit-exact reproducibility across platforms
- Formant extraction using LPC analysis
- Phoneme-to-viseme correlation mapping
- Temporal offset detection with configurable thresholds
- Correlation Warnings: Cross-dimensional analysis that identifies when findings from different forensic dimensions corroborate or contradict each other.
- Warns when metadata claims authenticity but visual analysis shows manipulation
- Highlights corroborating evidence across dimensions
- Voice/Audio Analysis: Enhanced audio forensics with spectral discontinuity detection and ENF (Electric Network Frequency) analysis.
- Native DLL now optional in PyInstaller builds for cross-platform compatibility.
- Video dimension properly included in
WuAnalysis.dimensionsandto_dict()output.
- Native Video Forensics: Integrated H.264/MJPEG bitstream analysis for container anomalies and codec-level splicing markers.
- Cross-Modal Analysis: Correlates findings between audio and video streams to identify temporal inconsistencies.
- Standalone CLI Executable: Windows users can now download
wu.exewithout requiring Python installation. - GitHub Actions Release Workflow: Automated PyPI publishing and executable builds.
- Unified version management to
pyproject.toml. - Reduced false positive rates across analysers:
- Metadata: Stripped metadata no longer flagged as suspicious (93% → 0% FPR)
- Lighting: Conservative thresholds for court admissibility (48% → 4% FPR)
- Copy-move: Stricter DCT similarity thresholds (36% → 7% FPR on CASIA)
- Native SIMD Acceleration: Zane's initial release of x86-64 AVX2 optimised computational kernels for core forensic algorithms.
copymove.asm: optimised block matching for copy-move detection (~20x speedup).prnu.asm: optimised PCE (Peak-to-Correlation Energy) calculation (~7x speedup).blockgrid.asm: optimised JPEG grid inconsistency detection (~8x speedup).lighting.asm: optimised light source direction estimation (~6.5x speedup).
- Win64 ABI Compliance: full support for Windows 64-bit calling conventions, including shadow space handling and 16-byte stack alignment.
- NumPy-Aware JSON Serialization: custom
WuJSONEncoderinstate.pyto handle NumPy types during analysis export.
- CLI Robustness:
- Forced UTF-8 encoding for stdout on Windows to prevent locale-specific JSON corruption.
- Silenced
Pillowdeprecation warnings by migrating togetexif(). - Removed internal debug prints that interfered with structural tool output.
- E2E Testing: standardised
PYTHONPATHhandling in CLI tests for better environment isolation.
- Fatal crash in
copymoveassembly due to incorrect stack pointer alignment on Windows, resolved by Zane. - Buffer overflow risk in C-to-Assembly wrappers by enforcing strict size checks.
- JSON output corruption in CLI when running with parallelism enabled.
- Minor bug fixes in metadata extraction.
- Improved error handling for corrupt JPEG headers.