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