← retour aux outils back to tools

# 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