DriverRollback
Snapshot a driver tree, then get the exact bytes back. Dry run unless you insist.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get DriverRollback
Snapshot a driver tree, then get the exact bytes back. Dry run unless you insist.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, DriverRollback is included in every plan along with the rest of the range.
Twenty snapshots, hardly any disk
Every file is hashed with SHA-256 and each unique blob is copied into the store once, named after its own hash. Snapshot a tree that barely changes twenty times and the store grows by roughly what actually changed. list shows what each snapshot added and what deduplication saved across the whole store.
Restore prints a plan and stops there
Without --apply nothing is written. Not one byte, not even the quarantine directory. You read the plan, see which files would be created, overwritten or displaced, and run it again if you agree. No config file or environment variable changes that.
Nothing is unlinked
Files the restore would overwrite, and files in the target that aren’t in the snapshot, are moved into a timestamped quarantine folder beside the target. Every restored file is written to a .part, fsynced, re-hashed against the manifest, then renamed into place. A hash that doesn’t match stops the run and goes in the ledger.
Read this part
It treats a driver store as what it is on disk, a directory of files. No SetupAPI, no registry, no signature checking, no staging into a running OS. Snapshot a staging copy, not the DriverStore of a machine you need to boot tomorrow.
Reading on the job itself
- How to back up drivers before an update Copy the driver store to somewhere off the machine before you change anything, and record a hash of every f...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working command-line build of the snapshot engine: a content-addressed store that keeps each unique file exactly once, snapshot diffing, and a restore that stays a dry run until you add --apply. Anything a restore would overwrite is moved to a timestamped quarantine first, never deleted, and every restored file is re-hashed against the manifest. It works on a driver-store directory; live Windows driver-store operations are out of scope.
Naming status
Working name only — brand verdict **CAUTION** (Medium). Collision: Driver Rollback. Use a coined product name instead.
What it draws on
Existing paid software whose best ideas shaped this program: IObit Driver Booster Pro, Driver Easy Pro, Auslogics Driver Updater, Revo Uninstaller Pro.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
driverrollback - snapshot and rollback for a driver store (Techlosoft Device Reliability Center)
USAGE
driverrollback snapshot --source <dir> [--store <dir>] [--name <label>] [--ledger <file>] [--json]
driverrollback list [--store <dir>] [--json]
driverrollback diff <snapA> <snapB> [--store <dir>] [--json]
driverrollback restore <snap> --target <dir> [--apply] [--quarantine <dir>]
[--store <dir>] [--ledger <file>] [--json]
driverrollback verify <snap> [--store <dir>] [--json]
driverrollback help | -h | --help
COMMANDS
snapshot Walk the source tree, SHA-256 every regular file, copy each unique
blob into the object store exactly once, and write a manifest.
Blobs already present are not copied again, so a second snapshot
of unchanged content adds zero bytes.
list Show every snapshot in the store with its timestamp, file count,
apparent size, and the bytes it actually added after dedup.
diff Compare two snapshots: added, removed, changed, unchanged, and the
byte delta, sorted by path.
restore Compute the minimal set of operations that turns the target tree
back into the snapshot state and print the plan. THIS IS A DRY RUN.
Nothing is written unless you pass --apply.
verify Re-hash every object the snapshot references and report any that
is missing or corrupt.
FLAGS
--source <dir> Directory tree to snapshot.
--store <dir> Object store and manifest directory. Default: .store
--target <dir> Directory tree restore operates on.
--name <label> Free-text label recorded in the snapshot manifest.
--apply Actually perform the restore. Without it, restore is a
dry run and does not touch a single byte of the target.
--quarantine <dir> Where displaced files are MOVED under --apply. Default is
a timestamped folder beside the target:
<parent>/<target>.quarantine/<UTC timestamp>/
--ledger <file> Append-only JSON-lines audit ledger written by every
mutating run. Default: <store>/ledger.jsonl
--json Machine-readable JSON output (all five subcommands).
...
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · engine.go · guided.go · main.go · main_test.go
SHA-256 checksums · build instructions & scope notes · full build plan