🛡️ FSF Tools
File Sanitization Framework — the Swiss Army knife for file metadata
View, clean, spoof, forge, and audit metadata across images, audio, PDF, and Office files
Русское руководство / Russian Guide
✨ 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 |
🚀 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
🔍 View metadata
Extract and view metadata in human-readable or JSON format.
fsf view photo.jpg
fsf view --json photo.jpg
🧹 Clean (strip all metadata)
Remove all identifying metadata from a file to protect your privacy.
fsf clean photo.jpg
fsf clean photo.jpg -o clean.jpg
🎭 Spoof (set specific values)
Inject realistic metadata based on presets and specific inputs.
fsf spoof photo.jpg --preset iphone_15_pro --city tokyo
fsf spoof document.pdf --author "Jane Doe" --title "Quarterly Report"
🎲 Randomize (generate plausible fakes)
Automatically generate highly realistic, statistically plausible metadata.
fsf randomize photo.jpg
fsf randomize photo.jpg --scene night_street --preset sony_a7iv --sync-time
🧬 Forge (consistent identity across files)
Apply a unified, generated persona (camera, location, author) across multiple files.
fsf forge *.jpg --locale jp --camera fuji_xt5 --city kyoto
🕵️ Audit (check for forensic inconsistencies)
Verify that your spoofed files don't contain tell-tale signs of tampering.
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 in metadata.fsf export— Export file metadata to a JSON file.fsf presets— List available presets for spoofing.
🎯 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: Check your fakes for consistency before deployment
- ⏱️ Timestamp Sync: Match file system timestamps to EXIF dates
📁 Supported Formats
| Format | View | Clean | Spoof | Clone |
|---|---|---|---|---|
| JPEG / PNG / TIFF / WebP | ✅ | ✅ | ✅ | ✅ |
| MP3 / FLAC / OGG / M4A | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | |
| DOCX / XLSX / PPTX | ✅ | ✅ | ✅ | ✅ |
🔧 Development
git clone https://github.com/fsf-tools/fsf-tools.git
cd fsf-tools
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest
📝 License
Released under the GNU General Public License v3.0 (GPL-3.0).
Metadata
Release files for fsf-tools 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fsf_tools-2.0.1.tar.gz | 653.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fsf_tools-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 703.5 kB
Release files / fsf_tools-2.0.1.tar.gz
| Download URL | fsf_tools-2.0.1.tar.gz |
|---|---|
| Size | 653.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4deddf739c551792cfa91639e7f21bc97ddd9494f9d6350c172fbc9b01584d0
|
|
BLAKE2b-256 checksum How to use checksums |
38932c5af56e29708d7ab6b22bbc64bbde397bcf6a449c69d36ce2b8d341f524
|
| 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-2.0.1-py3-none-any.whl
| Download URL | fsf_tools-2.0.1-py3-none-any.whl |
|---|---|
| Size | 49.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
88d124ee1a3b55b70f932656e0285e65d90591f14f65715adf34e62f2d861495
|
|
BLAKE2b-256 checksum How to use checksums |
8232bb008c8c5c666d9c15cfbb571e674b852a0fe4fc9f4a57382f6928d354c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|