Recover Yantra training.
Zero to confident, step by step.

A hands-on course, not a manual. Each module is a lesson with numbered steps: how to acquire, connect, store, extract, review and validate, plus what to watch for and where to save.

Generated from the live product 10 modules 12 worked examples
Before you begin

Three rules that never change.

Learn these first. Every module depends on them.

Read-only on the source

The drive you are recovering is only ever read, never written to. Recover Yantra proves it, byte by byte.

Image first if in doubt

If a drive is failing or precious, copy it once to an image and work on the copy. Never stress a dying drive twice.

Save somewhere else

Recovered files always go to a different drive. Writing them back could overwrite the very data you want.

The one thing never to do

Never install software onto, or save recovery output onto, the same drive you are trying to recover. That is how good data gets overwritten for good.

The 60-second quick start

# list what is connected
recoveryantra list
# image a drive first (safest)
recoveryantra image --device \\.\PhysicalDrive2 -o disk.img
# recover from the copy, names + carving
recoveryantra recover --image disk.img -o D:\recovered --mode smart
# or just launch the guided app
recoveryantra gui
Prefer clicks?

Every command here is also a guided Easy Card in the app. Answer a few questions and it runs the same engine.

Module 1 · Recover lost or deleted filesThe everyday case: disks, SSDs, cards, USB.
What you will learn
How to recover lost or deleted files.

When to use this: The everyday case: disks, SSDs, cards, USB.

  1. 1
    Step 1Acquire the media

    Decide image-first or direct. Image first for any drive that is failing, clicking, or that you get one shot at - a byte-for-byte copy so the drive isn't stressed further (use the Imaging card / image); recover directly only from a healthy drive.

  2. 2
    Step 2Connect it read-only

    Attach the drive read-only - on a hardware write-blocker if you have one. The tool also PROVES read-only by fingerprinting the source before and after. Use a direct reader, not a hub that may drop off the bus.

  3. 3
    Step 3Choose where to save

    Save recovered files to a DIFFERENT physical drive with enough free space (the pre-flight checks this). Never the source - writing to it can overwrite the very files you're recovering.

  4. 4
    Step 4Extract the data

    Run recover in smart mode: filesystem parsing gets files with their names/folders, signature carving reconstructs the rest by content. A reused cluster chain is flagged, never handed back as wrong bytes.

  5. 5
    Step 5Review what came back

    Open the results grid - previews for image/video/audio/PDF/Office, hex for the rest. Check the flagged mismatch/unplayable files; they are honestly marked, not silently dropped.

  6. 6
    Step 6Validate the result

    In forensic mode every file gets a SHA-256 in the manifest with its source offset; verify a sample opens and its hash matches. Byte-exact is measured, not assumed.

The scan, live in the app: files recovered so far, by kind, with the last finds named.
The scan, live in the app: files recovered so far, by kind, with the last finds named.
Watch out

A deleted file on a TRIM-enabled SSD: its clusters are often already zeroed, so nothing recovers it - we say so. Best odds: stop using the drive and image it immediately.

Where to save

A separate drive from the source; sorted into type folders (recovery) or flat + hashed (forensic). The source is only ever read.

Module 2 · Image a failing or damaged driveRead a weak drive once, safely, then work the copy.
What you will learn
How to image a failing or damaged drive.

When to use this: Read a weak drive once, safely, then work the copy.

  1. 1
    Step 1Acquire the media

    This IS the acquire step for everything else: make a faithful copy first.

  2. 2
    Step 2Connect it read-only

    Source read-only; a failing drive should be imaged before any recovery attempt.

  3. 3
    Step 3Choose where to save

    The image goes to a separate drive with room for the whole source plus headroom.

  4. 4
    Step 4Extract the data

    N/A - you recover from the image afterwards.

  5. 5
    Step 5Review what came back

    Check the bad-sector map: which regions couldn't be read, and how much.

  6. 6
    Step 6Validate the result

    The tool images in passes (skip bad areas, retry gently) and keeps a map, so you know exactly what is and isn't in the copy.

The copy in flight: saved bytes, speed, and Stop - it carries on later from the same place.
The copy in flight: saved bytes, speed, and Stop - it carries on later from the same place.
Watch out

A drive dying mid-image: the pass strategy grabs the readable majority first then retries the rest, so a drive that fails partway still yields the most data possible.

Where to save

Always save recovered data to a different physical drive from the source, with enough free space. Never write onto the media you are recovering.

Module 3 · Rebuild a RAID or NASReassemble the array, then recover from it.
What you will learn
How to rebuild a RAID or NAS.

When to use this: Reassemble the array, then recover from it.

  1. 1
    Step 1Acquire the media

    Image EACH member drive individually (gently, bad-sector-mapped). Don't run the array live if a disk is failing.

  2. 2
    Step 2Connect it read-only

    Attach each member read-only; note the order if known.

  3. 3
    Step 3Choose where to save

    Rebuild to an image on a separate drive large enough for the whole array.

  4. 4
    Step 4Extract the data

    raid --auto detects the layout (level, stripe size, order, parity rotation) or you supply it, reconstructs the virtual disk, then recovers files. Linux md metadata is auto-assembled.

  5. 5
    Step 5Review what came back

    Check the reconstructed filesystem mounts / lists files sensibly - wrong parameters produce garbage, a sign to re-detect.

  6. 6
    Step 6Validate the result

    Recovered files are byte-exact; a RAID-5/6 with more failed members than its redundancy allows cannot be fully rebuilt, and we say which stripes are unrecoverable.

Watch out

An unknown-order array with a failed member and no metadata: detection narrows it, but a member beyond the redundancy is gone - flagged.

Where to save

Always save recovered data to a different physical drive from the source, with enough free space. Never write onto the media you are recovering.

Module 4 · Recover from a virtual machineOpen VMDK / VHDX / QCOW2 and pull files from inside.
What you will learn
How to recover from a virtual machine.

When to use this: Open VMDK / VHDX / QCOW2 and pull files from inside.

  1. 1
    Step 1Acquire the media

    Copy the virtual-disk file (.vmdk/.vhdx/.vdi/.qcow2/.img). For a running VM, snapshot it or power it off first - a live disk is mid-write and inconsistent.

  2. 2
    Step 2Connect it read-only

    No special connection - the disk is a file. Keep a snapshot chain's delta files together so it resolves to the current state.

  3. 3
    Step 3Choose where to save

    Save recovered files to a separate drive, never inside the VM's folder or the datastore.

  4. 4
    Step 4Extract the data

    recover --image <disk.vmdk> opens the virtual disk (VMware/Hyper-V/VirtualBox/QEMU/raw), reads its filesystem, and recovers files including deleted ones. A ransomware'd VM disk can be salvaged region by region.

  5. 5
    Step 5Review what came back

    Check the recovered filesystem lists sensibly; a thin/snapshotted disk may leave some regions unallocated.

  6. 6
    Step 6Validate the result

    Recovered files are byte-exact; the honest limit is that a running VM's disk is inconsistent - use a snapshot or powered-off copy.

Watch out

A deleted VM whose .vmdk was removed from an ESXi VMFS datastore: carve the datastore image for the descriptor + flat extents, rebuild the disk, then recover - or route a badly-damaged VMFS to a partner.

Where to save

Always save recovered data to a different physical drive from the source, with enough free space. Never write onto the media you are recovering.

Module 5 · Recover a database serverCorrupt MySQL, SQL Server, Postgres, Oracle, Mongo.
What you will learn
How to recover a database server.

When to use this: Corrupt MySQL, SQL Server, Postgres, Oracle, Mongo.

  1. 1
    Step 1Acquire the media

    Find out if the server is RUNNING first. If so, do NOT copy the live file (it's inconsistent) - stop the service and copy, or take an application-consistent snapshot (the DB's VSS writer, pg_basebackup, BACKUP DATABASE). A dead file / backup you just copy.

  2. 2
    Step 2Connect it read-only

    Work on the copy on a separate disk. A SAN/iSCSI LUN: image the LUN. A cloud-managed DB (RDS/Aurora/Snowflake): there is no disk - use the provider's point-in-time restore or an export.

  3. 3
    Step 3Choose where to save

    Save extracted rows to a NEW database, .csv or .sql on a separate drive; keep the damaged original untouched.

  4. 4
    Step 4Extract the data

    db --identify names the engine and routes it. Deep extractors (dBase/SQLite/MongoDB/Redis/ESE) pull rows directly, including deleted ones; for a corrupt file we read rows from the intact pages the engine won't open. Check BACKUPS first - a good restore beats forensic extraction.

  5. 5
    Step 5Review what came back

    Spot-check recovered rows - counts, key columns, known records. Large values (LOB/TOAST/BLOB) must be present, not truncated to a pointer.

  6. 6
    Step 6Validate the result

    'Validated or declared-lost': a row is returned only if its page checksum and structure are sound; a bad page is reported, never guessed. Confirm types decode (dates, decimals, text encoding).

The database workspace: point at the file itself; it is only ever read.
The database workspace: point at the file itself; it is only ever read.
Watch out

A live, TDE-encrypted, compressed production database needs it stopped/snapshotted AND its key AND compression handling - without the key there is no shortcut, and we say so.

Where to save

Work on a STOPPED-service or SNAPSHOT copy, never the hot file. Save extracted rows to a NEW database / .csv / .sql on a separate disk; keep the damaged original.

Module 6 · Respond to ransomwareTriage, salvage, and reach an honest verdict.
What you will learn
How to respond to ransomware.

When to use this: Triage, salvage, and reach an honest verdict.

  1. 1
    Step 1Acquire the media

    Preserve evidence FIRST - the note, a malware sample, encrypted+original pairs, a RAM image, a full disk image - before remediating. Don't delete the encrypted files (a decryptor may appear later) and DON'T pay.

  2. 2
    Step 2Connect it read-only

    Work only on forensic copies on a separate, clean drive - never the infected system.

  3. 3
    Step 3Choose where to save

    Save recovered/decrypted data to a clean separate volume; keep the encrypted originals.

  4. 4
    Step 4Extract the data

    ransomware --triage recovers files never really encrypted (renamed/fake); --recover-originals finds surviving copies (temp/backup/recycle/cloud/VSS); --verdict identifies the family, checks for a free decryptor or known weakness, hunts the key in memory, and gives one plan.

  5. 5
    Step 5Review what came back

    Check the triage counts and paired originals; confirm recovered files open.

  6. 6
    Step 6Validate the result

    Recovered files are byte-exact against a known original where you have one; the verdict states plainly when the files themselves cannot be decrypted.

Watch out

Correct hybrid crypto with unique exfiltrated keys, no backups, no VSS, SSD+TRIM: decryption is impossible for anyone - recover what other avenues got, and don't pay.

Where to save

Keep the encrypted originals (a decryptor may appear later). Save recovered/decrypted data to a CLEAN separate volume. Preserve the note, a malware sample, encrypted+original pairs, a RAM image and a disk image before remediation.

Module 7 · Open an encrypted volumeBitLocker, LUKS, FileVault, with the credential.
What you will learn
How to open an encrypted volume.

When to use this: BitLocker, LUKS, FileVault, with the credential.

  1. 1
    Step 1Acquire the media

    Image the encrypted volume as-is; you decrypt the copy.

  2. 2
    Step 2Connect it read-only

    Source read-only.

  3. 3
    Step 3Choose where to save

    Recovered plaintext files to a separate drive.

  4. 4
    Step 4Extract the data

    unlock decrypts BitLocker (password, recovery password, or key), LUKS1/2 (passphrase), or FileVault2, then you recover from the decrypted view.

  5. 5
    Step 5Review what came back

    Confirm the decrypted volume mounts and files open.

  6. 6
    Step 6Validate the result

    Decryption is verified by the volume's own checks; without the password/key there is no shortcut and none is faked.

Watch out

A volume whose password and recovery key are both lost stays encrypted - strong crypto has no back door, and we don't pretend otherwise.

Where to save

Always save recovered data to a different physical drive from the source, with enough free space. Never write onto the media you are recovering.

Module 8 · Recover cloud and sync dataLocal cache plus provider version history.
What you will learn
How to recover cloud and sync data.

When to use this: Local cache plus provider version history.

  1. 1
    Step 1Acquire the media

    Two sources: the LOCAL sync cache on the machine (recover it like any disk - image the machine), and the PROVIDER (version history / point-in-time restore, reached through the portal or API).

  2. 2
    Step 2Connect it read-only

    The local cache needs no special connection. The provider side needs the account's own credentials/permissions, which the owner supplies - we never hold them.

  3. 3
    Step 3Choose where to save

    Save recovered files to a separate drive from the sync folder; never write back into the sync folder (it may re-upload).

  4. 4
    Step 4Extract the data

    Recover the local sync cache directly. An online-only placeholder (0-byte stub) means the full copy is safe in the cloud - restore it there. Then use the provider's version history / Files-Restore / trash / object versioning for anything not cached.

  5. 5
    Step 5Review what came back

    Check the recovered cache files open; note which were placeholders (their content lives in the cloud, not locally).

  6. 6
    Step 6Validate the result

    Local-cache files are byte-exact; cloud-side restores are verified in the provider's portal. We never claim to raw-read a cloud service.

Watch out

A file that was only ever online-only and then deleted past the provider's retention window is gone - no local copy, no version to restore, and we say so plainly.

Where to save

Always save recovered data to a different physical drive from the source, with enough free space. Never write onto the media you are recovering.

Module 9 · Recover CCTV and DVR videoCarve clips from recorder disks.
What you will learn
How to recover CCTV and DVR video.

When to use this: Carve clips from recorder disks.

  1. 1
    Step 1Acquire the media

    Image the NVR/DVR disk (proprietary filesystems are common; carving works regardless).

  2. 2
    Step 2Connect it read-only

    Attach the recorder disk read-only, or use its image.

  3. 3
    Step 3Choose where to save

    Save recovered clips to a separate drive.

  4. 4
    Step 4Extract the data

    cctv carves H.264/H.265 clips, giving each its own parameter sets so it plays independently.

  5. 5
    Step 5Review what came back

    Play a sample; any clip that may not play (missing parameter sets, entropy-coded tail) is marked, not passed off as fine.

  6. 6
    Step 6Validate the result

    Clip boundaries are cut at real frame ends; the honest limit is that per-clip timestamps/channels need a vendor file-table walk we don't yet do (they show as unknown).

Watch out

A running recorder overwriting oldest-first: stop it and image immediately; footage already overwritten is gone.

Where to save

Always save recovered data to a different physical drive from the source, with enough free space. Never write onto the media you are recovering.

Module 10 · Securely wipe and verifyDestroy data to a standard, and prove it.
What you will learn
How to securely wipe and verify.

When to use this: Destroy data to a standard, and prove it.

  1. 1
    Step 1Acquire the media

    N/A - wiping consumes the target. Be certain any needed data is OFF it first.

  2. 2
    Step 2Connect it read-only

    Attach the drive to erase. The system disk, the drive the tool runs from, and the report drive are refused outright.

  3. 3
    Step 3Choose where to save

    The opposite of recovery: the destination IS the target. The certificate is saved OFF the wiped drive.

  4. 4
    Step 4Extract the data

    N/A.

  5. 5
    Step 5Review what came back

    Type the drive's own serial number back to confirm you picked the right one - a plain 'yes' is too easy to misclick.

  6. 6
    Step 6Validate the result

    After a NIST-Clear zero-write, the tool reads the drive back with its OWN recovery engine and confirms nothing remains, then issues a certificate stating the level achieved and its limits.

Erase asks for the drive and says plainly that there is no undo.
Erase asks for the drive and says plainly that there is no undo.
Watch out

An SSD's wear-levelled spare blocks can retain data a zero-write can't reach; for true destruction, use the drive's built-in secure-erase or physical destruction - stated honestly.

Where to save

The opposite of recovery: the destination IS the target. Confirm the serial; save the certificate OFF the wiped drive.

Practice

Worked examples, start to finish.

Real situations with the exact steps, what to expect, and the honest limit.

Formatted SD card of family photos

Someone reformatted a camera SD card that still held holiday photos and 4K video. Nothing has been written since.

  1. Stop using the card immediately; put it in a direct reader.
  2. Image it first: image --device <card> -o card.img (a copy so the card isn't stressed).
  3. Recover from the copy: recover --image card.img -o D:/recovered --mode smart.
  4. Review in the results grid; photos/video preview inline.
Photos and video return byte-exact by carving, even though the filesystem was wiped, because format only clears the index.
Honest limit: If the card was written to after formatting, some files are overwritten; those are reported, not faked.

LockBit ransomware on a file server

A law firm's Windows file server was encrypted overnight; files have a random extension and there's a ransom note.

  1. Do NOT pay; preserve the note, a malware sample, a RAM image and a disk image before touching anything.
  2. Work on a forensic copy: ransomware --triage <copy> to grab the files that were only renamed or fake-encrypted.
  3. ransomware --recover-originals <copy> to pair encrypted files with surviving originals (VSS, temp, backups, OneDrive cache).
  4. ransomware --verdict <copy> --memory ram.raw for the family, any known weakness, a memory key, and one honest plan.
The key-free wins and any surviving originals come back immediately; if LockBit keys were seized (Operation Cronos) or a memory key is found, more decrypts.
Honest limit: Correctly-encrypted files with unique, exfiltrated keys and no originals cannot be decrypted; the verdict says so plainly.

Failing external HDD that clicks

A photographer's USB hard drive clicks and mounts intermittently.

  1. Do not keep retrying it; that accelerates failure.
  2. Image it gently first: image --device <drive> -o disk.img (the pass strategy skips bad areas then retries them).
  3. Recover from the image: recover --image disk.img -o E:/rec.
  4. Check the bad-sector map to see what could not be read.
The readable majority is captured on the first pass and files recover from the image; the drive is spared further stress.
Honest limit: Physically damaged heads/platters need a clean-room lab; software cannot fix mechanical failure, and we say so.

RAID-5 NAS that won't mount after a disk failure

A 4-disk RAID-5 NAS lost one disk and the volume won't come up.

  1. Image each surviving member individually.
  2. raid --members d1.img d2.img d3.img --auto -o array.img to detect the layout and rebuild the virtual disk (a Linux md set auto-assembles).
  3. Recover from the rebuilt image: recover --image array.img -o out.
RAID-5 tolerates one missing member, so the array rebuilds and files recover.
Honest limit: A second failed member exceeds RAID-5's redundancy; those stripes are unrecoverable and are flagged.

MySQL won't start after a power loss

An InnoDB database won't start; the server logs a page-corruption error.

  1. Copy the data directory (stop the service first).
  2. db --identify ibdata1 / a table's .ibd confirms InnoDB.
  3. Check backups first; if none, extract rows from the intact pages of the copied .ibd (deleted/delete-marked rows included).
  4. Save recovered rows to a new database or CSV on a separate disk.
Rows from intact 16 KB pages come back; the schema comes from the SDI inside the .ibd.
Honest limit: Compressed or TDE-encrypted tablespaces need their key/handling; a row on a corrupt page is declared lost, never guessed.

Ransomware hit files synced to OneDrive

A user's Documents were ransomware'd and they also empty a folder by accident.

  1. Recover the local OneDrive sync cache directly (cloud card).
  2. Use 'Restore your OneDrive' to roll the account back up to 30 days, and per-file Version History for the rest.
  3. Check the OneDrive Recycle Bin (30-93 days).
OneDrive's versioning and 30-day rollback recover the pre-attack state; the local cache covers anything already downloaded.
Honest limit: Files only ever online-only and deleted past the retention window are gone.

A VMware VM whose guest OS won't boot

A .vmdk boots to a repair loop; you need the files inside.

  1. Copy the .vmdk (and its snapshot deltas, kept together).
  2. recover --image guest.vmdk -o out opens the virtual disk and reads its filesystem directly.
  3. Recover the needed files, including deleted ones.
Files come back without booting the guest, because we read the virtual disk's filesystem the same way as a real drive.
Honest limit: A live/running VM's disk is inconsistent - use a snapshot or powered-off copy.

Securely wipe a decommissioned laptop

IT must erase a returned laptop's drive and prove it for compliance.

  1. Attach the drive (not as the system disk).
  2. erase --target <drive> and type the drive's serial to confirm.
  3. The tool zero-writes, reads it back with its own recovery engine to confirm nothing remains, and issues a certificate.
A NIST-Clear wipe with a read-back-verified certificate stating the level achieved.
Honest limit: An SSD's spare/wear-levelled blocks can retain data a zero-write can't reach; for true destruction use secure-erase or physical destruction.

A DVR that overwrote last week's footage

A shop's DVR records in a loop and you need footage from before it was overwritten.

  1. Stop the DVR and image its disk immediately.
  2. cctv <image> -o clips carves H.264/H.265 clips with their own parameter sets so they play.
Clips still on the disk (not yet overwritten) are recovered and playable; each is marked if it may not play.
Honest limit: Footage already overwritten by the loop is gone; per-clip timestamps need a vendor file-table walk not yet built.

Ransomware locked the drive with BitLocker

A machine was ransomed not with custom crypto but by turning on BitLocker (ShrinkLocker) and hiding the key.

  1. Recover the abuse script / registry / a RAM image.
  2. The living-off-the-land engine finds the BitLocker recovery key or password the abuse left behind and validates it.
  3. Unlock with unlock and recover the files.
Because the secret is a recovery key that still exists (script, registry, AD, memory), the drive unlocks - no crypto is broken.
Honest limit: If the key was never stored anywhere recoverable, BitLocker's crypto is sound and there's no shortcut.

A partly-encrypted Word document

Ransomware encrypted only the first part of a .docx; you need the text.

  1. Run format reconstruction (White-Phoenix) on the file.
  2. It finds the intact ZIP parts (word/document.xml) and pulls the readable text.
The surviving document text is recovered from the intact parts, even though the file won't open normally.
Honest limit: Only the parts left intact are recovered; a fully-encrypted document yields nothing this way.

Deleted file on an SSD (the honest case)

A single important file was deleted yesterday on a busy internal SSD with TRIM enabled.

  1. Check the Recycle Bin, backups, VSS, and any cloud sync first.
  2. Run a scan, but set expectations by media type.
If a backup, shadow copy or cloud version exists, it recovers from there.
Honest limit: TRIM zeroes deleted SSD blocks within seconds, so direct carving of the deleted file usually finds nothing - and we say so rather than return junk.
Reference

Look it up fast.

The details behind the lessons, in one place.

What you get, and the honest limits

CapabilityWhat you getLimitsWhere to save
Signature carvingReconstructs ~130 file types by content, byte-exact, on formatted/corrupt media.Fragmented files may be partial; needs a signature for the type.A separate drive from the source.
Filesystem recoveryRecovers files WITH names/folders from NTFS/FAT/exFAT/ext/HFS+/APFS/XFS.A reused cluster chain can't be trusted - such files are flagged, not guessed.A separate drive.
RAID / imagingRebuilds RAID 0/1/5/6/10/50/60 and gently images failing drives with a bad-sector map.A missing member beyond the redundancy can't be reconstructed.An image goes to a separate drive with room for the whole source.
Ransomware recovery (Phase R)Triage the key-free wins, identify the family, recover surviving originals, salvage partial encryption, exploit documented crypto weaknesses, hunt the key in memory, and give one honest verdict.Correct AES/RSA with unique, exfiltrated keys is unbreakable - we say so plainly and recover by other means.A clean, separate drive; keep the encrypted originals.
Database recovery (Phase DB)Identify 51 engines; deep byte-exact extraction for dBase, SQLite, MongoDB/BSON, Redis, ESE; carve/route the rest.Cloud-managed and mainframe DBs are engine-export/partner jobs, not raw disk; a live server needs a snapshot, not the hot file.A separate drive; extracted rows to a NEW database/CSV; keep the damaged original.
Multilingual search (Phase D)Finds text in 40+ scripts with correct case/accent/form folding; detects and decodes encodings.Legacy code-page AUTO-detection is offered as scored options, not a false single verdict; ISCII/TSCII need an external codec.N/A - searches recovered data in place.
Phone acquisitionRead-only copy of what a connected phone exposes, plus deleted-record mining from pulled stores.A modern locked flagship's passcode is a hardware/undisclosed-exploit problem - routed to a partner, never faked.A separate drive; lawful-use acknowledged first.
Secure wipe (Phase E)NIST-Clear zero-write with a read-back-verified certificate.Software can't reach a flash drive's spare area or the standard's 'Destroy' level - the certificate says exactly what was achieved.The destination IS the target - the opposite of recovery.
Encrypted volumesBitLocker (incl. recovery password), LUKS1/2, FileVault2 unlock and decrypt.Without the password/key there is no shortcut.Recovered files to a separate drive.
Virtual machines / virtual disksRecover files from VMware/Hyper-V/VirtualBox/QEMU disks (.vmdk/.vhdx/.vdi/.qcow2/.vhd), follow snapshot chains, and read VM memory (.vmem) for the key hunt.A running VM's disk is inconsistent - use a snapshot/powered-off copy; a badly-damaged VMFS datastore may need a partner.A separate drive, not the VM folder or datastore.
Cloud recoveryRecover the local sync cache (OneDrive/Google Drive/Dropbox/Box/iCloud) and route the cloud side to the provider's version history / point-in-time restore; object stores (S3/Azure/GCS) via versioning and soft-delete.We can't raw-read a cloud service; a file that was online-only and deleted past the retention window is gone.A separate drive from the sync folder.

Where to save, by data type

FilesA separate drive from the source; sorted into type folders (recovery) or flat + hashed (forensic). The source is only ever read.
DatabaseWork on a STOPPED-service or SNAPSHOT copy, never the hot file. Save extracted rows to a NEW database / .csv / .sql on a separate disk; keep the damaged original.
MemorySave the RAM image AND any carved keys to a separate disk. Never write to the suspect machine; capture during/just after the incident.
RansomwareKeep the encrypted originals (a decryptor may appear later). Save recovered/decrypted data to a CLEAN separate volume. Preserve the note, a malware sample, encrypted+original pairs, a RAM image and a disk image before remediation.
PhoneSave the pull/image to a separate disk; acknowledge lawful use and opt methods in first; the phone is read-only.
WipeThe opposite of recovery: the destination IS the target. Confirm the serial; save the certificate OFF the wiped drive.
Raid NasRebuild to an image on a separate drive large enough for the whole array.
CctvSave recovered clips to a separate drive.
ImagingThe image file goes to a separate drive with room for the entire source (plus headroom).
Virtual MachineSave files recovered from a virtual disk to a separate drive, never inside the VM's folder or the datastore.
CloudRecover the local sync cache to a separate drive; never write back into the sync folder (it may re-upload). Cloud-side restores go to your chosen location via the provider.

Database coverage

engines: 52; by_tier: {1: 8, 2: 25, 3: 19}; by_family: {'relational': 16, 'mainframe/legacy': 10, 'document': 2, 'key-value': 4, 'wide-column': 2, 'analytics/columnar': 5, 'time-series': 3, 'graph': 1, 'search': 1, 'in-memory': 1, 'vector/AI': 2, 'object/hierarchical': 3, 'embedded/mobile': 2}

id: sqlite; name: SQLite; family: relationalid: sqlserver; name: Microsoft SQL Server; family: relationalid: mysql_innodb; name: MySQL / MariaDB (InnoDB); family: relationalid: mysql_myisam; name: MySQL MyISAM / MariaDB Aria; family: relationalid: postgresql; name: PostgreSQL (+ Greenplum/Cockroach/Yugabyte/Timescale); family: relationalid: oracle; name: Oracle Database (+ RAC/Exadata/TimesTen); family: relationalid: db2_luw; name: IBM Db2 (LUW); family: relationalid: sap_ase; name: SAP ASE / Sybase; family: relationalid: informix; name: IBM Informix; family: relationalid: teradata; name: Teradata; family: relationalid: firebird; name: Firebird / InterBase; family: relationalid: access; name: Microsoft Access (Jet/ACE); family: relationalid: ese_edb; name: Microsoft ESE / JET Blue (.edb: Exchange, AD ntds.dit, SRUM, Windows.edb); family: relationalid: sqlanywhere; name: SAP SQL Anywhere / Watcom; family: relationalid: h2_derby; name: H2 / HSQLDB / Apache Derby (Java embedded); family: relationalid: snowflake_bq; name: Snowflake / BigQuery / Redshift / Synapse (cloud); family: relationalid: db2_zos; name: IBM Db2 for z/OS; family: mainframe/legacyid: ims; name: IBM IMS (hierarchical, DL/I); family: mainframe/legacyid: vsam; name: VSAM datasets (KSDS/ESDS/RRDS); family: mainframe/legacyid: cics; name: CICS / KICKS (transaction monitor); family: mainframe/legacyid: ebcdic_dataset; name: EBCDIC / mainframe dataset (encoding-detected); family: mainframe/legacyid: codasyl; name: IDMS / Adabas / Datacom / Model 204; family: mainframe/legacyid: dbase; name: dBase / FoxPro / Clipper (xBase); family: mainframe/legacyid: btrieve; name: Btrieve / Pervasive / Actian Zen; family: mainframe/legacyid: filemaker; name: FileMaker; family: mainframe/legacyid: paradox; name: Paradox / Clarion; family: mainframe/legacyid: mongodb; name: MongoDB (WiredTiger); family: documentid: couchdb; name: CouchDB / Couchbase; family: documentid: redis; name: Redis / KeyDB / Dragonfly; family: key-valueid: cassandra; name: Cassandra / ScyllaDB; family: wide-columnid: hbase; name: HBase / Bigtable / Accumulo; family: wide-columnid: leveldb_rocksdb; name: LevelDB / RocksDB / LMDB / bbolt; family: key-valueid: berkeleydb; name: Berkeley DB; family: key-valueid: dynamo_aero; name: DynamoDB / Aerospike / Riak; family: key-valueid: parquet; name: Apache Parquet; family: analytics/columnarid: orc_avro; name: Apache ORC / Avro; family: analytics/columnarid: lakehouse; name: Delta Lake / Iceberg / Hudi; family: analytics/columnarid: clickhouse; name: ClickHouse; family: analytics/columnarid: duckdb; name: DuckDB / MonetDB / Vertica; family: analytics/columnarid: influxdb; name: InfluxDB; family: time-seriesid: prometheus; name: Prometheus / VictoriaMetrics; family: time-seriesid: graphite; name: Graphite (Whisper); family: time-seriesid: neo4j; name: Neo4j / JanusGraph / OrientDB / Dgraph; family: graphid: lucene; name: Elasticsearch / OpenSearch / Solr (Lucene); family: searchid: hana_timesten; name: SAP HANA / Oracle TimesTen / SingleStore / Ignite; family: in-memoryid: vector_backed; name: Chroma / LanceDB / Milvus / Qdrant / Weaviate / FAISS / pgvector; family: vector/AIid: hdf5; name: HDF5 / scientific & ML datasets; family: vector/AIid: cache_iris; name: InterSystems Caché / IRIS / MUMPS (GT.M); family: object/hierarchicalid: multivalue; name: Pick / UniVerse / UniData / D3; family: object/hierarchicalid: objectdb; name: db4o / Versant / ObjectDB / MarkLogic / eXist; family: object/hierarchicalid: realm; name: Realm / ObjectBox; family: embedded/mobileid: indexeddb; name: Chrome/Electron IndexedDB (LevelDB) / Core Data (SQLite); family: embedded/mobile

Techniques, and why they work

CarvingRecover by content signature, no filesystem needed.
Filesystem ParsingRecover files with their original names and folders.
Mft RecoveryRebuild NTFS file records (names + data runs) before carving.
Raid AssemblyReconstruct a striped/parity array from its members.
Shadow CopiesExtract point-in-time originals from VSS.
Usnjrnl ResurrectionList what was deleted/changed, with paths and time.
Entropy SalvageRecover the plaintext regions of a partially-encrypted file.
Family IdentificationName the ransomware from its traces; map to decryptors.
Keystream ReuseRecover data where a stream cipher's keystream was reused.
Rsa WeaknessFactor a weak modulus (close primes / shared prime) to get the key.
Key-Material SearchFind AES/RSA keys in a memory image (aeskeyfind-style).
Page-Row ExtractionPull rows from intact database pages the engine won't open.
Bson CarvingRecover MongoDB documents from a dump or a raw page.
Rdb ParsingRecover Redis keys/values from a snapshot.
Multilingual SearchFind text in any of 40+ scripts, case/accent/form-insensitive.
Living Off The LandRecover the key/password ransomware left behind when it abused BitLocker/EFS/an archive - no crypto break.
Format ReconstructionRecover a document's text from the intact Office-ZIP parts / PDF streams a partial encryption left behind (White-Phoenix).
Virtual-Disk RecoveryOpen a VMware/Hyper-V/VirtualBox/QEMU disk image and recover the files inside it, following snapshot chains.
Cloud RecoveryRecover the local sync cache and route the cloud side to the provider's version history / point-in-time restore.

Glossary

sectorThe smallest chunk a drive reads or writes at once - classically 512 bytes, 4096 on newer drives.
clusterA group of sectors the filesystem allocates as one unit.
filesystemThe index a drive uses to track files and folders (NTFS, FAT, exFAT, ext4, APFS ...).
MFTNTFS's Master File Table - the record of every file on an NTFS volume.
unallocated spaceAreas of a drive the filesystem currently counts as free - where deleted files often still sit until overwritten.
carvingRecovering files by recognising their content signatures, without any filesystem - works on formatted or damaged media.
slackThe leftover bytes between the end of a file's data and the end of its last cluster - can hold remnants of older data.
imageA byte-for-byte copy of a whole drive in a file - you recover from the copy so the original is never stressed.
shadow copy (VSS)Windows' automatic point-in-time snapshots - a common way to get an unencrypted original back after ransomware.
$UsnJrnlNTFS's change journal - lists what files changed or were deleted, and when.
entropyA measure of randomness. Encrypted (and compressed) data looks random - near the maximum of 8 bits per byte.
keystreamThe pseudo-random stream a stream cipher XORs with data. Reusing one is a fatal mistake we can exploit.
pageThe fixed-size block a database reads/writes (e.g. 8 KB in SQL Server, 16 KB in InnoDB).
WALWrite-Ahead Log / journal - a database's record of recent changes; often holds rows the main file no longer shows.
TDETransparent Data Encryption - a database encrypting its own files; you need its key to read them.
TRIMAn SSD command that erases deleted blocks quickly - which is why carving deleted files rarely works on a TRIM-enabled SSD.
BSONBinary JSON - how MongoDB stores documents.
casefoldUnicode's correct way to compare text case-insensitively across languages (better than lower()).
chain of custodyThe documented, tamper-evident record of who handled evidence and when - what keeps it admissible.
write blockingEnsuring the source is only ever read, never written - and, here, measuring it to prove it.

Command reference

listList attached storage devices.
find-driveSearch every usable attached device for a file by name, without picking a drive first - free, seconds not a scan.
recoverRecover files from a device or image.
mailOpen a mailbox - Outlook PST/OST, mbox, Maildir - including a store so damaged that Outlook itself refuses it, and write every message out as .eml.
raidAssemble and recover a RAID array.
imageGently image a failing drive.
checkCan it be recovered? Test areas across the drive and state the chances - the estimated unreadable range, read speed and what to expect back - before any copying, with a PDF report.
unlockUnlock an encrypted volume (BitLocker/LUKS/FileVault).
veracryptUnlock a VeraCrypt / TrueCrypt container with the password (recovers the cipher, master keys and geometry).
cctvRecover surveillance video from an NVR/DVR, then play, list, download, cut a range, extract several, enhance a frame or range, capture stills, or build a media report from what came back (subcommands: index, play, clips, download, custom, extract, enhance, frames, report).
remoteImage a disk on another machine over the network.
bootusbPrepare a USB that images another computer's drive.
acquireGuided drive acquisition (for the booted rescue USB).
fixvideosRepair recovered videos so they play.
fixwithRepair a damaged video or photo using a healthy file from the SAME camera or phone as a reference - rebuilds a video's missing index, or gives a photo back the tables it needs. Only the description is borrowed; every byte of picture and footage comes from your own damaged file.
timemachineList the Apple Time Machine backups on a disk and check they can really be read - a backup is mostly hard links to earlier copies, and following them is what turns a list of empty stubs into the real files.
validateRun the engine against known images and write a report.
auditShow / verify the tamper-evident audit trail.
wipeSanitise the working folder.
eraseSecurely erase a whole device (destructive).
legalShow / record the lawful-use acknowledgement.
capabilitiesThe pre-case method checklist + acquisition toolbox.
ransomwareRansomware triage / identify / recover-originals / verdict.
dbIdentify a database artifact and how to recover it; coverage matrix.
searchFast indexed keyword search (SQLite FTS5) over a recovery output folder's search index.
wizardShow the plain-English guided steps for a workflow.
detectEvery device this computer can see, usable or not, with the reason in plain words - cannot be read, needs administrator, in use, Windows cannot start it, a phone in MTP mode - plus bus, serial, sector size and health. --report writes it as HTML, PDF and JSON to send with a "not detected" question.
whichDescribe a situation in your own words and get the feature to use, why that one rather than the obvious alternative, a worked example, the commands, and what NOT to do. The question that comes before steps.
stepsThe order to do a job in, for data recovery or for forensics, with the published practice behind each stage and the command that carries it out. --commands prints a paste-ready runbook.
caseGroup several recovered sources - drives, images, phones - into one case for a single customer or job, and see everything recovered across them deduplicated by SHA-256, so the same file found on two sources is shown once (subcommands: new, add, list, status, dedup). The dedup is a view and never deletes a source's own copy.
compareDiff two scans of the SAME source - a first pass and a re-scan, or a deeper scan - and see what the second one added, what came back different, and what is unchanged, in four buckets: only in scan A, only in scan B, in both (identical bytes), and same name but different content. Matching is by exact SHA-256, so a file with the same name and different bytes is its own bucket and is never called the same file. Export the comparison as CSV or JSON. Comparing reads what the two scans already wrote, so it is free and charges no use.
batchA bench queue: image and/or recover several drives in sequence, unattended (subcommands: new, add, list, status, remove, move, start, pause, stop, resume, report). State lives on disk, so the queue survives the app closing and the machine restarting - a job left mid-flight by a crash is picked up again through the same resumable map/checkpoint a single job already has, never restarted from zero. Pre-flight is checked again immediately before each job starts, not when it was queued, and a job that cannot finish is recorded FAILED with the reason while the rest of the bench carries on - one bad drive never stalls the others. pause/stop are typed in another window while start is running elsewhere; report writes what happened across the whole batch.
guideGenerate this Bible (the living guide) as HTML or Markdown.
cloudAuthorised cloud acquisition and cloud-cache recovery. steps shows the stages an authorised collection follows. ingest takes in a provider EXPORT the organisation's own admin produced (a Purview PST, a Vault mbox) - offline, hashed, turned into .eml plus a manifest and an error report. collect acquires one mailbox the organisation owns live over the provider API, needing a token and a stated authority; scope is enforced, never assumed. caches finds local OneDrive/Dropbox/Drive sync caches on a recovered tree. Nothing runs without a stated basis, and an account a token could reach is still refused unless it is in scope.
nandreconRebuild a mountable image from a raw chip-off NAND dump - the file a lab produces by reading a bare memory chip. It works out the page and block geometry, de-scrambles the controller's XOR, applies the chip's error correction, and puts the blocks back into the order a filesystem expects, then writes an image the ordinary recovery flow can open. --analyse reports those four findings and writes nothing; run it first. Any figure the lab already knows can be supplied and is then taken as fact rather than inferred. The image reports how many pages carried more bit errors than the correction could fix, so an image that is complete but not fully verified says so instead of looking sound.
hpaMeasure and, deliberately, reveal a Host Protected Area - the region some drives hide above the size they report, where data can be put out of an ordinary tool's sight. Without --reveal it only MEASURES (read-only). With --reveal, and only after you type the drive's own serial back, it lifts the HPA volatilely, images what was hidden, and puts the HPA back - restoring it even if the run is interrupted, every step in the audit trail. A DCO is measured but never removed, because that is not reversible in a way an examiner could testify to.
distributeSpread a signature carve across a fleet of machines: each worker node searches the byte ranges it is given and returns only header positions, and every file is extracted and written on the coordinator by the ordinary carver - so the result is byte-for-byte what one machine would produce, only the search was shared. plan sizes it, node runs a worker, carve coordinates. A worker serves no data and needs its own key.
ecryptfsDecrypt a recovered eCryptfs tree - an Ubuntu encrypted home or a Synology encrypted share - turning the encrypted filenames and file bodies back into readable files with the mount passphrase. A file or name that does not unlock is reported and left encrypted, never guessed at.
guiLaunch the graphical app.

Ready to run your first recovery?

Once your partner account is approved, open Module 1 and follow the steps. You have got this.