← retour aux outils back to tools

# dcfldd

Réécriture améliorée de dd issue du DoD Computer Forensics Lab, ajoutant hachage à la volée, rapport de progression et sortie découpée pour l'imagerie forensique. Enhanced dd rewrite from the DoD Computer Forensics Lab, adding on-the-fly hashing, progress reporting, and split output for forensic imaging.

↗ https://dcfldd.sourceforge.net

## Overview

dcfldd is another dd-derived forensic imaging tool, originally developed at the DoD Computer Forensics Lab (a predecessor lineage to dc3dd). It’s used to create verified, forensically sound copies of storage media, with built-in hashing, status output, and the ability to write to multiple outputs or split files simultaneously.

## Common Usage

Image a disk while computing MD5 and SHA1

    dcfldd if=/dev/sdb of=evidence.img hash=md5,sha1 hashlog=hashes.log

Show progress and log status

    dcfldd if=/dev/sdb of=evidence.img statusinterval=256 hashwindow=1M

Write the image to two destinations at once (e.g. local + mounted evidence drive)

    dcfldd if=/dev/sdb of=evidence.img of=/mnt/backup/evidence.img

Split the output into fixed-size segments

    dcfldd if=/dev/sdb of=evidence.img split=1G splitformat=nnn

Verify a copy against the original

    dcfldd if=/dev/sdb vf=evidence.img

## Tips

- `hashwindow` enables piecewise hashing — useful for proving integrity of specific chunks in very large images
- `vf=` (verify file) re-reads the source and compares it against an existing image without re-imaging
- Prefer `conv=noerror,sync` when the source media has bad sectors, so damaged blocks are zero-filled rather than aborting the copy

Help / Man page

    dcfldd [OPTION]...

      if=FILE            input file
      of=FILE            output file (can be specified multiple times)
      hash=ALGO[,ALGO]   md5, sha1, sha256, sha384, sha512 (comma separated)
      hashlog=FILE       log computed hash(es) to FILE
      hashwindow=BYTES   compute a hash every BYTES of input (piecewise hashing)
      hashconv=[before|after]
      vf=FILE            verify FILE against input
      vfhash=ALGO        hash algorithm used for verify
      split=BYTES        split output into pieces of BYTES
      splitformat=nnn    numeric suffix format for split files
      statusinterval=N   print status every N blocks
      bs=BYTES           block size
      conv=CONVS         noerror, sync, notrunc, etc.
      sizeprobe=if       determine size of input for progress reporting

## Vue d’ensemble

dcfldd est un autre outil d’imagerie forensique dérivé de dd, développé à l’origine au DoD Computer Forensics Lab (une lignée qui a précédé dc3dd). Il sert à créer des copies vérifiées et forensiquement fiables de supports de stockage, avec hachage intégré, sortie de statut, et la possibilité d’écrire vers plusieurs sorties ou de découper des fichiers simultanément.

## Utilisation courante

    # Imager un disque en calculant MD5 et SHA1
    dcfldd if=/dev/sdb of=evidence.img hash=md5,sha1 hashlog=hashes.log

    # Afficher la progression et journaliser le statut
    dcfldd if=/dev/sdb of=evidence.img statusinterval=256 hashwindow=1M

    # Écrire l'image vers deux destinations à la fois (par ex. local + disque de preuve monté)
    dcfldd if=/dev/sdb of=evidence.img of=/mnt/backup/evidence.img

    # Découper la sortie en segments de taille fixe
    dcfldd if=/dev/sdb of=evidence.img split=1G splitformat=nnn

    # Vérifier une copie contre l'original
    dcfldd if=/dev/sdb vf=evidence.img

## Conseils

- `hashwindow` active le hachage par morceaux : utile pour prouver l’intégrité de morceaux précis dans de très grandes images
- `vf=` (verify file) relit la source et la compare à une image existante sans réimager
- Préférez `conv=noerror,sync` quand le support source a des secteurs défectueux, pour que les blocs endommagés soient remplis de zéros plutôt que d’interrompre la copie

Aide / Page de manuel

    dcfldd [OPTION]...

      if=FILE            input file
      of=FILE            output file (can be specified multiple times)
      hash=ALGO[,ALGO]   md5, sha1, sha256, sha384, sha512 (comma separated)
      hashlog=FILE       log computed hash(es) to FILE
      hashwindow=BYTES   compute a hash every BYTES of input (piecewise hashing)
      hashconv=[before|after]
      vf=FILE            verify FILE against input
      vfhash=ALGO        hash algorithm used for verify
      split=BYTES        split output into pieces of BYTES
      splitformat=nnn    numeric suffix format for split files
      statusinterval=N   print status every N blocks
      bs=BYTES           block size
      conv=CONVS         noerror, sync, notrunc, etc.
      sizeprobe=if       determine size of input for progress reporting