DumpHD 0.61
-----------
DumpHD is a HD-DVD / Blu-Ray decrypter based on the idea of BackupHDDVD by
muslix64. The goal of this program is to make a perfect backup without any
traces of AACS.

This programm is written in Java and requires the JRE 1.6 or later. It should
run on every platform that supports Java. It is HIGHLY recommended to use the
Server VM, the Client VM suffers a SEVERE performance drop, almost by
factor 1.8.

Key features so far:
- Dual-Core supported decryption of EVO / M2TS files (for harddisk to harddisk
  speed records ;o))
- Support for every pack type of an EVO (including in-place decryption of
  ADV_PCKs, excluding Sequence Key Sections)
- Decryption of every ARF protection type
- Multiple files (currently CLI only) or complete disc mode
- Usage of a key database to get the decryption keys or direct retrieval of the
  keys off the source disc
- Supports HD-DVDs for Standard / Advanced Content (but not both on the same
  disc), Blu-Ray ROM BDMV
- Experimental Blu-Ray Recordable support (with multiple CPS Units, BDMV, BDAV
  with Aux Directories and Thumbnails)
- Automatic BD+ removal using the BDVM Debugger or manually by supplying a
  correct Conversion Table (currently CLI only)
- Streaming output of EVO / M2TS files to stdout
- Very much console output for free ;o)
- GUI

Homepage: http://forum.doom9.org/showthread.php?t=123111



Important information
---------------------
Starting from version 0.4 a new key database format is used which is
incompatible with the original BackupHDDVD format. This change was necessary to
support future enhancements. For details of the new format see the included
KEYDB.cfg. DumpHD can still read the old format but will write only in the new
format. If old format entries are edited using DumpHD these entries will be
converted to the new format.

The direct key retrieval feature could not be integrated as an integral part of
DumpHD because it requires low level hardware access which cannot be realized
using Java. To use this feature, the library version of aacskeys is required.

The library is platform dependend, it is required that the one corresponding to
the platform where DumpHD is executed on is present in the directory of DumpHD
or in the system search path for shared libraries. The filename must be
corresponding to the platform, e.g. under windows it must have the name
aacskeys.dll. If the library is not found during the start of DumpHD the direct
key retrieval feature gets disabled for that session.
The retrieved keys get automatically added at the end of the key database.

The library is NOT included, you can download it here:
http://forum.doom9.org/showthread.php?t=123311

Since version 0.6 DumpHD can remove BD+ automatically, this is done by using the
BDVM Debugger. To enable that feature copy all files and subdirectories from the
BDVM Debugger into the directory of DumpHD.

The BDVM Debugger is NOT included, at least version 0.1.5 is required, you can
download it here:
http://forum.doom9.org/showthread.php?t=140571



Usage instructions
------------------
To use the program from the command line, use the following syntax:

DumpHD [options] source [destination]

Options:
-h                 : This help screen
--convtable:<file> : Use this Conversion Table to remove BD+
--infile:<file>    : Process only the specified file. It must be given
                     relative to source. This parameter can be specified
                     multiple times, the files will be processed in the
                     given order.

source             : Source to dump, must be the root directory of the disc
destination        : directory where the dump is written
                     If destination is omitted streaming mode is used.
                     In streaming mode only EVO / M2TS files are processed,
                     they are decrypted to stdout (EVOs without decrypting
                     ADV_PCKs) in alphabetical order or as specified by
					 --infile:<file> switches.
                     Pipe the output to another program which can read from
                     stdin.
                     Textual output is written to stderr.

If started without arguments, the GUI is loaded

There is a batch file (DumpHD.cmd) / shell script (dumphd.sh) included for
windows / linux for a more convenient start of the program.



Known issues
------------
Symptom:
Under JRE 1.x, Java complains that there is no 'server' JVM.

Workaround:
Install the full JDK and copy the directory <JDK-dir>\jre\bin\server into the
bin directory of the JRE (mentioned in the error message, usually located
somewhere on the C: drive).


Symptom:
A disc has been loaded and cannot be dumped because it was not found in the key
database and direct key retrieval failed. Using DiscID override the disc has
been successfully identified but still cannot be selected to be dumped.

Workaround:
Create a dummy entry in the key database with the detected DiscID of the disc so
that it is identified when loaded. Then use the DiscID override feature to
switch the DiscID.



Support utilities
-----------------
Two additional support utilities are included:

PackScanner:
Scans EVO files for pack types and has the ability to "blank" VC-1 / DD+
Secondary Streams for a "IME-Fix".

ACAPacker:
A tool for packing, depacking and repacking (ACA -> ACA) ACA files, with or
without AACS processing, including a list function to show the contents of an
ACA file.

For usage instructions run the programs without parameters.

Use the provided batch files / shell scripts for a more convenient start of the
programs.



KenD00



Version history
---------------
2009-06-03: 0.61
- Updated Key Database to version 1.4, comments in entry lines are now supported
- They key database now doesn't append wrong entry data to the title if correct
  entries follow the broken ones

2008-12-14: 0.6
- Automatic BD+ removal using the BDVM Debugger
- For BD+ titles the Volume ID gets stored into the KEYDB additionally

2008-12-05: 0.51
- Added support for multiple CPS Units on BD-ROM BDMV

2008-11-08: 0.5
- Experimental BD+ support (in CLI mode only)

2008-10-01: 0.46
- Fixed streaming of complete Blu-Ray discs
- Fixed line terminators in linux shell scripts
- Added missing java.library.path to the acapacker shell script

2008-09-20: 0.45
- Experimental Blu-Ray Recordable support (with multiple CPS Units, BDMV, BDAV
  with Aux Directories and Thumbnails)
- Updated Key Database to version 1.3, new entry types:
  M (Media Key), B (Binding Nonce), P (Protected Area Key)
- DumpHD can now calculate the VUK / PAK if only the Media Key and Volume ID /
  Binding Nonce is given
- Replaced single file mode with multiple files mode (works only in CLI mode)
- ACAPacker now works with direct key retrieval too

2007-09-09: 0.4
- Change of the key entry format to version DumpHD 1.2
- Key database access completely rewritten, now reports every encountered error
  during processing
- Support for aacskeys library to retrieve keys directly off the source disc
- Implemented DiscID override (change the detected DiscID of the disc contents
  to use another keyset)
- Implemented Title editing (changes the Title of the entry in the key database
  and may update the keys)
- The CERTIFICATE folder of BluRay discs gets copied
- For HD-DVD Advanced Content the Title Key File with the lowest number is used
  to calculate the DiscID
- Streaming output of EVO / M2TS files to stdout

2007-04-18: Private release 0.33

2007-04-05: 0.32
- BluRay decryption fixed

2007-04-05: 0.31
- BluRay VUK processing fixed

2007-04-01: 0.3
- Complete rewritten disc detection and aacs handling routines
- Lots of internal changes
- Experimental BluRay support
- Initial GUI version

2007-03-09: 0.21
- Small fix in EVOB decryption engine to avoid crash
- Support for HD-DVDs for Standard Content added

2007-03-07: 0.2
- Initial public release
