A few words of introduction:
As we all know there's no chance to free the Bluray format as it happened with the DVD.
There are no working processing keys available anymore and even if it would, they would get revoked within a short period of time.
The only thing that is forever (at least for AACS) is the VUK (Volume Unique Key).
About february 2014 I got my first raspberry pi, connected a usb-bluray drive and tried to play a few blurays but simply got disappointed: apart from the problem that the first pi was simply not fast enough to handle the usb-bluray and the decoding I also ran into the problem that the necessary library 'libaacs' needs a VUK for each Bluray to decode it properly - but those keys are only available for older Blurays as the newer ones cannot be decrypted any longer because of the missing processing keys....
Usually 'MakeMKV' is a quite good replacement for libaacs under linux - but it's not available for ARM devices and so it's no solution for the raspberry pi (and it's still not available for arm until now).
A few weeks ago I stumbled across this post here
http://forum.kodi.tv/showthread.php?tid=230493 and started thinking about the VUK problem again.
I already asked the MakeMKV developer in the past to output the VUK so it can be used on arm devices - but he replied that it's too complicated to get the vuk from his tool.
But than I got hands on another tool called 'DVDfab Passkey' and noticed an interesting line in it's logfile:
So I posted a feature request in their forum to write the VUK into the logfile - but until now I've got no reply to it.
But I discovered another way to get the VUK from Passkey: create a memory dump after decrypting and read it from the dump
How you can 'find the VUK' manually (without FindVUK):
Basically the steps are quite easy:
- start a DVDfab application (Passkey, MediaPlayer or DVDfab9)
- insert a bluray
- in case you're using MediaPlayer start the playback
- in case of Passkey or DVDfab9: wait until the analyzing finishes
- create a memory dump with e.g. the windows task manager
- open the dump with a hex editor and search for the discid (it can be found in the logfile of passkey)
- and a few bytes later you'll find the vuk in the file (for newer releases only the unit keys are present in the dump)
What FindVUK does:
- Main feature: monitor the logfile of different DVDfab applications, dump the memory when the relevant data is available, extract vuk or unit keys from the dump and validate the data against the disc in the drive. finally the result is uploaded to a central bluray-database
- Synchronize feature: synchronizes the 'keydb.cfg' file with the online database
The KEYDB.cfg file is used by the libaacs library (that can be used to play blurays for example in VLC).
FindVUK is windows only - in case you're a linux user take a look at VukExtract from @m4tthi4s
Getting started:
- Select your DVDfab tool of choice (personally I bought a DVDfab Passkey license), download and install it http://www.dvdfab.cn
- Download and extract FindVUK into a new directory
- Execute FindVUK (during the first start it will download the dump-tool from the sysinternals website and start it so you can accept the license)
- Alternatively download 'procdump.exe' (x86 version) manually and copy it into a subdirectory called 'tool'
- Insert a Blu-ray into your drive
- You're using Passkey or DVDfabXX: it automatically start to decrypt the disc - FindVUK will watch the logfile, create a memory dump when Passkey/DVDfabXX got the VUK/UnitKeys, stop the Passkey/DVDfabXX decrypting process and analyze the memory dump to get the VUK/UnitKeys. Finally it will validate it against the disc and in case it's valid add it to the end of the local KEYDB.cfg
- You're using MediaPlayer: Please start the playback of the disc manually - FindVUK will watch the logfile, create a memory dump when Mediaplayer got the VUK/UnitKeys, close MediaPlayer and analyze the memory dump to get the VUK/UnitKeys. Finally it will validate it against the disc and in case it's valid add it to the end of the local KEYDB.cfg (and restart's MediaPlayer for the next analysis cycle)
- Repeat the previous 2 steps until you got the VUK for all your Blurays
- At the end of each cycle FindVUK uploads the complete data-set to the online-database
Whenever DVDfab releases a new version of either DVDfab, MediaPlayer or Passkey I'll test if FindVuk is still compatible and include it into an internal 'known to be good' list and will release a new version that includes this result. But even in case I'm not fast enough - FindVUK will simply report that the used DVDfab application is untested.
I hope the company behind the application don't close this way of retrieving the VUK or at least the unit keys.
In case you have problems with the tool please post your experience here and I'll try to help as good as I can
History of the tool:
(had to clean the details of the first releases because I hit the size limit of this post
-> the full changelog of all releases is included in the zip-file of the download
20150812 .. 0.51 - initial release
(...)
20200629 .. Download
FindVUK 1.35- FIX: do not report an error in case the hash-file is not present at all
- FEATURE: auto-update integrated - can be disabled in ini-file
20201013 .. Download
FindVUK 1.37- FIX: support for DVDfab 12
20201016 .. Download
FindVUK 1.38- FIX: make sync debug log configurable with ini parameter and disable by default
- CHANGE: more details in sync-debug-log
- CHANGE: more output during update
20210721 .. Download
FindVUK 1.42- CHANGE: also sync DateDiscId to online database
- CHANGE: new logpath for dvdfab passkey 9.4.0.9
- FIX: properly strip forbidden characters from filenames used for backup
- CHANGE: adjust loglevel for various output
- FIX: properly strip forbidden characters from filenames used for backup (of meta files)
- FEATURE: new ini parameter ExitAfterProcessing to exit FindVUK instead of starting over to scan the next disc
20211111 .. Download
FindVUK 1.53- CHANGE: replaced Drive_GetVolumeName call with DRVMS_GetVolumeName
- FEATURE: now possible to use only a driveletter as parameter to get metainfo from disc
- CHANGE: only ask for keypress at the end in case it's not started from command line
- CHANGE: lot's of refactoring
- CHANGE: GetMetaInfoFromDisc mode now also uploads UnitKeysENC and DiscType to enrich existing legacy disc entries
- FEATURE: new mode AACSkeys to get mediakey, volumeid and vuk by using AACSkeys tool
- FEATURE: synchronisation of DeviceKey, ProcessingKey and HostCertificates with OnlineDB
- FEATURE: entries uploaded to OnlineDB are now always directly processed and written to OnlineDB
- FIX: a few bugfixes
- FIX: update process now correctly works in case parameters are set
- FIX: update process now is able to handle subdirectories in the update file
20211113 .. Download
FindVUK 1.54- CHANGE: upload of devicekeys, processingkeys and hostcertificates disabled by default and can be enabled with ini parameter
20220501 .. Download
FindVUK 1.55- FIX: \ and / in Volumenames do not cause a problem any longer
20220515 .. Download
FindVUK 1.57- FIX: 2nd try - \ and / in Volumenames do not cause a problem any longer
- FIX: BD+ not detected in aacskeys mode
- FIX: copy protection check broken in 1.56
20230122 .. Download
FindVUK 1.58- FIX: add support for Passkey 9.4.5.1
- CHANGE: add support for MS Windows 10 virtual drive
- FIX: repair support for virtual drives
- CHANGE: report success if all unit-keys are validated (should fix handling of disc >WINX-IL MISTERO DEGLI ABISSI<)
20230203 .. Download
FindVUK 1.59- FEATURE: add support for Passkey 9.4.5.2
20230425 .. Download
FindVUK 1.63- CHANGE: better logoutput in case online-upload is disabled
- FEATURE: support to get ReadDataKey (RDK) from Passkey Dump (in case BusEncryption is active)
- FEATURE: validation of Unitkeys is using RDK (in case of BusEncryption)
- CHANGE: speedup during validation - first collect all M2TS files and check if it's encrypted only if required (usually not all files are necessary to validate all unit keys)
- BAD NEWS: Passkey 9.4.5.3 does not provide the UnitKeys any longer in the memory dump - so it's flagged as "not working"
- FEATURE: introduce support for FabPlayer 7 (tested with 7.0.3.6 and it's working)
- FIX: problem with Unitkey Validation
20230626 .. Download
FindVUK 1.64- FIX: do not write an error if a local processing_key, device_key or host_certificate is not available
- FIX: support DVDfab up to 12.1.0.9
20230919 .. Download
FindVUK 1.66- FIX/IMPROVE: support DVDfab up to 12.1.1.5
20230920 .. Download
FindVUK 1.67- FIX: correctly update hash file after keydb sync
20231208 .. Download
FindVUK 1.72- CHANGE: treat unitkeys with lots of 0es with lower priority as local entries so those get uploaded to fvonlinedb during sync
- FEATURE: added basic AACS2 support
- FEATURE: added MakeMKV Libredrive support to disable BusEncryption for validation of UHD discs (see https://forum.makemkv.com/forum/viewtopic.php?t=19029 )
- FEATURE: support for DVDfab 13 (tested with 13.0.0.7)
- FIX: assume logfile for DVDfab 13 is always enabled
- FEATURE: new INI switch "MakeMKV_Libredrive_Enabled" to enable Libredrive support if desired/required - but it's disabled by default