ddAuto is an open-source front-end GUI cross-platform imaging tool written in Perl to automate dd utility process. The purpose of this tool is to provide the user with the power of the dd utility as well as providing the user with an intuitive interface. ddAuto provides the option for the user to image attached drives (e.g. HD, Flash Drive) locally or remotely via TCP protocol using netcat/cryptcat. Image integrity functionality is also provided by the tool. The user may choose to use MD5, SHA1, SHA2 or any other degist algorithm for hash verification. Most importantly, ddAuto allows the user to view the imaging completion percent as dd in the background as well as the estimated remaining time.
- GUI for dd
- Easy to change options and to switch between windows.
- Automatically devices detection (HD, USB Flash Drive, SD Memory).
- Progress bar for imaging time.
- Elapsed / Estimated time calculations.
- Support for a number of hashing algorithms.
- Netcat and Cryptcat support.
- Multi-OS support (Windows, Linux, OSX).
- Exported HTML summary report.
The following list of requirements must be installed before running the tool
- Linux
- Perl (Installed by default)
- Tk Module (Tk Installation)
- Mac
- X Server (XQuartz)
- Perl (ActiveState)
- Tk Module (Tk Installation)
- Window
- Cygwin (Cygwin Project)
- Perl (ActiveState)
- Tk Module (Tk Installation)
The following list of requirements are required if used by the user:
-
Linux
- Netcat (Installed by default)
- Cryptcat, installed by default in some Linux distros (CryptCat Project)
- Perl Modules:
- Digest::MD5
- Digest::SHA
- Digest::Tiger
- Digest::Whirlpool
- Digest::Adler32
- Digest::CRC
-
Mac
- Netcat (Installed by default)
- Cryptcat(CryptCat Project)
- Perl Modules:
- Digest::MD5
- Digest::SHA
- Digest::Tiger
- Digest::Whirlpool
- Digest::Adler32
- Digest::CRC
-
Window
- Netcat (Supported by Cygwin)
- Cryptcat (CryptCat Project)
- Perl Modules:
- Win32::Process
- Win32::Process::List
- Digest::MD5
- Digest::SHA
- Digest::Tiger
- Digest::Whirlpool
- Digest::Adler32
- Digest::CRC
Before the tool is launched from the command line in Windows machine, the user must provide the script file with valid path to Cygwin binary directory. The following lines in the script file must reflect the exact path for Cygwin bin directory as well as Netcat and Cryptcat exe files:
my $cygwinPath='C:\cygwin\bin\\' if ($^O eq 'MSWin32');
my $ncPath='C:\nc-exe-path\\' if ($^O eq 'MSWin32');
my $cryptcatPath='C:\cryptcat-exe-path\\' if ($^O eq 'MSWin32');
For remote imaging, ddAuto opens dual TCP connections. One via Netcat/Cryptcat to tunnel dd stream, and the other is a TCP connection on port '9090' for data control initiated by the Sender to exchange control data, like how many bytes have been transferred so far and what hash calculation requested by the receiver. In case of firewall protection, the user should allow for port '9090' (hardcoded) and the Netcat/Cryptcat listing port selected by the user. The following table summarizes the remote imaging on different OSs.
Receiver | Sender | Notes |
---|---|---|
Windows 7 | Backtrack 5 |
|
Backtrack 5 | Windows 7 |
|
Backtrack 5 | Backtrack 5 |
|
Windows 7 | Mac OS |
|
- Integrate with other forks of dd (Dc3dd, dcfldd, sdd, dd_rescue, ddrescue, dccidd)
- Support memory imaging
- Logging
- Support multi-imaging
- Support dd over SSH
- Pause/Continue
- Error Handling
Version | Release Date | Applied Changes |
---|---|---|
ddAuto-1.0 | May 14, 2014 |
|
2- Utility control area.
3- Local: allows the user to image attached devices locally.
4- Remote: allows the user to image attached devices remotely over TCP connection.
5- Input Device/File: it can be a valid device or file path to pass for dd as input (if=).
6- Output File: it can be a valid file path to pass for dd as output (of=).
7- The button with the black arrow on the right opens a list with detected devices. In the the example below, 'Device1' refers to the hard drive while 'Device2' refers to a USB flash drive.
This window appears only if 'Remote Mode' option is selected.
8- Sender Mode: allows the user to send the input of dd to a remote receiver over TCP connection.
9- Receiver Mode: allows the user to accept the output of dd from a remote sender over TCP connection.
This window appears only if 'Remote Mode' option is selected.
10- Netcat: allows the user to send the dd stream over unencrypted TCP connection.
11- Cryptcat: allows the user to send the dd stream over encrypted TCP connection.
12- Network Settings: a parameters must be passed to Netcat/Cryptcat:
- Remote IP: valid remote host IP address in the format: #.#.#.#
- Port: valid remote host listing port.
- key: optional encryption key for Cryptcat only.
13- A list of optional checksum algorithms.
14- User's HTML report options.
This windows allows the user to confirm his selected options before imaging starts up. The user can smoothly moves back and forth between windows and change options.
This windows updates the user with the progress of dd as well as the estimated time.
15- Time estimation.
16- Progress bar.
17- Messages area to keep the user updated about the process.
18- Exit button.
19- Open an HTML summary report in a browser.
20- Takes the user to the first step.
The HTML summary report confirms wither the imaging processed successful or not by showing the checksum test results. It also can be printed or exported as a record.