Targeted file-type search inside .img disk images with a graphical interface.
Main script: deep-search-gui.py
- Added optional forensic scan for deleted files.
- Added optional automatic recovery of deleted files to an external folder.
- Added manual forensic recovery for selected files directly from scan results.
- Added recovery tracking in CSV export (
Deleted,Recovered,Recovery Path,Recovery Source). - Added SHA-256 hashing for found files and recovered files.
- Python 3.9+
- Tkinter (usually included with Python)
pytsk3
Install dependencies:
pip install -r requirements.txtpython3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install pytsk3On Windows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install pytsk3On Windows (Command Prompt):
python -m venv .venv
.venv\Scripts\activate.bat
python -m pip install --upgrade pip
pip install pytsk3Install all project dependencies in the same venv:
pip install -r requirements.txtpython3 deep-search-gui.pyLinux/macOS:
source .venv/bin/activate
python deep-search-gui.pyWindows (PowerShell):
.\.venv\Scripts\Activate.ps1
python deep-search-gui.pyWindows (Command Prompt):
.venv\Scripts\activate.bat
python deep-search-gui.pyThis project includes deep-search.desktop.
The launcher icon is assets/deep-search-icon.svg.
Install it in the user applications menu:
chmod +x deep-search.desktop
cp deep-search.desktop ~/.local/share/applications/
update-desktop-database ~/.local/share/applications/ 2>/dev/null || trueAdd it to the desktop as well:
cp deep-search.desktop ~/Desktop/
chmod +x ~/Desktop/deep-search.desktop- Select
.imgdisk image files - Filter by type (Documents, Images, Audio, Video, Archives, Executables, Code, All)
- Add custom extensions (for example:
log,csv,bak) - Scan partitions and internal filesystems
- Optional forensic deleted-file scan (
Include deleted files) - Optional automatic recovery of deleted files during scan (
Recover deleted files) - Manual recovery of selected files from the results table (
Recover selected) - External recovery folder selection for forensic output storage
- Stop an active scan at any time (
Stop scanbutton) - Live status counter during scanning (
Found: N files, recovered: M) - Sequential numbering of found files (
#column) - Result table includes deleted state and recovery path (
Deleted,Recovery path) - Export results to CSV with forensic fields and timestamped filename
- Open the last exported CSV quickly (Linux:
xdg-open)
- Select a disk image.
- Choose file type filters and optional extra extensions.
- Enable
Include deleted files (forensic scan)when you want deleted entries. - Enable
Recover deleted filesand choose an externalRecovery folderfor automatic deleted-file recovery. - Start the scan.
- Optionally select one or more rows in the results table and click
Recover selectedfor manual forensic recovery (allocated or deleted entries, when inode metadata is available).
Recovery is always performed by reading from the image through pytsk3 metadata access, without mounting partitions.
The exported CSV now includes:
FilenameFile PathDeleted(Yes/No)Recovered(Yes/No)Recovery PathRecovery Source(deleted_auto_scanorselected_manual)Found SHA-256Recovered SHA-256
- Main interface and image-file selection.
- Search setup with type filters and custom extensions.
- Scan results view with found files and CSV export.
The script reads filesystems directly from the disk image without mounting it. If some partitions are unsupported or damaged, they are skipped and the scan continues on the others.
For deleted files and manual recovery operations, extraction is best-effort. Some files may be partially recoverable or unrecoverable if data blocks are fragmented, overwritten, or not fully addressable from filesystem metadata.
This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3).
Copyright (C) 2026 Alessandro Orlando
See the LICENSE file for details.


