Notes on a book
Practical Forensic Imaging
Bruce Nikkel · No Starch Press, 2016
How storage media are acquired, verified, packaged and carved with command-line tools on Linux. The book behind every disk-image challenge, and the reason hashing exists for reasons other than passwords.
Nikkel runs incident response for a bank and teaches digital forensics, and this book is written for people who will have to defend their work: every procedure comes with the reason it preserves evidence and the way it is documented. It is entirely command line, entirely Linux, and it assumes you would rather understand dd than click a wizard.
Four modules cite it, which surprises people, because forensic acquisition sounds like the least CTF-shaped subject imaginable. The connection is that a disk-image challenge hands you an artefact produced by exactly these procedures, and the things you need to do to it - identify the container, find the partitions, extract a range, mount it read-only - are this book's contents.
Why it is on this shelf
Because it is the only book here that treats an image as a thing with structure and provenance rather than a bag of bytes. When a challenge gives you a file with no extension and it turns out to be a split EnCase image with a partition table at an offset, this is the book that told you those things exist.
Chapter 3, Forensic Image Formats
The container question, which is the first question a disk challenge asks. A raw image is the disk's bytes and nothing else, which is why it is simple and why it carries no metadata at all. The forensic formats exist to attach that metadata to the bytes: who acquired it, when, from what device, with what hashes.
- Raw, from dd and its forensic relatives, sometimes split across numbered files.
- EnCase EWF, the most common evidence container, readable through libewf.
- FTK SMART, its commercial counterpart.
- AFF, the open format, with signing built on X.509 certificates.
- SquashFS as a container, which is Nikkel's own approach - a compressed read-only filesystem holding the raw image plus the logs beside it.
The practical point for a challenge is that a forensic container is not the disk. Tools that expect raw bytes will read the container's header as a partition table and produce nonsense, so identifying the wrapper comes before everything. Start with the file signature identifier and the magic byte lookup; disk image forensics covers the sequence.
Chapter 6, Forensic Image Acquisition
The acquisition chapter proper: dd and its forensically-aware descendants dcfldd and dc3dd, ewfacquire for EnCase output, error handling when sectors fail, and hashing during acquisition rather than after it.
Two ideas transfer even though you will never acquire anything in a competition. The first is that acquisition is read-only by construction, with write blocking enforced rather than intended, which is the same discipline that says work on a copy of the challenge file. The second is that a failed read is data: the sectors that could not be read, and where they were, is often the most interesting fact about a damaged image.
Chapter 7, Forensic Image Management
Converting between formats, splitting and reassembling, compressing, and verifying. It is cited from the hashing module for one reason: this is hashing used for integrity rather than secrecy, and that is the half CTFs rarely show.
The distinction is worth being precise about. A password hash is a one-way function chosen to be slow, protecting a secret from somebody holding the digest. An image hash is a fingerprint chosen to be fast, proving that a copy is a copy. Both are called hashing and almost nothing about their requirements agrees - which is why MD5, unfit for the first job for two decades, is still perfectly serviceable for the second. That is the point hash cracking makes from the other side, and the hash generator and identifier are the tools for each.
Chapter 8, Special Image Access Topics
The awkward cases, which in a CTF are most of them. Mounting an image read-only with the loop device and an offset, dealing with logical volumes, working with software RAID sets, handling encrypted volumes when you have the key, and reaching filesystems the host kernel does not support.
The offset arithmetic is the specific skill worth practising. A partition does not start at byte zero of the image, so mounting it means reading the partition table, multiplying the start sector by the sector size, and passing the result to the loop device. Half of all stuck disk challenges are stuck exactly there, and the memory, disk and registry forensics panel does the same job in the browser.
Chapter 9, Extracting Subsets of Forensic Images
Carving: pulling a range, a partition, a file or a fragment out of a larger image. Slack space, unallocated space, and the reason deleted content persists - the filesystem removed the reference, not the blocks.
This is the chapter that maps most directly onto challenge work, because a disk image challenge is usually asking you to recover something the filesystem no longer indexes. File carving by header and footer signature works without any filesystem at all, which is why it succeeds on images too damaged to mount. The strings extractor is the crude version and often enough; the file signature identifier drives the careful one.
Where it stops
It is about acquiring and managing images, not analysing their contents. Filesystem internals, timeline construction, registry analysis and artefact interpretation are all out of scope and explicitly deferred to other books. If your challenge is about what a user did rather than what is on the disk, this is the wrong volume.
It is also from 2016 and hardware-focused in places - write blockers, drive interfaces, spinning disks - and the material on SSDs and self-encrypting drives has moved on. The procedures have not.
What to take into a challenge
Identify the container, then the partition, then the filesystem, then the file, in that order and never out of it. Every disk challenge that feels impossible is one where a step was skipped, and the symptom is always the same: a tool giving a confident answer about the wrong layer.