DC3DD(1)

πŸ’– DC3DD(1) β€” the manual page, but make it cute πŸ’–

okay bestie, welcome to the dc3dd manual page for the User Commands section of the manual. this is the whole thing, every flag, every note, zero skips, we're going the whole way through. grab a snack πŸ“


🌸 NAME 🌸

dc3dd β€” convert and copy a file


✨ DESCRIPTION ✨

------ usage: ------

okay so here's the vibe, the way you actually run this thing:

dc3dd [OPTION 1] [OPTION 2] ... [OPTION N]

or

dc3dd [HELP OPTION]

where each OPTION gets picked from the basic or advanced options listed below, and HELP OPTION gets picked from the help options listed below. that's it, that's the whole structure, slay. πŸ’…


-------------- basic options: --------------

  • if=DEVICE or if=FILE β€” read your input from a device or a file (peep note #1 below for how to read from standard input πŸ‘€). this one can only be used once, and it cannot be combined with ifs=, pat=, or tpat=.
  • ifs=BASE.FMT β€” read input from a whole set of files with base name BASE and sequential file name extensions matching the format specifier FMT (note #4 below tells you how to specify FMT). this one can only be used once and cannot be combined with if=, pat=, or tpat=.
  • of=FILE or of=DEVICE β€” write output to a file or device (note #2 below for how to write to standard output). this one can be used more than once β€” see note #3 below for how to generate multiple outputs. so many outputs, so little time πŸ’…
  • hof=FILE or hof=DEVICE β€” write output to a file or device, hash the output bytes, and verify by comparing the output hash(es) to the input hash(es). also usable more than once (note #3, multiple outputs, you know the drill).
  • ofs=BASE.FMT β€” write output to a set of files with base name BASE and sequential file name extensions generated from the format specifier FMT (note #4 for FMT specifics). can be used more than once (note #3 for multiple outputs). set the max size of each file in the set with ofsz=.
  • hofs=BASE.FMT β€” write output to a set of files with base name BASE and sequential file name extensions generated from the format specifier FMT (yes, note #4 again). hash the output files and verify by comparing the output hash(es) to the input hash(es). can be used more than once (note #3, multiple outputs). max size of each file in the set goes in ofsz=.
  • ofsz=BYTES β€” set the maximum size of each file in the sets of files you specified with ofs= or hofs= to BYTES (note #5 below). a default for this can be set at compile time using -DDEFAULT_OUTPUT_FILE_SIZE followed by the value you want in BYTES.
  • hash=ALGORITHM β€” compute an ALGORITHM hash of the input and also of any outputs you specified with hof=, hofs=, or fhod=, where ALGORITHM is one of md5, sha1, sha256, or sha512. may be used once for each supported ALGORITHM. alternatively, hashing can be switched on at compile time using one or more of -DDEFAULT_HASH_MD5, -DDEFAULT_HASH_SHA1, -DDEFAULT_HASH_SHA256, and -DDEFAULT_HASH_SHA512.
  • log=FILE β€” log I/O statistcs, diagnostics, and total hashes of input and output to FILE. if hlog= isn't specified, piecewise hashes of multiple file input and output also get logged to FILE. can be used more than once to generate multiple logs.
  • hlog=FILE β€” log total hashes and piecewise hashes to FILE. can be used more than once to generate multiple logs.
  • mlog=FILE β€” create a hash log that's easier for a machine to read πŸ€–

----------------- advanced options: -----------------

  • fhod=DEVICE β€” the same as hof=DEVICE, but with the extra bonus of hashing the entire output DEVICE. can be used more than once (note #3 below, multiple outputs, you know how it is).
  • rec=off β€” by default, zeros get written to the output(s) in place of bad sectors when the input is a device. use this option to make the program instead just exit the moment a bad sector shows up. πŸšͺ
  • wipe=DEVICE β€” wipe DEVICE by writing zeros (the default) or a pattern specified by pat= or tpat=.
  • hwipe=DEVICE β€” wipe DEVICE by writing zeros (the default) or a pattern specified by pat= or tpat=. then verify DEVICE after writing it by hashing it and comparing the hash(es) to the input hash(es). double-checking is self care ✨
  • pat=HEX β€” use a pattern as input, writing HEX to every byte of the output. can only be used once and cannot be combined with if=, ifs=, or tpat=.
  • tpat=TEXT β€” use a text pattern as input, writing the string TEXT repeatedly to the output. can only be used once and cannot be combined with if=, ifs=, or pat=.
  • cnt=SECTORS β€” read only SECTORS input sectors. must be used with pat= or tpat= if you're not using the pattern together with wipe= or hwipe= to wipe a device.
  • iskip=SECTORS β€” skip SECTORS sectors at the start of the input device or file.
  • oskip=SECTORS β€” skip SECTORS sectors at the start of the output file. heads up: specifying oskip= automatically sets app=on.
  • app=on β€” do not overwrite an output file specified with of= if it already exists; append output instead.
  • ssz=BYTES β€” unconditionally use BYTES (note #5 below) bytes for sector size. if ssz= isn't specified, the sector size is figured out by probing the device; if the probe fails or the target isn't a device, a sector size of 512 bytes is assumed.
  • bufsz=BYTES β€” set the size of the internal byte buffers to BYTES (note #5 below). this effectively sets the max number of bytes that may be read at a time from the input. BYTES must be a multiple of the sector size. use this to fine-tune performance πŸ”₯
  • verb=on β€” activate verbose reporting, where sectors in/out get reported for each file in sets of files specified with ifs=, ofs=, or hofs=. alternatively, verbose reporting can be activated at compile time using -DDEFAULT_VERBOSE_REPORTING.
  • nwspc=on β€” activate compact reporting, where the use of white space to divide log output into logical sections is suppressed. alternatively, compact reporting can be activated at compile time using -DDEFAULT_COMPACT_REPORTING.
  • b10=on β€” activate base 10 bytes reporting, where the progress display reports 1000 bytes instead of 1024 bytes as 1 KB. alternatively, base 10 bytes reporting can be activated at compile time using -DDEFAULT_BASE_TEN_BYTES_REPORTING.
  • corruptoutput=on β€” for verification testing and demonstration purposes, corrupt the output file(s) with extra bytes so a hash mismatch is guaranteed. πŸ’€ yes it's on purpose. no, do not do this on real evidence, bestie.

------------- help options: -------------

  • --help β€” display this help and exit
  • --version β€” output version information and exit
  • --flags β€” display compile-time flags and exit

------ notes: ------

  1. to read from stdin, do not specify if=, ifs=, pat=, or tpat=.
  2. to write to stdout, do not specify of=, hof=, ofs=, hofs=, fhod=, wipe=, or hwipe=.
  3. to write to multiple outputs, specify more than one of of=, hof=, ofs=, hofs=, or fhod=, in any combination.
  4. FMT is a pattern for a sequence of file extensions that can be numerical starting at zero, numerical starting at one, or alphabetical. specify FMT by using a series of zeros, ones, or a's, respectively. the number of characters used indicates the desired length of the extensions. for example, a FMT specifier of 0000 indicates four character numerical extensions starting with 0000.
  5. BYTES may be followed by the following multiplicative suffixes: c (1), w (2), b (512), kB (1000), K (1024), MB (1000*1000), M (1024*1024), GB (1000*1000*1000), G (1024*1024*1024), and so on for T, P, E, Z, and Y.
  6. consider using cnt=, iskip= and oskip= to work around unreadable sectors if error recovery fails.
  7. sending an interrupt (e.g., CTRL+C) to dc3dd will cause the program to report the work completed at the time the interrupt is received and then exit.
dc3dd completed at 2023-04-04 18:08:06 -0400

🫢 AUTHOR 🫢

written by Paul Rubin, David MacKenzie, Stuart Kemp, Jesse Kornblum, Andrew Medico, Richard Cordovano, Justin Lowe, Frank Westerman, and Joseph Lininger. absolute icons, every single one πŸ‘‘


πŸ› REPORTING BUGS πŸ›

report bugs to <dc3dd@dc3.mil>.


Copyright Β© 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

this is free software: you are free to change and redistribute it. there is NO WARRANTY, to the extent permitted by law. 🫑


πŸ‘€ SEE ALSO πŸ‘€

the full documentation for dc3dd is maintained as a Texinfo manual. if the info and dc3dd programs are properly installed at your site, the command

info dc3dd

should give you access to the complete manual. iykyk πŸ“–


okay that's the whole page bestie, no notes skipped, no flags dropped, we ate and left zero crumbs πŸ’…βœ¨

this was dc3dd version 7.3.1, from April 2023. mwah, go image something responsibly πŸ’–πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from