ShellBags Deleted Folders: Proving a Folder Existed
Use ShellBags to show a deleted or renamed folder existed: read its path, embedded times and MFT entry and sequence, then confirm with the $MFT and USN.
TL;DR. ShellBags keep entries after the folder is deleted, so the full path, name and embedded times of a vanished folder survive in the user's hive. On NTFS, the shell item also holds the folder's MFT entry and sequence number. Look that entry up in the current $MFT: same sequence and same name means the folder (or its record) is still there; a higher sequence means it was deleted and the record reused; an unallocated record with the same sequence means deleted, not yet reused. Then take the file reference to the USN journal to date the deletion.
"The folder never existed" and "I deleted it months ago" are claims ShellBags are well placed to test. This article is the procedure I use, with its limits.
Why the entry survives
Explorer does not clean BagMRU entries when a folder is deleted. The key describes a place the user navigated to, not a live object. Practitioners have relied on this since the early ShellBags research, for example Chad Tilbury's SANS post on reconstructing long-gone removable devices. What removes entries: Windows' own limit on remembered folders, profile resets, and cleaning tools (see limitations and anti-forensics).
The surviving entry gives you:
| Field | Source | Use |
|---|---|---|
| Full path | Joined from the BagMRU tree | Where the folder was, even if parents are gone too |
| Long name and 8.3 name | File entry item + 0xBEEF0004 block | Exact name, including characters lost in some listings |
| Created / modified / accessed | Embedded FAT times | When the folder was created, as the file system saw it |
| MFT entry + sequence | Extension block version 7+ | Ties the entry to one specific NTFS record |
| Key LastWrite, MRU position | Registry | When the user was last in or around it |
Step 1: find candidate entries
List everything in the user's ShellBags, then compare against the current file system. With the ShellBags Parser, export CSV and diff the paths against a file listing from the image (or against an $MFT parse). Folders in the ShellBags but not on disk are your candidates.
Two things to set aside early:
- Removable and network paths. A missing
E:\exfilis not deleted; the drive is just not here. Check it against the device or server if you can get it. - Archive paths. Items below a
.zipnever existed on disk as folders. See ShellBags and ZIP files.
Step 2: read the MFT reference
For each local NTFS candidate, note the MFT entry and sequence from the details panel (the search box also filters by MFT entry number). The format is Microsoft's MFT_SEGMENT_REFERENCE: a 48-bit entry number and a 16-bit sequence number, which Microsoft describes as a circularly reused tag. libyal's NTFS documentation notes that the sequence number is incremented each time the record is freed.
Without an MFT reference (XP-era items with extension version 3, FAT/exFAT volumes, network items), skip to step 4.
Step 3: compare with the current $MFT
Parse the $MFT of the same volume and look up the entry:
| Current $MFT record | Interpretation |
|---|---|
| In use, same sequence, same name and parent | The folder still exists (maybe you missed it). Check for a rename if the name differs. |
| In use, same sequence, different name | Renamed (or moved within the volume): same record, new name. |
| Not in use, same sequence | Folder deleted, record not reused yet. Its attributes, and possibly its index entries, may still be readable. |
| Sequence higher than in the ShellBag | Original folder deleted; the record now belongs to something else. |
| Sequence lower than in the ShellBag | Wrong volume, or a different image of the volume. Recheck. |
That comparison turns "a ShellBag names this folder" into "this specific folder record existed and was deleted", which is much harder to dispute.
A rename is worth a note of its own. If two ShellBag entries in the same parent share an MFT entry and sequence but have different names, the folder was very likely renamed between the two visits. The older name is the one in the entry with the older key time.
Step 4: date the deletion
The ShellBag cannot tell you when the folder was deleted. Other artifacts can:
- USN journal. Filter
$UsnJrnl:$Jon the folder's file reference number (entry + sequence). AFILE_DELETEreason gives the time; aRENAME_OLD_NAME/RENAME_NEW_NAMEpair gives renames. The USN parser does this in the browser. - Recycle Bin. A folder sent to the Recycle Bin becomes
$R...with a matching$I...file holding the original path and deletion time. The Recycle Bin parser reads$Ifiles. - Volume Shadow Copies. An older snapshot may still contain the folder and its contents.
- LNK files and Jump Lists. Files opened from the folder before it was deleted may be referenced by LNK files and Jump Lists, with their own MFT references.
Step 5: bound the timeline
Combine the pieces:
- Embedded created time: the folder existed from at least this point.
- ShellBag key times (MRU-derived where possible): the user was there around this time. See ShellBags timestamps explained.
- USN / Recycle Bin: the folder was deleted at this time.
A hypothetical write-up (invented values): "A folder named staging existed at C:\Users\Public\staging (MFT entry 104233, sequence 3), created on [date]. The account browsed it, last around [time]. The record was freed and reused (current sequence 4). The USN journal records its deletion at [time]." Each clause has a single source you can show.
Limits
- No MFT reference, no record check. XP-era items, FAT/exFAT volumes, and some item types lack a usable reference.
- The entry may be older than you think. A ShellBag created years ago in a migrated profile can refer to a folder on a disk that no longer exists.
- Cleaning tools target this exact use. Tools that remove "traces of deleted folders" delete ShellBags whose folders are gone. An absence proves nothing.
- Deleted keys are not recovered by every tool. Entries removed from the hive may still sit in unallocated cells; Registry Explorer can show deleted keys. The ShellBags Parser does not recover them yet.
FAQ
Do ShellBags keep entries for deleted folders?
Yes. Deleting a folder does not remove its BagMRU entry. The entry stays until Windows prunes it or a cleaning tool deletes it, with the folder's path, embedded times and, on NTFS, its MFT entry and sequence number.
How do I know if the folder's MFT record was reused?
Compare the sequence number in the ShellBag with the current $MFT record for the same entry. NTFS increments the sequence number when a record is freed, so a higher current value means the original folder is gone and the record was recycled.