dc3dd
Patched version of GNU dd with forensic features including on-the-fly hashing, error logging, pattern wiping, progress reporting, and split output capabilities.
Description
dc3dd is a patched version of GNU dd with added features for computer forensics. It supports on-the-fly hashing (md5, sha-1, sha-256, sha-512), writing errors to a file, grouping errors in logs, pattern wiping, progress reports, and splitting output into multiple files. This tool is essential for creating forensic images of devices or files while maintaining chain of custody through hash verification.
Use cases include disk imaging for investigations, verifying data integrity during copies, wiping devices securely, and handling large datasets by splitting into manageable files. It provides detailed logging of I/O statistics, diagnostics, and hashes for both input and output, ensuring reproducibility and accuracy in forensic workflows.
The tool handles bad sectors by default writing zeros to outputs but can be configured to exit on errors. It supports multiple output destinations simultaneously and advanced options for skipping sectors, appending to files, and customizing buffer sizes for performance tuning.
How It Works
dc3dd operates like GNU dd by reading from input sources (files, devices, patterns) and writing to output destinations while computing hashes on-the-fly for specified algorithms. It processes data in sectors (default 512 bytes, configurable via ssz=), buffering reads/writes for efficiency (bufsz=). Hashes are calculated for inputs and verified against outputs when using hof=, hofs=, or fhod=. Errors are logged with options to group them; bad sectors trigger zero-filling by default (rec=off to exit). Multiple outputs can be specified for simultaneous writing, splitting via ofs=/hofs= with size limits (ofsz=). Patterns (pat=/tpat=) fill outputs repeatedly; wiping (wipe=/hwipe=) overwrites devices with patterns or zeros, optionally verifying post-write.
Installation
sudo apt install dc3ddFlags
Examples
dc3dd if=/var/log/messages of=/tmp/dc3dd hash=sha512dc3dd if=DEVICE of=output.img hash=sha256 log=imaging.logdc3dd if=input.img hof=verified.img hash=md5dc3dd wipe=/dev/sdb pat=00dc3dd hwipe=/dev/sdc hash=sha512dc3dd if=/dev/sda of=image.001 of=image.002 hash=sha1dc3dd pat=DEADBEEF cnt=1000000 of=patternfile.img