This repository contains the legacy version of PUDIS (Portable‑USB‑Drive‑Integrity‑Suite).
It is no longer under active development.
A newer, faster, and significantly improved version of the software is now available here:
👉 PUDIS‑2.0 (Current Version): https://github.com/sussjb99/PUDIS-2.0
If you are a new user, or if you want the most stable and feature‑complete version of the toolkit,
please use PUDIS‑2.0 instead of this legacy release.
PUDIS (Portable‑USB‑Drive‑Integrity‑Suite) is a maintenance and monitoring toolkit designed to keep external storage devices healthy over long periods of time. It performs two major categories of checks:
- File Integrity (Bit‑Rot Detection)
- Surface Analysis (Performance & Stability Scans)
The suite works with USB flash drives, portable HDDs/SSDs, and other removable storage devices. It never modifies files unless you explicitly choose to run a recovery procedure.
This software is designed to be small in size and should be installed and run directly from external storage devices.
This software was written in C++, PowerShell, and the Batch scripting language.
Because PUDIS performs low-level hardware analysis and direct volume access to verify USB integrity, some antivirus scanners may flag the executable as suspicious.
To ensure your safety and maintain full transparency:
- Verified Hashes: Every binary and script in this suite is documented in the manifest.md file with its corresponding SHA‑256 hash.
- Self‑Signed: As this is an independent project currently in the funding phase, files are self‑signed. You can manually verify the integrity of any file using the hashes provided in the manifest.
- Safety First: The software is hard‑coded to identify and target only removable drives. It will never perform a stress test on your system drive (C:).
PUDIS is an independent, open‑source project built to help people keep their data safe.
If this tool has helped you detect issues, avoid data loss, or simply feel more confident about your drives, you can support ongoing development here:
Every contribution helps fund testing hardware, new features, and the procurement of a professional code‑signing certificate to reduce antivirus false positives.
Displays detailed information about the currently mounted drive:
- Device model
- Hardware serial number
- Drive letter
- Filesystem type (FAT32, exFAT, NTFS, etc.)
- Storage technology (Flash, HDD, SSD, SD)
- SMART health (if supported)
Validates whether the drive’s reported capacity matches its actual usable capacity. This helps detect counterfeit or defective flash drives that silently discard data once their true limit is exceeded.
During a Full Surface Scan, the suite writes controlled test files across free space and reads them back to verify:
- All regions of the drive are real and readable
- No hidden capacity limits
- No controller failures
- No unstable regions under load
The suite maintains a cryptographic baseline of all files, including:
- File paths
- File sizes
- Timestamps
- Hash values
It detects:
- New, deleted, or modified files
- Corrupted files (bit rot): Files whose hash value has changed even though the timestamp remains identical
If PAR2 recovery data exists, the suite can automatically repair corrupted files. Recovered files are written back safely, and corrupted originals are preserved with a .1 suffix.
- Scan for Bit Rot: Compares all files against the stored baseline.
- Update File Baseline: Creates or updates the integrity baseline.
- Re‑Generate Recovery Data: Creates or updates PAR2 recovery files.
- Quick Surface Scan: Fast stability and performance sampling.
- Full Surface Scan: Sequential read/write validation across all free space.
- New installations: Update File Baseline → Re‑Generate Recovery Data
- Before retrieving data: Run Scan for Bit Rot
- Routine health checks: Quick Surface Scan monthly; Full Surface Scan every 6 months
- Whenever drive contents change: Update File Baseline + Re‑Generate Recovery Data
To build from source:
- Clone this repository.
- Ensure you have a C++ compiler and the PowerShell Core environment set up.
- Review the scripts in
Integrity_Check/scripts/to understand the execution flow. - Review
manifest.mdto ensure your compiled binaries match the expected project structure.
Contributions are welcome. By submitting code, you agree that your contributions will be licensed under the MIT License. See CONTRIBUTING.md for details.
The software is provided “AS IS”, without warranty of any kind. You assume all risks associated with using the software. See the LICENSE and AUA for full details.
For questions, suggestions, or feedback, please open an issue on GitHub.