dc3dd
Version patchée de GNU dd conçue pour l'acquisition forensique, calculant les empreintes à la volée (md5/sha1/sha256) pendant l'imagerie d'un périphérique. Patched version of GNU dd built for forensic acquisition, computing hashes on the fly (md5/sha1/sha256) while imaging a device.
↗ https://sourceforge.net/projects/dc3dd/Overview
dc3dd is a patched build of GNU dd developed by the DoD Cyber Crime Center (DC3) for forensic disk imaging. It behaves like dd but adds features examiners actually need: on-the-fly hashing of input/output, split output files, progress reporting, and verbose logging suitable for chain-of-custody documentation.
Common Usage
Image a disk with SHA-256 verification, write a log
dc3dd if=/dev/sdb of=evidence.img hash=sha256 log=acquisition.log
Hash both input and output to verify a bit-for-bit copy
dc3dd if=/dev/sdb of=evidence.img hash=sha256 verifymd5=on
Split the image into 2GB chunks (for filesystems with size limits)
dc3dd if=/dev/sdb of=evidence.img ofsplit=2G hash=md5
Wipe a drive with a known pattern before reuse
dc3dd if=/dev/zero of=/dev/sdc wipe
Only hash a source device, no copy (integrity check)
dc3dd if=/dev/sdb hash=sha1 hash=md5
Tips
- Always write to a forensic image file, never back to the original evidence device
- Use
log=for every acquisition — it captures the hash, block counts, and timestamps needed for a chain-of-custody report hash=can be specified multiple times to compute several algorithms in a single pass
Help / Man page
dc3dd [OPTION]...
if=FILE read from FILE instead of stdin
of=FILE write to FILE instead of stdout
ofsplit=BYTES split output into pieces of BYTES each
hash=ALGO compute ALGO (md5, sha1, sha256, sha512) hash while copying
hashwindow=N compute a hash every N bytes (piecewise hashing)
hashlog=FILE write computed hashes to FILE
log=FILE write status/progress messages to FILE
verifymd5=on verify output matches input via MD5 after copy
progress=on display progress information
wipe overwrite output with a fixed pattern
bs=BYTES force BYTES bytes per I/O block
conv=CONVS convert the file as per CONVS (noerror, sync, notrunc, ...)
errlog=FILE log read errors and their block numbers to FILE
Vue d’ensemble
dc3dd est une version patchée de GNU dd développée par le DoD Cyber Crime Center (DC3) pour l’imagerie forensique de disques. Il se comporte comme dd mais ajoute des fonctionnalités dont les examinateurs ont réellement besoin : hachage à la volée de l’entrée/sortie, découpage des fichiers de sortie, rapport de progression, et journalisation verbeuse adaptée à la documentation de chaîne de possession.
Utilisation courante
# Imager un disque avec vérification SHA-256, écrire un log
dc3dd if=/dev/sdb of=evidence.img hash=sha256 log=acquisition.log
# Hacher entrée et sortie pour vérifier une copie bit à bit
dc3dd if=/dev/sdb of=evidence.img hash=sha256 verifymd5=on
# Découper l'image en morceaux de 2 Go (pour les systèmes de fichiers à limite de taille)
dc3dd if=/dev/sdb of=evidence.img ofsplit=2G hash=md5
# Effacer un disque avec un motif connu avant réutilisation
dc3dd if=/dev/zero of=/dev/sdc wipe
# Hacher uniquement un périphérique source, sans copie (contrôle d'intégrité)
dc3dd if=/dev/sdb hash=sha1 hash=md5
Conseils
- Écrivez toujours vers un fichier image forensique, jamais de retour vers le périphérique de preuve original
- Utilisez
log=pour chaque acquisition : il capture l’empreinte, les compteurs de blocs et les horodatages nécessaires à un rapport de chaîne de possession hash=peut être spécifié plusieurs fois pour calculer plusieurs algorithmes en une seule passe
Aide / Page de manuel
dc3dd [OPTION]...
if=FILE read from FILE instead of stdin
of=FILE write to FILE instead of stdout
ofsplit=BYTES split output into pieces of BYTES each
hash=ALGO compute ALGO (md5, sha1, sha256, sha512) hash while copying
hashwindow=N compute a hash every N bytes (piecewise hashing)
hashlog=FILE write computed hashes to FILE
log=FILE write status/progress messages to FILE
verifymd5=on verify output matches input via MD5 after copy
progress=on display progress information
wipe overwrite output with a fixed pattern
bs=BYTES force BYTES bytes per I/O block
conv=CONVS convert the file as per CONVS (noerror, sync, notrunc, ...)
errlog=FILE log read errors and their block numbers to FILE