Skip to main content

🛡️ FSF Tools

File Sanitization Framework — the Swiss Army knife for file metadata

PyPI Python 3.10+ License: GPL-3.0

View, clean, spoof, strip, forge, hash, and audit metadata across images, audio, PDF, and Office files

Русское руководство / Russian Guide


FSF Tools Preview


✨ What Makes FSF Tools Different?

Feature FSF Tools 🛡️ ExifTool 📸 MAT2 🧹
Core Philosophy Generate plausible metadata Read/write tags Strip everything
User Knowledge Automated (presets, profiles) Requires expert knowledge None (just cleans)
Physical Correlation Yes (Exposure Triangle sync) No N/A
Identity Forging Yes (Consistent personas) No No
Forensic Audit Built-in inconsistency checks No No
Surgical Strip Yes (GPS-only, dates-only, etc.) Manual per-tag All or nothing
Trip Timeline Yes (multi-day GPS drift) No No
Hash Mutation Yes (change hash without corruption) No No
Metadata Templates Yes (save/load YAML profiles) Partial (argfiles) No

🚀 Quick Start

Install

pip install fsf-tools
# or clone for development
git clone https://github.com/Svargentyur/fsf-tools.git
cd fsf-tools
pip install -e .

📋 Commands (16 total)

🔍 View metadata

fsf view photo.jpg
fsf view --json photo.jpg

🧹 Clean (strip all metadata)

fsf clean photo.jpg
fsf clean photo.jpg -o clean.jpg

✂️ Strip (surgical removal) NEW

Remove only specific metadata categories — keep everything else intact.

fsf strip photo.jpg --gps              # GPS/location only
fsf strip photo.jpg --dates            # Date/time only
fsf strip photo.jpg --device           # Camera make/model/serial
fsf strip photo.jpg --thumbnail        # Embedded thumbnail
fsf strip photo.jpg --all              # All of the above

🎭 Spoof (set specific values)

fsf spoof photo.jpg --preset iphone_15_pro --city tokyo --sync-time
fsf spoof document.pdf --author "Jane Doe" --title "Quarterly Report"

🎲 Randomize (generate plausible fakes)

fsf randomize photo.jpg
fsf randomize photo.jpg --scene night_street --preset sony_a7iv --sync-time

🧬 Forge (consistent identity across files)

fsf forge *.jpg --locale jp --camera fuji_xt5 --city kyoto

📅 Timeline (trip simulation) NEW

Apply a realistic multi-day trip timeline with GPS drift between hotspots, time-of-day correlated exposure, and natural shooting patterns.

fsf timeline *.jpg --city tokyo --preset sony_a7iv --days 3 --sync-time
fsf timeline *.jpg --city paris --style enthusiast --days 5

🔑 Hash (compute, verify, mutate) NEW

fsf hash photo.jpg                         # Show MD5/SHA1/SHA256
fsf hash photo.jpg -a sha512               # Specific algorithm
fsf hash photo.jpg --mutate                # Change hash without corrupting file
fsf hash photo.jpg --verify <expected>     # Verify against known hash

📋 Template (save/load metadata profiles) NEW

fsf template save photo.jpg my_preset -d "Tokyo night preset"
fsf template list
fsf template apply my_preset target.jpg
fsf template delete my_preset

🕵️ Audit (forensic consistency check)

fsf audit photo.jpg

🛠️ Other Commands

  • fsf clone — Clone metadata from one file to another
  • fsf compare — Compare metadata of two files side by side
  • fsf batch — Batch process all supported files in a directory
  • fsf report — Analyze a file for privacy risks (risk score 0–100)
  • fsf export — Export file metadata to a JSON file
  • fsf presets — List available camera presets and cities

🎯 Realism Features

  • 📸 Exposure Triangle: ISO, shutter speed, and aperture are physically correlated
  • 🌇 Scene Profiles: 6 profiles (daylight, golden hour, indoor, night, portrait, landscape)
  • 📷 18 Camera Presets: With real firmware strings, lens models, and resolutions
  • 🌍 20 Cities: With 80+ tourist hotspot GPS coordinates
  • 👤 Identity Forge: Generate consistent personas with names in 6 locales
  • 🔍 Forensic Audit: 10 checks for EXIF inconsistencies
  • ⏱️ Timestamp Sync: Match file system mtime/atime to EXIF dates
  • 📅 Trip Timeline: Multi-day GPS drift with time-of-day scene correlation
  • ✂️ Surgical Strip: Remove GPS/dates/device/thumbnail independently
  • 🔑 Hash Mutation: Change file hash without affecting visual content
  • 📋 YAML Templates: Save and reuse metadata profiles

📁 Supported Formats

Format View Clean Spoof Strip Clone
JPEG / PNG / TIFF / WebP ✅ ✅ ✅ ✅ ✅
MP3 / FLAC / OGG / M4A ✅ ✅ ✅ — ✅
PDF ✅ ✅ ✅ — ✅
DOCX / XLSX / PPTX ✅ ✅ ✅ — ✅

🔧 Development

git clone https://github.com/Svargentyur/fsf-tools.git
cd fsf-tools
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest  # 27 tests

📝 License

Released under the GNU General Public License v3.0 (GPL-3.0).

Metadata

Release files for fsf-tools 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fsf-tools 3.0.0
File Size Uploaded
fsf_tools-3.0.0.tar.gz 673.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fsf-tools 3.0.0
File Interpreter ABI Platform
fsf_tools-3.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 743.8 kB

Release files / fsf_tools-3.0.0.tar.gz

Download URL fsf_tools-3.0.0.tar.gz
Size 673.0 kB
Tags Source
SHA-256 checksum
How to use checksums
bc88a860c30bb36d9628785629062ec03efe87735a94e721e38578d6d9d5ed83
BLAKE2b-256 checksum
How to use checksums
f4aaebf55d1aeb72f3f0c6acb1601d518cdc70e9d73c737e67c2a81a6b3239cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / fsf_tools-3.0.0-py3-none-any.whl

Download URL fsf_tools-3.0.0-py3-none-any.whl
Size 70.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bee93b12d5e85f43c4e4fee2dd6227549a47f11fff86475c936f53939036af44
BLAKE2b-256 checksum
How to use checksums
777a62a6e599772dcddc5ce48b04feb272194debe5db040ca659e05a74f3bc88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page