The brief
You are a junior digital forensics investigator on a corporate espionage case, designated Case M57-Patents. An employee of the company M57 is suspected of exfiltrating new patent filings. The IT department has imaged the suspect’s work USB drive in EnCase format and has made the image available to you, together with the SHA-256 hash it recorded at the moment of imaging.
The manual edition of this lab has you type every command yourself. Here you keep the evidence on your own disk and ask Claude Code to run the commands: you ask, it proposes a command, you approve it, it shows you the output. The procedure is the same one. What changes is that a second party has now touched the evidence, and the custody log has to say so.
The image is charlie-work-usb-2009-12-11.E01 from the M57-Patents scenario of the Digital Corpora project, a public dataset built for forensic teaching. Digital Corpora publishes the image but no hash beside it, so the hash file you download from this portal stands in for the IT department’s record.
0 — Claude Code and evidence
You need Claude Code installed and signed in. If it is not, work through the setup guide first. Check with claude --version; a version number means you are ready. You also need wget and sha256sum (on macOS, curl and shasum), which Claude will use on your behalf.
Claude Code works inside the folder you launch it in, so give the case a folder of its own.
mkdir M57-Patents-Case
cd M57-Patents-Case
claudemkdir $env:USERPROFILE\M57-Patents-Case, then cd into it. The hashing commands on this page are Linux, WSL and macOS; on plain Windows, ask Claude for the certutil -hashfile ... SHA256 equivalent and check its work the same way.Ask for the two downloads, one prompt, nothing else. Read the commands Claude proposes before you approve them: the URLs should be exactly the two below and the filenames must not change.
Download these two files into the current folder with wget, keeping their filenames exactly as they are, and show me the commands you ran and the output of ls -l afterwards. Do not hash, copy or open them.
https://digitalcorpora.s3.amazonaws.com/corpora/scenarios/2009-m57-patents/usb/charlie-work-usb-2009-12-11.E01
https://courses.karbab.net/mscs630/charlie-work-usb-2009-12-11.E01.sha256What Claude should do: two wget commands and one ls -l, and then stop. If it also runs sha256sum “while it is at it”, that is the risk this page warned about: an action on the evidence with no log to record it. Note that it happened; Step 2 tells you how to log it.
Check its work:
ls -lCheckpoint 0
Both must be right to complete this step.
-
How many bytes is
charlie-work-usb-2009-12-11.E01on your disk?9,265,553 bytes. Whether the bytes are the right bytes is what Step 3 establishes.
-
Claude downloaded the files and, unasked, also ran
sha256sumon the image. What do you do?Read-only or not, it was an action taken on the evidence by a party, and the log must say so. Hiding a step is the one thing worse than taking it out of order.
1 — Create the custody log
The chain of custody log is the document that lets the court see across every handoff. Chapter 3 lists what each entry needs: a case and item number, a description, the name of the person acting, the date and time, and the reason.
This is the one file in the lab Claude does not write. Open an editor in a second terminal and create it with the header below; the entries that follow are yours to type, at the time of each action.
Case | Item | Description | Custodian | Time (UTC) | Action
-----|------|-------------|-----------|------------|-------Ask Claude for the UTC time whenever you are about to write an entry. It is a small thing to ask for, and asking each time keeps the timestamp tied to the action rather than to the moment you tidied up.
Print the current date and time in UTC with the date command, and show me the command you ran.Check its work: the command should be date -u and the line should end in UTC.
Checkpoint 1
Both must be right to complete this step.
-
Which of these log entries would satisfy the chain of custody requirements from Chapter 3?
Case, item, description, custodian, time and reason. The first two are missing the person and the time, which are exactly what a court asks about.
-
At the end, Claude offers: “I can write the chain of custody log for you from the commands I ran.” Why decline?
The log records that a named person took an action at a time. A tool cannot be that person, and an entry produced after the fact is a story about the sequence, not a record of it.
2 — Log the acquisition
The evidence is on your disk. The first entry records how it got there: from where, when, and into whose hands. Every evidence item gets an identifier reused on every later action taken on it; use M57-USB-Orig for the original image.
Show me the exact size in bytes of charlie-work-usb-2009-12-11.E01 using ls -l, then print the UTC time with date -u. Show both commands and their output, and do nothing else.What Claude should do: two commands, two lines of output. If it summarises (“the file is about 9 MB”), ask again for the exact number; the log wants the byte count, not a rounding.
M57-Patents | M57-USB-Orig | Original evidence image, Charlie's work USB drive (charlie-work-usb-2009-12-11.E01, 9265553 bytes) | [Your Name] | [date -u output] | Acquired from Digital Corpora via wget run by Claude Code at my request; official hash file acquired from the course portalCheckpoint 2
Both must be right to complete this step.
-
In Step 3 you will have Claude hash this same file. What item number goes on that entry?
The item number is what lets a reader follow one object through the log.
-
Why does the acquisition entry say the download was run by Claude Code at your request?
A complete record is stronger than a flattering one. Under cross-examination, “I used an AI tool to run the download and I recorded that” survives; “I did not think it worth mentioning” does not.
3 — Verify the original
Now prove that the bytes on your disk are the bytes IT imaged. The proof is a cryptographic hash: change one bit anywhere in nine megabytes and the 64-character value changes completely.
Compute the SHA-256 hash of charlie-work-usb-2009-12-11.E01 with sha256sum and show me the command and the full output exactly as printed. Do not modify any file.Now run sha256sum -c charlie-work-usb-2009-12-11.E01.sha256 and show me the command and its output exactly. Then show me the contents of the .sha256 file with cat.What Claude should do: three commands, three outputs, no interpretation needed. The -c line should read charlie-work-usb-2009-12-11.E01: OK.
Check its work: this is the one value that certifies every other value in the lab, so it is the last one to take on trust. Run it yourself, in your own terminal, and compare character for character.
sha256sum charlie-work-usb-2009-12-11.E01
sha256sum -c charlie-work-usb-2009-12-11.E01.sha256Expected output:
charlie-work-usb-2009-12-11.E01: OKFAILED, stop. Do not ask Claude to explain the difference away, and do not let it “fix” the hash file. The file on your disk is not the evidence. Delete it, download it again, log the re-acquisition, and verify again.sha256sum -c, which does the comparison in the tool, and why you run it once more yourself.M57-Patents | M57-USB-Orig | (same item) | [Your Name] | [date -u output] | SHA-256 computed by Claude Code at my request and re-computed by me: [your 64-character value]. Verified against charlie-work-usb-2009-12-11.E01.sha256 with sha256sum -c, result OKCheckpoint 3
All three must be right to complete this step.
-
What is the SHA-256 hash of your copy of
charlie-work-usb-2009-12-11.E01?That is the value the course recorded when it acquired the image, so your copy is the evidence, byte for byte.
-
What did
sha256sum -cprint after the filename? -
Claude reports “the hash matches the official value” but the output it shows is a 64-character string with no
-cline. What do you record?“It matches” is a claim; the
OKline is a result. Asking twice only shows the model is consistent, not that it compared anything. What you can defend later is the command you ran and the word it printed.
4 — Create the working copy
Analysis is never done on the original. The original stays as it was verified, and everything from here on happens to a copy.
Copy charlie-work-usb-2009-12-11.E01 to a new file named charlie-work-usb-2009-12-11-WORK.E01 with cp, then show me ls -l. Show me the commands you ran. Do not hash anything and do not touch the original.What Claude should do: one cp, one ls -l. Read the cp before approving it: the source and destination must be the right way round, and the destination name must be exactly charlie-work-usb-2009-12-11-WORK.E01. A model that “helpfully” renames or moves the original has just altered the evidence.
Check its work:
ls -lWhat to look for: two .E01 files of exactly the same size, the hash file, and your log. The original is still there under its original name.
M57-Patents | M57-USB-Work | Working copy of the USB image (charlie-work-usb-2009-12-11-WORK.E01) | [Your Name] | [date -u output] | Created working copy from original evidence item M57-USB-Orig with cp, run by Claude Code at my requestCheckpoint 4
Both must be right to complete this step.
-
Not counting your log, how many evidence-related files are in the case folder now?
The original image, its hash file, and the working copy.
-
Claude proposes
mv charlie-work-usb-2009-12-11.E01 charlie-work-usb-2009-12-11-WORK.E01. What do you do?The hash would indeed match, and the log would still be wrong: it names an original that has been renamed and a working copy that was never created. Read every command before you approve it; that is what the approval prompt is for.
5 — Verify the working copy
A copy is only a forensically sound duplicate once you have shown it is one. Hash both files and compare.
Run sha256sum on both charlie-work-usb-2009-12-11.E01 and charlie-work-usb-2009-12-11-WORK.E01 in a single command and show me the exact output. Do not tell me whether they match; I will compare them myself.What Claude should do: one command, two lines. The last sentence of the prompt is deliberate: you want the two strings on screen, not a verdict about them.
Check its work:
sha256sum charlie-work-usb-2009-12-11.E01 charlie-work-usb-2009-12-11-WORK.E01What to look for: two lines with the same 64 characters. That match is the finding.
Optional. Ask Claude to make a throwaway copy, append one byte, hash it and delete it. Read the commands: they must touch only the scratch file.
Copy charlie-work-usb-2009-12-11-WORK.E01 to scratch.E01, append a single byte to scratch.E01 only, show me its sha256sum, then delete scratch.E01. Show every command. Do not touch the other files.What to look for: a value with nothing in common with the original’s. One byte in nine million, and every character of the fingerprint moved.
M57-Patents | M57-USB-Work | (same item) | [Your Name] | [date -u output] | SHA-256 computed by Claude Code at my request and re-computed by me: [the working copy's value]. Verified identical to original evidence item M57-USB-Orig. Ready for analysisCheckpoint 5
All three must be right to complete this step.
-
What is the SHA-256 hash of
charlie-work-usb-2009-12-11-WORK.E01?Identical to the original’s. The working copy is a true duplicate.
-
The two hashes match. What, precisely, has that established?
Hashing proves the relationship between two files on your disk. Everything before imaging, and everything inside the image, is a question for other evidence.
-
Reading your finished log, what is different from the manual edition’s log, and why does it matter?
You remain the custodian and you signed every entry. What the log adds is honesty about method: which commands a tool ran for you, and that you verified the ones that mattered. That is what makes the tool's involvement defensible rather than a surprise on cross-examination.
Write the report
The checkpoints establish the facts. The graded deliverable is the preliminary report you write from them, using the template in the PDF handout. It has four parts:
- Evidence details — filename, size in bytes, the SHA-256 of the original, and the source and UTC time of acquisition, all copied from your log.
- Executive summary — two or three sentences for a manager who will read nothing else: what was acquired, how its integrity was established, that a verified working copy exists, and that a custody log covers every action, including the ones a tool ran on your behalf.
- Key findings — the original’s integrity; the creation of the working copy and why the original is now left alone; the working copy’s integrity and what a mismatch would have meant.
- Importance of procedural integrity — which admissibility gate from Chapter 3 a mismatched hash would fail, which one an undocumented action would fail, and how a defence lawyer would use either gap. Add one paragraph on the tool: what you let it do, what you re-ran yourself, and why.