View Single Post
Old 12th August 2015, 21:21   #1  |  Link
nalor
Registered User
 
Join Date: Dec 2013
Posts: 490
FindVUK tool - get VUK of all Blurays supported by DVDfab applications

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:
Quote:
0m 58.68s: got vuk
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:
  1. Select your DVDfab tool of choice (personally I bought a DVDfab Passkey license), download and install it http://www.dvdfab.cn
  2. Download and extract FindVUK into a new directory
  3. 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'
  4. Insert a Blu-ray into your drive
  5. 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
  6. 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)
  7. Repeat the previous 2 steps until you got the VUK for all your Blurays
  8. 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

Last edited by nalor; 9th December 2023 at 00:11. Reason: release 1.72
nalor is offline   Reply With Quote