View Full Version : BlurayTestAndDecrypt - tool to test bluray files and remove AACS
nalor
20th August 2016, 21:45
Created another small tool mainly for my personal needs, but enhanced it a little bit because of @Hironimo s question for a tool to decrypt m2ts files.
In short:
can be used to check if a bluray m2ts or bluray iso file is damaged or not
can be used to remove aacs protection from a bluray m2ts or bluray iso file in case the VUK is available in the keydb.cfg file
can repair BD+ protection damages in case a fixuptable is provided
can dump/rip discs and check the final iso for errors
I've >1000 DVDs in my collection and also >100 Blurays but simply no space in the living rooms - so I decided to rip them all to harddisk and store the discs in the basement. Unfortunately not all rips are 100% correct - I noticed problems during the playback for a few of them and so I started this tool to verify if the iso created from a bluray has errors or not.
This is now 'Mode 1' in the tool. When I copied the decrypt-procedures from FindVUK into this tool I created the other 3 modes.
# Mode 1 - Simple Test
Each m2ts file on a bluray can be sliced into units of 6144 bytes length and the first 16 bytes of each unit are always unprotected and can be used to check 2 details.
In case the 'copy permission indicator' is set to 'unit encrypted': is the mpg-ts-synchronisation-byte of the first mpg-block correct? (this is byte 5 of each unit and has to be 0x47)
And in case it is not protected: check if all synchronisation-bytes are set correctly (unit is further sliced into mpg-transport-packets of 192bytes length) and the synchronisation byte for each packet is verified.
This mode is the fastest test mode and does not require a VUK for the bluray! (but it cannot detect all defective units in encrypted files)
>> this test takes ~3 Min for an encrypted bluray iso read from my internal SSD (it detects 491 error-units in my damaged test-iso file)
# Mode 2 - Test incl. decryption of each encrypted unit
performs the same tests as before and additionally checks if each encrypted unit can be correctly decrypted with VUK (read from keydb.cfg) (>> all synchronisation bytes are set correctly after decryption)
This mode requires a VUK in the local keydb.cfg file for the disc!
>> this test takes ~7 Min for an encrypted bluray iso read from my internal SSD (it detects 514 error-units in my damaged test-iso file)
# Mode 3 - Decrypt but stop on error
Basically the same as Mode 2 - but this time all decrypted units are written to disc but it stops in case a defective unit is encountered.
# Mode 4 - Decrypt but continue on error
Identical to Mode 3 with the small difference that it continues in case of an error (but only successfully decoded units are written to the destination file)
# Mode 5 - ISO2ISO or ISO-Inplace Decrypt (decrypts AACS and repairs BD+)
New mode introduced with 0.41 (ISO-Inplace since 0.61) - complete disc structure remains unchanged!
# Mode 6 - List UnitKeys
New mode introduced with 0.48 - the correct unit keys for all files are listed (nothing get's decrypted - just an info mode)
# Mode 7 - Dump disc and test final iso file for errors
New mode introduced with 0.62
To use it simply drag one of the supported items on the exe-File:
m2ts File
ISO File
a drive letter with a bluray
A few settings can be set in an ini-file, the most important ones are:
AlwaysAskMode >> if set to 1 you get always the menu to select the desired mode, if set to 0 the previous mode is used
AlwaysAskDest >> if set to 1 you'll always have to choose the destination directory, if set to 0 the previous destination directory is used
And now a few words about the BD+ repair feature:
Basically BD+ introduces damages to the video files and usually all the BD+ fuzz is to get hands on the fixup-table to repair those damages.
libbdplus stopped working a long time ago - so at the moment there's no 'open source' way to get hands on fixup tables - but there are commercial applications that help us in this case :)
Pavtube BdMagic is the tool of my choice (honestly I haven't found it myself - got a hint from another member here in the forum - so kudos to him! ) - if you need a table for a disc just start the tool, open the disc and it downloads the table for this and stores it in your userfolder.
BTD now scans all available tables and in case it finds one that matches the current disc if converts it into the 'open source' convtab format and stores the converted table in the directory userfolder\appdata\roaming\bdplus\convtab
You can view those tables with 'ConvTableView' if you're interested.
In case you don't need the Pavtube application for something else, you can set the ini value 'DeletePavtubeTableAfterConversion' to 1 so the source table is always deleted after the conversion to the convtab format.
But be aware that Pavtube is sometimes wrong - I've one disc in my collection were it downloads a fixup table that does not belong to the disc... so usually it's working fine, but sometimes it fails.
Finally the video files are correctly playable - but it's possible that the BD-J menu is not working. Usually the BD+ VM and the BD-J menu interact with each other - and in case the BD+ VM isn't running at all, the menu doesn't load at all (e.g. on the disc 'Hitman' I get a message that my player needs a firmware update - but the original disc plays without problems and in case I'll remove all protections with the fox it's also working as expected - but in this the JAR files of the menu are completely different in comparison to the original files, so this is nothing that can be done easily and will never be part of BTD ;)
History of the tool:
20160820 .. 0.18 First public release
20160821 .. 0.20
FIX: endless loop when multiple files are dragged on the exe
FIX: do not write a single logline for each defective unit
FIX: MemoryLeak in 'AACS_DecryptUnit'
CHANGE: added OnError support (provides useful details in case of a crash)
FEATURE: rename ISO file depending on result (either add (OK) or (ERR) to file) - can be enabled in ini-file
FIX: crash in case a file already starts with a completely empty unit
20161030 .. 0.41
FEATURE: ISO files can be read directly virtual drive not necessary any longer
FEATURE: ISO2ISO decryption possible (complete disc structure remains unchanged, only AACS and BD+ are decrypted/repaired)
FEATURE: BD+ repair with fixuptables
CHANGE: ini parameters to define if mode selection is always possible
CHANGE: ini parameters to define if input of destination folder is always possible
CHANGE: new ini parameter to define if pavtube bd+ tables should get deleted after conversion to convtab format
CHANGE: new bdplus-convtab path: "?FOLDERID_RoamingAppData?\bdplus\convtab" (because \bdplus\ is already used by libbdplus)
FIX: crash in case the file disappears (e.g. unmount of iso)
FIX: error in case an unprotected iso should be checked - now the AACS values are only initialized in case an AACS folder can be found on the disc
20161110 .. 0.42
FIX: check if the outputdir has a \ at the end (stupid error - already implemented check never did something useful :( - fixed it now )
FIX: take care that 1) correct and 2) identical outputdir/file are used for aacs and bd+ processing
20161111 .. 0.43
FIX: drive mode didn't work at all (wrong destination file used - now the name of the destination file is also written to logfile in case it fails)
20161111 .. 0.47
FIX: error processing unencrypted m2ts files
FEATURE: get BD+ fixuptables from leawo blurayplayer
FEATURE: read also mediakey+volumeid or unitkeys from keydb.cfg file
CHANGE: rewrite of logging engine (and splitting 90% of the source into separate modules for easier maintenance)
20170121 .. 0.48
FIX: removed preceding whitespace in loglevelprefix for logoutput
CHANGE: settings module integrated
CHANGE: new mode - list correct unit keys for files
CHANGE: changed to console-mode
CHANGE: added icon
20170203 .. 0.51
CHANGE: new ini parameter to decide if destination file should be deleted in case of an error
BUGFIX: now rename of directories in ISO is working again
BUGFIX: TestSimple repaired
CHANGE: Continue in case of an error in TestAdvanced Mode
CHANGE: after testing in TestSimple mode, rename to OK_SIMPLE or ERR_SIMPLE
CHANGE: less output in console window for test-modes in DRIVE mode (is now identical to ISO mode)
20170228 .. 0.53
BUGFIX: Updated UDF module
CHANGE: Progress Display in Title
20170302 .. 0.54
CHANGE: also support bluray file copies in folders
20180130 .. 0.61
BUGFIX: removed additional empty block (2KB) at the end of an iso2iso decryption
BUGFIX: AlwaysAskDest now also works in 'drive' mode
FEATURE: alternative aacs keydb file can be specified in ini file
FEATURE: Support Undo Files created during BD+ repair (to reverse the repair in case the BD+-FUT file is faulty)
FEATURE: massive speedboost due to internal changes and switch to libgcrypt aes library
CHANGE: small udf support enhancement
FEATURE: new undo-module
FEATURE: iso files now also support to skip AACS decryption and carry on with BD+ and PlaylistObfuscation detection
FEATURE: iso mount now supported with native windows-iso support in Windows8 and later
BUGFIX: Leawo BD+ table are correctly converted now
BUGFIX: PlOb correction should work now (untested)
BUGFIX: error in case an unencrypted file is reached in mode 4 - DecryptISO2ISO
BUGFIX: open ISO file in write mode to allow correction in mode 9 (correct playlist obfuscation)
BUGFIX: removed automatic switch to inplace decryption for ISO2ISO in case destination file already exists
BUGFIX: calculation of progress for iso files corrected
FEATURE: request acknowledge from user for InPlace decryption
BUGFIX: do not ask for destination directory in case InPlace decryption is requested
20180319 .. BTAD 0.62
BUGFIX: udf implementation ignored 'ImplementationUse' -> failed to parse disc 'RED_BIRD_2D_F2'
FEATURE: mode 'Dump and Test' to rip discs from drive and test the resulting ISO file
20180321 .. BTAD 0.63
BUGFIX: udf implementation ignored 'ImplementationUse' (also fixed in 2nd location _UDF_readwriteFileIdentifierDescriptor )
20180324 .. BTAD 0.64
BUGFIX: udf implementation ignored 'ImplementationUse' (also fixed in 3rd location BRUDF_File_Rename )
20181015 .. BTAD 0.70
CHANGE: new keydb-module
BUGFIX: udf implementation
CHANGE: required changes for changed aacs module
FEATURE: simple test for DVD VOB files
FEATURE: test of DVD-ISO files (only if DVD filesystem is valid - if files in directory \VIDEO_TS are identical in ISO9660 and UDF filesystem and also check if .IFO and .BUP files have identical size)
BUGFIX: udf implementation (do not write error in case an entry does not have allocation extents)
BUGFIX: correctly determine old scan result in case it has been 'ERR_Simple' (do not rename again .. )
20191212 .. BTAD 0.77
FEATURE: added test-filesystem mode for bluray isos (to check if there's an ISO9660 filesystem available)
FIX: memory leak in drive_ms
FIX: correctly calculate UnitKeys when decrypting UDF ISO files
FIX: alloc mem error corrected when dumping drive to iso
FIX: crash after dump/before validation
FIX: error renaming AACS to BTD! after iso2iso decoding
FEATURE: add progress to title when dumping drive
20200420 .. Download BTAD 0.79 (fvonline-db.bplaced.net/bluraytest/BlurayTestAndDecrypt_0.79.zip)
FIX: invalid memory access when trying to decode BD+ protected discs
FIX: open keydb-file in shared readonly mode
20210810 .. Download BTAD 0.80 (fvonline-db.bplaced.net/bluraytest/BlurayTestAndDecrypt_0.80.zip)
FIX: failed to properly parse multiple unit keys separated by | without spaces (therefore the test and decryption failed in case the first unit key is not the correct one)
20210810 .. Download BTAD 0.81 (fvonline-db.bplaced.net/bluraytest/BlurayTestAndDecrypt_0.81.zip)
FIX: replace special characters before creating files
20230425 .. Download BTAD 0.94 (fvonline-db.bplaced.net/bluraytest/BlurayTestAndDecrypt_0.94.zip)
FEATURE: added benchmark mode
FIX: mode from ini file not always correctly detected as supported when askmode=0
FEATURE: use RDK for BusDecryption
CHANGE: in case there's not enough free space available, also show the available amount
CHANGE: normalize all "drive" parameters to x:\ (e.g. "x" or "x:")
CHANGE: store and restore window position on exit/start
CHANGE: adjust used colours
CHANGE: show progress in titlebar during simple or advanced test
CHANGE: create BD+ FUT tables with 'mediakey' in name
FEATURE: if XREVEAL is installed also create the BD+ FUT table in it's directory (in case it's different from the default directory)
CHANGE: add option for auto-update
20260718 .. Download BTAD 1.01 (https://fvonline-db.bplaced.net/bluraytest/BlurayTestAndDecrypt_1.01.zip)
CHANGE: it's now a x64 executable (64bit vs. the 32bit in previous builds)
CHANGE: changed dump-drive internals from windows api to pure MMC calls - as result the size is exactly as provided by the drive (using windows api the last 288 blocks with the backup of the udf file structure are missing) - so new dumps are "slightly" larger, although the additional data is only a copy of the data already included in the first 288 blocks of the image.
FIX: from time to time old preferences where removed as not supported any longer, but in 2023 this "removal" stopped working. Root cause has been fixed and all entries, that should have been removed in the meantime, are now really removed
CHANGE: include linenumber in logfiles for easier support in case of errors
CHANGE: selecting to "exit" the application now properly bubbles this information up the the main procedure to perform a "clean" exit instead of a hard immediate exit
FIX: do not finish with >100% progress when checking a drive (was only an UI issue)
FEATURE: for decryption of a BD+ protected disc the proper fixup tables are required - those are now automatically downloaded from the online database (URL is configurable in the settings - if no download is desired, delete the url from the settings)
FEATURE: also for BD+: now the filenames starting with MediaKey as defined by @candela in his post here are also working: Blu-ray playback with libaacs & libbdplus (https://forum.doom9.org/showthread.php?p=1886086#post1886086) - so no need to manually rename them
Various other changes/fixes (BTAD uses a lot of shared source with FindVUK and so lot's of changes created for FV are now included in the BTAD build)
candela
13th September 2016, 21:11
It is somewhat confusing that you need to delete the ini to select a different mode. You could print this info in the window maybe. Also first I thought you could drag files into the window, but you need to close and drag onto the exe. Btw, check PM
nalor
13th September 2016, 21:19
Hi - I know the version available here has a few bugs that I noticed while testing my own images... so it's still not perfect.
At the moment I'm trying to parse the ISO files with UDF filesystem directly to create 1:1 copies of isos with only AACS getting removed.
The easiest way to choose between different modes without deleting the ini files every time is by creating multiple copies of the exe with different filenames - usually the name of the ini follows the name of the exe, so although it might not be the best solution it should do the trick.
candela
15th September 2016, 21:28
Btw, have you tried comparing decrypted files from your tool with DVDFab decrypted ones? I sometimes get many differences compared to DVDFab (which are not BD+ related 5-bytes errors). Your images seem to be the same as DumpHD though
dizzier
15th September 2016, 21:45
Btw, have you tried comparing decrypted files from your tool with DVDFab decrypted ones? I sometimes get many differences compared to DVDFab (which are not BD+ related 5-bytes errors). Your images seem to be the same as DumpHD though
Note that there is a copy protection indicator in each aligned unit (each 6144 bytes of m2ts file). It states if the unit is encrypted or not. Some software clears it after decryption (libaacs does), some not (I believe MakeMKV does not, but it was a long time since I've last checked). Search http://git.videolan.org/?p=libaacs.git;a=blob;f=src/libaacs/aacs.c for 0xc0 to see what I mean. Those obviously will generate a lot of differences in decrypted files.
nalor
15th September 2016, 21:46
Btw, have you tried comparing decrypted files from your tool with DVDFab decrypted ones? I sometimes get many differences compared to DVDFab (which are not BD+ related 5-bytes errors). Your images seem to be the same as DumpHD though
Hi! No, never tried. Basically all I'm doing is the AES decryption (and as I can detect all mpeg headers in the result I don't think that there's something that could go wrong without being noticed) and I'll remove the 'aacs encrypted' flag.
So honestly there's not much that can go wrong...
(but I've already noticed in the past that dvdfab isn't really verifying if the created files are really correct. e.g. in case the source cannot be read properly it simply writes wrongly decrypted blocks into the destination file... )
candela
15th September 2016, 21:54
Note that there is a copy protection indicator in each aligned unit (each 6144 bytes of m2ts file). It states if the unit is encrypted or not. Some software clears it after decryption (libaacs does), some not (I believe MakeMKV does not, but it was a long time since I've last checked). Search http://git.videolan.org/?p=libaacs.git;a=blob;f=src/libaacs/aacs.c for 0xc0 to see what I mean. Those obviously will generate a lot of differences in decrypted files.
This would result in 1 byte errors spaced 6144 bytes or 192 bytes apart no? this is not the case
I used TSPE - Transport Stream Packet Editor / Analyser (http://www.bitstreamtools.com/Theory/Timecodes/index.php) (anyone have the old freeware version of this tool?) to scan the rips of a BD+ disc and VLC to play them:
- BlurayTest&Decrypt (remove AACS): TSPE = OK, VLC = corruption since BD+ is not removed
- DumpHD (remove AACS & BD+): TSPE = PMT continuity & CRC errors, VLC = OK
- DVDFab (remove AACS & BD+): TSPE = OK, VLC = OK
So I'm thinking it's either:
- DumpHD contains bugs writing the M2TS
- applying BD+ patches fixes errors on video PES level but introduces errors on M2TS packet level which must be fixed. After demuxing, the elementary video and audio streams are identical between DumpHD and DVDFab so it seems DVDFab is doing this
- BD+v3 conversion table produced by DumpHD and DVDFab ;) contains errors and patches wrong things
Update: tested some other discs and they all have errors according to TSPE so can't draw any real conclusions. DVFab seems to alter the streams for an unknown reason after decrypting, which is quite annoying
candela
3rd October 2016, 11:13
There are some problems with relative paths on command line
1) works:
- BlurayTestAndDecrypt.exe F:\BDMV\STREAM\00001.m2ts
2) doesn't work:
- cd F:\BDMV\STREAM
- C:
- BlurayTestAndDecrypt.exe F:00001.m2ts
3) doesn't work:
- F:
- cd F:\BDMV\STREAM
- BlurayTestAndDecrypt.exe 00001.m2ts
(scenarios from memory, may not be 100% accurate :))
nalor
30th October 2016, 01:16
There are some problems with relative paths on command line
1) works:
- BlurayTestAndDecrypt.exe F:\BDMV\STREAM\00001.m2ts
2) doesn't work:
- cd F:\BDMV\STREAM
- C:
- BlurayTestAndDecrypt.exe F:00001.m2ts
3) doesn't work:
- F:
- cd F:\BDMV\STREAM
- BlurayTestAndDecrypt.exe 00001.m2ts
(scenarios from memory, may not be 100% accurate :))
Honestly never tried it that way.. basically only 'absolute' paths are supported - tried to check for invalid path arguments in 0.41.
nalor
30th October 2016, 01:20
Just released BTD 0.41
2 major new features:
# integrated UDF support - this allows to directly read from iso files without the need for a virtual drive in between and also direct ISO2ISO decrypting
# BD+ repair support - with the help of fixup tables that can be downloaded with Pavtube BdMagic it's possible to repair the BD+ damages (you're not limited to Pavtube - but for me it's the most convenient way...)
Hopefully it's working well :)
candela
10th November 2016, 01:32
I found several errors while attempting to decrypt single files:
1)
DecryptDestination = D:\BDMV\
01:19:25 - Detected File >F:\BDMV\STREAM\00801.m2ts<
01:19:31 - Decrypt OutputDir: D:\BDMV\C981D0350CD9AD659EC4832E59D94B56963F0229_THE_BOOK_OF_LIFE\
01:21:57 - MODULE.BDPLUS [E] ERROR! Sourcefile invalid >D:\BDMV\C981D0350CD9AD659EC4832E59D94B56963F0229_THE_BOOK_OF_LIFE\00801.m2ts<
=> error because file is actually saved as
D:\BDMV\00801.m2ts
2)
DecryptDestination = D:\BDMV
2016-11-10 00:35:32 # 12678897 # MODULE.BDPLUS [E] ERROR! Sourcefile invalid >D:\BDMV\C981D0350CD9AD659EC4832E59D94B56963F0229_THE_BOOK_OF_LIFE\00801.m2ts<
=> error because file is actually saved as
D:\BDMV00801.m2ts (file & dir combined)
3) update: actually it also happens if I try to decrypt F:, it saves the files in a wrong dir
nalor
10th November 2016, 20:08
Already on it...
nalor
10th November 2016, 21:39
I found several errors while attempting to decrypt single files:
1)
DecryptDestination = D:\BDMV\
01:19:25 - Detected File >F:\BDMV\STREAM\00801.m2ts<
01:19:31 - Decrypt OutputDir: D:\BDMV\C981D0350CD9AD659EC4832E59D94B56963F0229_THE_BOOK_OF_LIFE\
01:21:57 - MODULE.BDPLUS [E] ERROR! Sourcefile invalid >D:\BDMV\C981D0350CD9AD659EC4832E59D94B56963F0229_THE_BOOK_OF_LIFE\00801.m2ts<
=> error because file is actually saved as
D:\BDMV\00801.m2ts
2)
DecryptDestination = D:\BDMV
2016-11-10 00:35:32 # 12678897 # MODULE.BDPLUS [E] ERROR! Sourcefile invalid >D:\BDMV\C981D0350CD9AD659EC4832E59D94B56963F0229_THE_BOOK_OF_LIFE\00801.m2ts<
=> error because file is actually saved as
D:\BDMV00801.m2ts (file & dir combined)
3) update: actually it also happens if I try to decrypt F:, it saves the files in a wrong dir
Please try the new 0.42 - hopefully it fixes the problems, if not come back to me - thanks :)
candela
11th November 2016, 13:38
Now it works if I drag a single file but when I drag the drive F: it gives
13:34:13 - Decrypt OutputDir: D:\BDMV\C981D0350CD9AD659EC4832E59D94B56963F0229_THE_BOOK_OF_LIFE\
13:34:13 - #### TEST ###################################################################
13:34:13 - #############################################################################
13:34:13 - On Drive >f:< - 1/116 - File >f:\BDMV\STREAM\00009.m2ts< Mode >Decrypt - StopOnError<
13:34:13 - ERROR! Couldn't create destination file!
13:34:13 - Duration >0:00:00<
13:34:13 - #############################################################################
13:34:13 - On Drive >f:< - 2/116 - File >f:\BDMV\STREAM\00010.m2ts< Mode >Decrypt - StopOnError<
13:34:13 - ERROR! Couldn't create destination file!
nalor
11th November 2016, 22:50
Now it works if I drag a single file but when I drag the drive F: it gives
Fixed - someday I should start to test releases before I publish them...
candela
12th November 2016, 12:30
At first glance, 0.43 seems to be working now. After many years we again have a free tool for ripping and BD+ repair, hurrah :thanks:
spotter
17th November 2016, 17:12
Ah, this is a tool I've been looking for, but there's one feature that would be awesome.
Imagine I have a bluray that is damaged (scratched), I can ddrescue as much of it as I can (i.e. copies it sector by sector and keeps a map of what it couldn't read), I can then ddrescue a different disc (even if also damaged) to fill in the missing sectors. I can generate an encrypted iso this way.
Now, since I have the disk, your tool should be able to generate the appropriate decryption keys via the drive but use them to decrypt the complete iso. Would help for discs whose VUK isn't in the keydb.
spotter
17th November 2016, 18:00
also any chance you would want to make this a project on github? Ex: I'd like to get it working within linux.
nalor
17th November 2016, 18:49
Ah, this is a tool I've been looking for, but there's one feature that would be awesome.
Imagine I have a bluray that is damaged (scratched), I can ddrescue as much of it as I can (i.e. copies it sector by sector and keeps a map of what it couldn't read), I can then ddrescue a different disc (even if also damaged) to fill in the missing sectors. I can generate an encrypted iso this way.
Now, since I have the disk, your tool should be able to generate the appropriate decryption keys via the drive but use them to decrypt the complete iso. Would help for discs whose VUK isn't in the keydb.
Thanks for your post - but unfortunately BTAD cannot retrieve decryption keys for anything... all it does (test or decrypt a disc or files) is only possible in case the VUK is already known.
And to get the VUK you can already use FindVUK - although it's limited to Windows because it relies on the tools from DVDfab it's also possible to get the VUK for scratched discs and iso files on harddrive.
So finally I think you can get the VUK with FindVUK and afterwards decrypt your rescued iso with BTAD.
spotter
17th November 2016, 18:53
ok, that makes sense, source to this tool would be nice, unless you have some other goal in mind for it which precludes that.
nalor
17th November 2016, 19:05
also any chance you would want to make this a project on github? Ex: I'd like to get it working within linux.
I'll publish the source on github after adding the last 1 or 2 features I'd like to implement.
It's written in Purebasic - and this language also supports linux (but I've never tried to compile something for linux... so I don't know how easy it will be).
spotter
17th November 2016, 20:30
I've never used pure basic, but i can help with getting it compiled on linux. I'm assuming you are are using the standard libraries libaacs libbdplus libraries from purebasic?
nalor
17th November 2016, 21:52
I've never used pure basic, but i can help with getting it compiled on linux. I'm assuming you are are using the standard libraries libaacs libbdplus libraries from purebasic?
Reimplemented the necessary parts directly in purebasic ;)
So nothing external necessary to take into account.
spotter
29th November 2016, 06:26
weird Q, do you know how to handle bus encryption? In that case my ddrescue method would probably need to be implemented in place of whatever tool is doing the "bus decryption" unless its possible to authenticate to the drive and then reads just work as expected? (don't know enough about bus encryption obviously)
dizzier
30th November 2016, 12:44
Bus encryption is handled by libaacs if you have a working host certificate (which we have). Pretty nice description is available on libaacs git: http://git.videolan.org/?p=libaacs.git;a=commit;h=583df16fa867ccda948a6c760ee8912684fb7b9d
Most discs do not implement bus encryption anyway, so it probably is not really a big problem.
spotter
30th November 2016, 17:53
ok, what that means to me is that my ddrescue type method to recover damaged disks will not work with a bus encrypted disc.
I was hoping it was more along the lines if you cryptographically authenticate to the player/drive/disc than any read will be unencrypted otherwise the drive will encrypt/mangle it, but guess that's not the case and that it's actually a generation of a "dynamic" key that is used to encrypt (in drive) and decrypt (in player) the data.
my current ddrescue methodology is essentially
ddresccue -> iso (repeat until one gets it 100% might require multiple media copies, but all can be damaged)
BlurayTestAndDecrypt -> decrypted iso
(and I'm trying to see how dvdfab/anydvd act on a encrypted and decrypted iso, would they decrypt an iso, would they remove the "structural" (i.e. non crypto) protections from a decrypted iso)
I guess its good that not many discs use it then.
hubblec4
10th December 2016, 14:18
I want to test your tool, but after download I get a warning from Waterfox that this file is a Virus or Malware.
candela
29th December 2016, 23:49
1) There appears to be a problem with non-encrypted m2ts file in mode 3/4 (mode 2 works fine)
Mode3
2016-12-29 23:32:24 # 1000472648 # On Drive >F:\< - 1/46 - File >F:\BDMV\STREAM\00002.m2ts< Mode >Decrypt - StopOnError<
2016-12-29 23:32:24 # 1000472657 # Bluray_TestDecryptFile - SrcFile >F:\BDMV\STREAM\00002.m2ts< DstFile >D:\BDMV\EE59C14A4AD80A352295D2CDC7CF349F90E34250_ROPE_G51\00002.m2ts<
2016-12-29 23:32:24 # 1000472723 # Filename >F:\BDMV\STREAM\00002.m2ts< Size GB > 0.00< Unit_Enc > 0< Unit_Unenc > 9< Unit_Err > 0< Duration >0:00:00< DECS
2016-12-29 23:32:24 # 1000472734 # Something went terribly wrong - filesize different!!! Src >55296<Dst >-1<
Mode2
2016-12-29 23:45:40 # 1001268631 # 1/1 - Srcfile >F:\BDMV\STREAM\00002.m2ts< Mode >Test - AdvancedTest<
2016-12-29 23:45:40 # 1001268639 # Bluray_TestDecryptFile - SrcFile >F:\BDMV\STREAM\00002.m2ts< DstFile >D:\BDMV\00002.m2ts<
2016-12-29 23:45:40 # 1001268699 # Filename >F:\BDMV\STREAM\00002.m2ts< Size GB > 0.00< Unit_Enc > 0< Unit_Unenc > 9< Unit_Err > 0< Duration >0:00:00< TSTA
2016-12-29 23:45:40 # 1001268714 # Duration >0:00:00<
2016-12-29 23:45:40 # 1001268726 # Overall duration >0:00:00<
2) changing the DebugLog value in the ini doesn't appear to affect the log files, I always get the same information
3) Can you built in support for KEYDB.cfg entries with other keys than VUK:
- 1 or more UnitKey
- MK + VID
nalor
30th December 2016, 23:55
ok, what that means to me is that my ddrescue type method to recover damaged disks will not work with a bus encrypted disc.
Best option: use a drive that is not bus-encryption-capable :D
This way there's no need to worry if a disc is bus-encryption-enabled or not.
nalor
31st December 2016, 00:02
I want to test your tool, but after download I get a warning from Waterfox that this file is a Virus or Malware.
I know - this topic is a neverending story... I'm using purebasic to write my tools and there's something in the exe files that is suspicous to a few anti-virus/malware tools (take a look at the findvuk thread, I've tried to find a way to circumvent the problem but finally gave up because it's simply not possible without changing the dev-language or something like this.).
I'll promise that I've never and will never integrate harmful procedures into my tools - but finally it's up to you if you want to trust me or not.
nalor
31st December 2016, 00:11
1) There appears to be a problem with non-encrypted m2ts file in mode 3/4 (mode 2 works fine)
Need to check - I know I've fixed a few bugs since my last release, but unfortunately also started to 'modularize' parts of the code and haven't finished yet.
2) changing the DebugLog value in the ini doesn't appear to affect the log files, I always get the same information
Debug log is only available in very few areas of the code - my current refactoring will introduce different loglevels that are available in all areas - so once I'm finished it should be easier to get more logoutput ;)
3) Can you built in support for KEYDB.cfg entries with other keys than VUK:
- 1 or more UnitKey
- MK + VID
Should be possible - but need to finish the other work before I'll start to implement this one.
nalor
5th January 2017, 22:51
Released a new build - it fixes the problem reported by candela and also introduces the ability to decrypt files with mediakey+volumeid or unitkeys from keydb.cfg file.
But I have to admit that I haven't tested this feature... so please keep me posted if it's working as expected :D
I've changed the logging procedure and splitted the source into lot's of smaller modules and it's possible to set the loglevel for each module as you want.
There's a new entry in the ini file called 'LogLevel' and usually only a 'Default' entry is present and set to level 2='INFO'
Logentries look like:
2017-01-05 22:28:20 # 13865088 # [I] bluray_udf / _UDF_Parse_FileSystem /
format is:
date+time - milliseconds - loglevel - module - procedure - logentry
so in case you want for example less logoutput for the 'bluray_udf' module, simply add a line 'bluray_udf=1' into the loglevel ini section and now only errors and warnings are logged.
I made a few simply tests and I think it should work :)
In case of errors just come back to me and I'll try to fix them.
candela
6th January 2017, 01:32
Some basic test shows the unencrypted m2ts bug is fixed and it works with only a unitkey.
Btw, if a unitkey is missing (eg multiple unitkeys required but only 1 known) you get an error but the file isn't copied. Perhaps there should be an option to copy the file encrypted. Then the encryption can still be removed later if a "better" key is found
spotter
8th January 2017, 08:38
Best option: use a drive that is not bus-encryption-capable :D
This way there's no need to worry if a disc is bus-encryption-enabled or not.
true, and it turns out the drive in my linux box where I make the ddrescue copies doesn't have bus encryption, but if this drive dies, then will be hard to replace.
nalor
8th January 2017, 11:12
true, and it turns out the drive in my linux box where I make the ddrescue copies doesn't have bus encryption, but if this drive dies, then will be hard to replace.
This is the reason why I started this thread here: List of bluray-drives with their features (e.g. BusEncryptionCapable) (http://forum.doom9.org/showthread.php?t=172914)
This way it's easier to get a replacement drive :)
spotter
8th January 2017, 21:56
I understand, just that the vast majority (if not all?) of the ones without bus encryption aren't readily available.
nalor
8th January 2017, 22:23
When I check my local online flee market I find a lot of available drives without bus encryption.
You cannot buy them new, but it's easy to find used drives.
Gesendet von meinem E5823 mit Tapatalk
hubblec4
13th January 2017, 21:53
I know - this topic is a neverending story... I'm using purebasic to write my tools and there's something in the exe files that is suspicous to a few anti-virus/malware tools (take a look at the findvuk thread, I've tried to find a way to circumvent the problem but finally gave up because it's simply not possible without changing the dev-language or something like this.).
I'll promise that I've never and will never integrate harmful procedures into my tools - but finally it's up to you if you want to trust me or not.
Thanks for this info.
I was wondering because I have no AntiVirus software installed.
And I have never seen before a virus warning directly from Waterfox.
nalor
21st January 2017, 00:13
Released a new version - the only relevant change is a new mode to list the correct unit key for all files.
nalor
3rd February 2017, 22:22
Release 0.51 - includes 2 bug fixes that can be relevant in case you're using either testmode-simple or testmode-advanced
Hironimo
27th February 2017, 19:15
Hey there, Nalor.
I just recently noticed your tool that was partially inspired by me (blush), I only accidentally found it.
I tried it out after another tool to decrypt the disk produced a main file that was garbled with decoding errors.
It seems now that I tried to decode with your tool that it is a BD+ disc, and that is probably the cause.
I noticed an issue when handling a disc with BD+ protection (using Pavtube BDMagic):
18:15:25 - Check if disc is BD+ protected
18:15:25 - Disc is BD+ protected!
18:15:25 - BD+ details - Date 2016.04.15 Gen 254
18:15:25 - Matching BDPLUS table file found >C:\Users\<username redacted>\.bdkeys\257B5EEC855AB389582B5C934D0C9D06\table< - Format: Pavtube
18:15:25 - ERROR! bluray_bdpfixuptable-BRFUT_ConvertPavtube2Convtab - ERROR! Cannot create directory >C:\Users\<username redacted>\AppData\Roaming\bdplus\convtab\<
18:15:25 - WARN! Converting of PAVTUBE to CONVTAB failed - carry on with pavtube file. Error >#FUT_ERR_DIR_CREATE (-807)
18:15:25 - ERROR! Couldn't get a matching fixup table - error >#FUT_ERR_DIR_CREATE (-807)
I did this with a console with administrative privileges, just to be sure.
After I created the directory in question myself, the process created the file in the directory and proceeded with execution.
I noticed some inconveniences of your tool:
When trying mode 3 or 4 it does not seem to be possible to provide an m2ts file, or even a drive letter that contains the necessary data but is not a BD drive, for that matter.
Mode 2 seems to work however. I don't understand what the difference between mode 2 and mode 4 is, though, as mode 2 scans and apparently decrypts the file too,
and that works, and 3 and 4 do not. Or did I understand something wrong?
It will either complain
18:52:56 - >> Mode >2<
18:52:56 - >> DecryptDest >C:\Temp\<
18:52:56 - List of files being processed:
18:52:56 - Detected File >C:\Temp\Deadpool_encrypted\BDMV\STREAM\02577.m2ts<
18:52:56 - VolumeName: Main Win10
18:52:56 - Disc is not AACS protected (there's no AACS folder on the disc)
18:52:56 - INFO! no AACS folder on disc, so there's no decryption possible/necessary!
I'd like that it is possible to work on a BD content that I copied over to a directory on harddrive/SSD, and not available as disc directly or as ISO.
Btw, what is the tool of your choice to read the original BD into an ISO? I'd like a simple one that does the job but without being completely embedded in some GUI.
On another note, I got interested about he background workings of BD.
Can you explain what you know about blu-rays that are BD+ encrypted? How does it work?
Does that mean that basically any BD+ discs are not supported fully when you just have the VUK?
Also, is there good documentation that documents how Blu-ray Encryption and thus Encryption works,
preferably for someone who knows how to code, possibly interested to decrypt, but not going into
extreme detail.
I'm currently running a decryption run on one of my discs.
Btw, the disc in question apparently only has BD+ protection on the main m2ts file, the others worked fine just with plain BD decryption.
Is that common?
Hope that works out well, I'll possibly update if I run into more issues.
Hironimo
27th February 2017, 19:54
Update:
I ran through the disc in mode 4 (and later mode 5, see below), providing the drive letter of the drive.
The log seems fine (just the section of the main file, plus the one before and after):
2017-02-27 18:19:30 # 22835412 # [I] main / legacy / Duration >0:00:01<
2017-02-27 18:19:30 # 22835413 # [I] main / legacy / #############################################################################
2017-02-27 18:19:30 # 22835414 # [I] main / legacy / On Drive >G< - 97/156 - File >G:\BDMV\STREAM\01741.m2ts< Mode >Decrypt - ContinueOnError<
2017-02-27 18:19:30 # 22835414 # [I] main / legacy / Bluray_TestDecryptFile - SrcFile >G:\BDMV\STREAM\01741.m2ts< DstFile >C:\Temp\7C6BA7769B9FFCB4583F703B14C5072D85BD9E94_Deadpool\01741.m2ts<
2017-02-27 18:20:16 # 22881511 # [I] main / legacy / Filename >G:\BDMV\STREAM\01741.m2ts< Size GB > 0.28< Unit_Enc > 49397< Unit_Unenc > 0< Unit_Err > 0< Duration >0:00:46< DECC
2017-02-27 18:20:16 # 22881533 # [I] main / legacy / Duration >0:00:46<
2017-02-27 18:20:16 # 22881534 # [I] main / legacy / #############################################################################
2017-02-27 18:20:16 # 22881535 # [I] main / legacy / On Drive >G< - 98/156 - File >G:\BDMV\STREAM\02577.m2ts< Mode >Decrypt - ContinueOnError<
2017-02-27 18:20:16 # 22881535 # [I] main / legacy / Bluray_TestDecryptFile - SrcFile >G:\BDMV\STREAM\02577.m2ts< DstFile >C:\Temp\7C6BA7769B9FFCB4583F703B14C5072D85BD9E94_Deadpool\02577.m2ts<
2017-02-27 19:42:14 # 27799621 # [I] main / legacy / Filename >G:\BDMV\STREAM\02577.m2ts< Size GB > 27.11< Unit_Enc > 4737773< Unit_Unenc > 0< Unit_Err > 0< Duration >1:21:58< DECC
2017-02-27 19:42:14 # 27799642 # [I] main / legacy / Duration >1:21:58<
2017-02-27 19:42:14 # 27799642 # [I] main / legacy / #############################################################################
2017-02-27 19:42:14 # 27799643 # [I] main / legacy / On Drive >G< - 99/156 - File >G:\BDMV\STREAM\02616.m2ts< Mode >Decrypt - ContinueOnError<
2017-02-27 19:42:14 # 27799643 # [I] main / legacy / Bluray_TestDecryptFile - SrcFile >G:\BDMV\STREAM\02616.m2ts< DstFile >C:\Temp\7C6BA7769B9FFCB4583F703B14C5072D85BD9E94_Deadpool\02616.m2ts<
2017-02-27 19:42:34 # 27819353 # [I] main / legacy / Filename >G:\BDMV\STREAM\02616.m2ts< Size GB > 0.12< Unit_Enc > 21820< Unit_Unenc > 0< Unit_Err > 0< Duration >0:00:19< DECC
2017-02-27 19:42:34 # 27819363 # [I] main / legacy / Duration >0:00:19<
2017-02-27 19:42:34 # 27819363 # [I] main / legacy / #############################################################################
However the generated file, while playable, still has the issues that video is garbled (you can see it is deadpool, but cannot enjoy it) the same way it was with the tool I previously used (Blu-ray Disc Ripper 1.5).
Maybe BD+ repair is only applied in mode 5?
If so, i think it would make sense to repair it - if possible - in any mode that produces decrypted output, unless specified in the ini BD+ repair is not wanted.
Since I thought I give mode 5 a try I created an ISO file of the disk and let it run with mode 5.
I might note that there were 37 sectors that it could not read properly, but I think that should not account for the below issues.
It ran through without real errors, except at the end when it was finished but waiting to finish.
This is the last part of the log (the whole is much too long to post):
2017-02-27 22:59:45 # 39650624 # [D] bluray_aacs / BRAACS_AutoDetectUnitKey / readable unit found
2017-02-27 22:59:45 # 39650624 # [D] bluray_aacs / BRAACS_AutoDetectUnitKey / Select UnitKey >1<
2017-02-27 22:59:45 # 39650624 # [D] bluray_aacs / BRAACS_AutoDetectUnitKey / Correct UnitKey found! >1<
2017-02-27 22:59:45 # 39650626 # [I] bluray_udf / UDF_ReadLogicalBlock / ###################### BLOCK 24356992 # 0x0000000B9D440000 LEN 216 ######################
2017-02-27 22:59:45 # 39650634 # [I] bluray_udf / UDF_WriteLogicalBlock / ++++++++++++++++++++++ WRITE-BLOCK 24356992 LEN 216++++++++++++++++++++++
2017-02-27 22:59:45 # 39650634 # [I] main / legacy / ++ COPY ++ Pct >100.00< StartBlock >24357208< BlockLen >00001000<
2017-02-27 22:59:45 # 39650640 # [I] bluray_udf / UDF_ReadLogicalBlock / ###################### BLOCK 24357208 # 0x0000000B9D4AC000 LEN 1000 ######################
2017-02-27 22:59:45 # 39650641 # [I] bluray_udf / UDF_WriteLogicalBlock / ++++++++++++++++++++++ WRITE-BLOCK 24357208 LEN 1000++++++++++++++++++++++
2017-02-27 22:59:45 # 39650642 # [I] main / legacy / ++ COPY ++ Pct >100.00< StartBlock >24358208< BlockLen >00000075<
2017-02-27 22:59:45 # 39650642 # [I] bluray_udf / UDF_ReadLogicalBlock / ###################### BLOCK 24358208 # 0x0000000B9D6A0000 LEN 75 ######################
2017-02-27 22:59:45 # 39650642 # [I] bluray_udf / UDF_WriteLogicalBlock / ++++++++++++++++++++++ WRITE-BLOCK 24358208 LEN 75++++++++++++++++++++++
2017-02-27 22:59:45 # 39650642 # [I] bluray_udf / UDF_CloseIso /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_CloseIso ++++ File >c:\Temp\7C6BA7769B9FFCB4583F703B14C5072D85BD9E94_Deadpool.iso< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2017-02-27 22:59:45 # 39650645 # [I] main / legacy / All blocks copied into >C:\Temp\7C6BA7769B9FFCB4583F703B14C5072D85BD9E94_Deadpool_decrypted.iso< - rename AACS folder to BTD! now
2017-02-27 22:59:45 # 39650645 # [I] bluray_udf / UDF_File_Rename /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_File_Rename ++++ Filename >\AACS< NewFilename >BTD!<++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2017-02-27 22:59:45 # 39650645 # [I] bluray_udf / _UDF_readFileIdentifierDescriptor /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ _UDF_readFileIdentifierDescriptor ++++ Filename >\AACS< iAllowFidType >0< ++++\n++++++++++++++++++++++++++++++++++++++++++++++++++
2017-02-27 22:59:45 # 39650645 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ _UDF_readwriteFileIdentifierDescriptor ++++ Filename >\AACS< *FidToWrite >0< AllowFidType >0< ++++\n++++++++++++++++++++++++++++++++++++++++++++++++++
2017-02-27 22:59:45 # 39650645 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / File >\AACS< Size >0< FID/Part >1< FID\Block >2< FID\Offset >84< FID\Length >224<
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / UDF_ReadLogicalBlock / ###################### BLOCK 322 # 0x00000000000A1000 LEN 0.109375 ######################
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / ++++ File Identifier Descriptor ++++
2017-02-27 22:59:45 # 39650647 # [D] bluray_udf / _UDF_readwriteFileIdentifierDescriptor /
>>> ICB Location >1129< PartRefNr >1< Length >2048<
LengthOfFileIdentifier >5<
LengthOfImplementationUse >0<
FileVersionNumber >1<
FileCharacteristics >2<
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / FileIdentifier >AACS<
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / Correct file found - read mode
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / UDF_File_Rename / FileIdentifier changed in memory to >BTD!<
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_writeFileIdentifierDescriptor /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ _UDF_writeFileIdentifierDescriptor ++++ Filename >\AACS< *FidToWrite >11370064< iAllowFidType >0< ++++\n++++++++++++++++++++++++++++++++++++++++++++++++++
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ _UDF_readwriteFileIdentifierDescriptor ++++ Filename >\AACS< *FidToWrite >11370064< AllowFidType >0< ++++\n++++++++++++++++++++++++++++++++++++++++++++++++++
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / File >\AACS< Size >0< FID/Part >1< FID\Block >2< FID\Offset >84< FID\Length >224<
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / UDF_ReadLogicalBlock / ###################### BLOCK 322 # 0x00000000000A1000 LEN 0.109375 ######################
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / ++++ File Identifier Descriptor ++++
2017-02-27 22:59:45 # 39650647 # [D] bluray_udf / _UDF_readwriteFileIdentifierDescriptor /
>>> ICB Location >1129< PartRefNr >1< Length >2048<
LengthOfFileIdentifier >5<
LengthOfImplementationUse >0<
FileVersionNumber >1<
FileCharacteristics >2<
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / FileIdentifier >AACS<
2017-02-27 22:59:45 # 39650647 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / Correct file found - write mode
2017-02-27 23:00:49 # 39714764 # [I] main / legacy / A program error was detected:
Error Message: Invalid memory access
Error Code: -1073741819
Code Address: 1957864770
Target Address: 11370496
Sourcecode line: 1170
Sourcecode file: U:\PUREBASIC\~MODULE\mod.bluray_udf.pbi
It says there on the command line:
22:59:45 - All blocks copied into >C:\Temp\7C6BA7769B9FFCB4583F703B14C5072D85BD9E94_Deadpool_decrypted.iso< - rename AACS folder to BTD! now
However I have no idea what to actually do (can't rename a folder on a read-only disk, and I thought I can't access/change anything on an ISO file.
So I just hit return (or was it escape?) and the program ended and I got the error in the log.
The iso file is mountable and the result of the m2ts files is the same: looked at others by random beside the main one and it seemed fine, but the main file is garbled (lots of h264 decode errors).
Can you help?
nalor
28th February 2017, 09:47
Hi! I already fixed the InvalidMemoryAccess error a while ago - but haven't posted a new release in the meantime.. will post my current release this evening when I'm back home again.
I'll change the code to support also support simple file-copies of discs in subdirectories - I already though about this in the past, but as nobody ever complained about it and I don't need it I never changed the code to support it ;)
Regarding BD+:
I watched IndependenceDay2 on saturday and first I got the BD+ repair file from Leawo BlurayPlayer but the result after the repair hasn't been correct... same distortions as before the repair.
Next I got the repair file from Pavtube and this one worked correctly and when I compared both files I noticed they're completely different.
The Problem with repairing BD+ errors is that I don't know a way to check if the file is 'really' repaired or even more destroyed.... the repair files simply contain file offsets with data that needs to be written at this offsets... so the result needs to be checked manually ... (but usually you only need to check a few seconds of the movie...)
VUK is not enough to remove BD+, they're completely unrelated.
nalor
28th February 2017, 09:53
And I use a simple tool called Iso Recorder to create ISO files from blurays:
ISO Recorder (http://isorecorder.alexfeinman.com/isorecorder.htm)
But I use the GUI of the tool...
nalor
28th February 2017, 21:23
Released 0.53 - it fixes the IMA error when decrypting an iso and adds a progress information in the title
Hironimo
1st March 2017, 00:05
Hi.
I tried again, this time with the latest version 0.53 and by getting the table from Leawo BlurayPlayer.
The .bin files are different, and the result with that one is a bit better, but there are still artefacts.
However Leawo BlurayPlayer plays the video correctly without artefacts, which leads me to believe that the table it uses is correct.
I tried to convert the video within Pavtube but that fails (says finished within seconds and the file is just a few kb, or with other options there is an error), so my impression on that tool is not good.
Could it be that you somehow use the data from the memory dump incorrectly?
candela
1st March 2017, 00:30
Hi.
I tried again, this time with the latest version 0.53 and by getting the table from Leawo BlurayPlayer.
The .bin files are different, and the result with that one is a bit better, but there are still artefacts.
However Leawo BlurayPlayer plays the video correctly without artefacts, which leads me to believe that the table it uses is correct.
I tried to convert the video within Pavtube but that fails (says finished within seconds and the file is just a few kb, or with other options there is an error), so my impression on that tool is not good.
Could it be that you somehow use the data from the memory dump incorrectly?
Rip only the m2ts file so you can easily check with a hex editor if BlurayTestAndDecrypt is patching the correct addresses and data in the BD+ table. Open the BD+ table in ConvTableView to see the addresses and patch data
Btw, the Pavtube table for your Deadpool release matches the table for a different Deadpool release which uses the same title keys. So it seems unlikely the table is bad (although possible). Can you maybe post the leawo table on tinyupload?
Hironimo
1st March 2017, 16:02
Rip only the m2ts file so you can easily check with a hex editor if BlurayTestAndDecrypt is patching the correct addresses and data in the BD+ table. Open the BD+ table in ConvTableView to see the addresses and patch data
Btw, the Pavtube table for your Deadpool release matches the table for a different Deadpool release which uses the same title keys. So it seems unlikely the table is bad (although possible). Can you maybe post the leawo table on tinyupload?
Thanx for the comment. I took a look (the original link to ConvTableView did not work, but i managed to find it elsewhere).
I did not get to analyze the resulting file however, since in the end it worked:
I found out that apparently mode 4 does not apply the BD+ correction table, but mode 5 does (even though I was sure I tried mode 5 before, and it did not work the first time... oh well).
Anyway, I uploaded the data for you to take a look anyway.
I find it strange that the data from the Leawo player appears to be similar (at least it is indeed about the same blu-ray and you can see many matches), however there are some errors since there are invalid descriptor types 0 and 3 defined in that file.
@Nalor: Maybe you can make sure the fix-up table is applied in modes other than 5?
I tested mode 4 several times and it does not produce a version that is ok.
Here is the File:
http://s000.tinyupload.com/?file_id=01058085668919539554
candela
1st March 2017, 19:15
You simply need to use mode 3 instead of 4 if you want BD+. It clearly says so in the options
I checked the tables and the Pavtube and Leawo table is identical in terms of patches. The descriptor types in Leawo tables are always invalid. They have to be ignored and all patches need to be applied
nalor
2nd March 2017, 23:17
I'd like that it is possible to work on a BD content that I copied over to a directory on harddrive/SSD, and not available as disc directly or as ISO.
Changed the code to support file copies of discs - please test 0.54 and report all findings..
I quickly checked and I think it should work ;)
Hironimo
4th March 2017, 18:08
Hey Nalor.
I tried out 0.54 and the file level handling in any folder works now if I the file is in BDMV\STREAM\ and the AACS folder with data exists,
so that is appreciated.
Unfortunately my Virus Program has to be told explicitly to be ok with your excecutable.
While it does not find a virus outright, it suspects and it has to be added to a list of trusted programs.
As far as I understand we just have to live with that.
I wish I had realized earlier mode 4 does not do BD+ - why is that, anyway?
nalor
4th March 2017, 18:16
I wish I had realized earlier mode 4 does not do BD+ - why is that, anyway?
The problem is that I only write successfully decoded blocks to the destination file - so the offset of blocks between the source and the destination file might be different and thus I cannot apply the BD+ repair table.
But honestly I think it's better to re-rip damaged files from the original media instead of using the damaged ones (and so I think this mode shouldn't be used at all).
But if you need it I can also add a 'continue on error (keep offset) and apply BD+' mode - this way I would simply write 0-bytes in case a damaged block is encountered.
What do you think ?
spotter
6th March 2017, 06:25
I think thats the smart thing to do. If one has a damaged disc and wants to preserve what they can, that's a better option. I think an even better option would be to keep a map of what you weren't able to read (or even understand ddrescue's map to know what sectors are bad) so that they can be filled in later if one can repair the disc or get another disc.
Ghitulescu
15th April 2017, 11:44
Out of curiosity, why it stubbornly looks for the Keydb.cfg in the damn hidden directory of application data and does not look for it in the directory where itself resides?
candela
16th April 2017, 09:17
Out of curiosity, why it stubbornly looks for the Keydb.cfg in the damn hidden directory of application data and does not look for it in the directory where itself resides?
Presumably because this is what VLC uses and were keys are added by FindVUK. If everyone is going to use their own location AACSUpdater will become useless unless it's starts scanning the entire harddrive. There could be some ini settings added I guess to define the location for advanced users
Ghitulescu
16th April 2017, 18:56
By "itself" I meant the software, not the keydb.cfg :)
Almost all software look first in their own directory/folder then in others.
Mischi
9th October 2017, 09:07
I can't select mode 5. Do I need another tool for this function?
nalor
9th October 2017, 09:31
I can't select mode 5. Do I need another tool for this function?What happens? Anything interesting in the logfile?
Gesendet von meinem E5823 mit Tapatalk
Mischi
9th October 2017, 10:57
Perhaps I'm misguided. Do I need an iso image for mode 5 or does it also operate on the optical drive?
The first run doesn't show mode 5 in the interactive menu.
nalor
9th October 2017, 13:23
Perhaps I'm misguided. Do I need an iso image for mode 5 or does it also operate on the optical drive?
The first run doesn't show mode 5 in the interactive menu.You need an ISO file for Mode 5 - it does not support ripping of discs so far.
Gesendet von meinem E5823 mit Tapatalk
nalor
30th January 2018, 19:46
Just uploaded release 0.61 - I think the major new feature is a massive speed boost because I changed AES functions to the libgcrypt library.
Additionally it's now possible to perform an ISO InPlace decryption and another new feature is to redirect all 'wrong' playlists to the correct playlist on discs with playlist obfuscation - you only need to know the correct playlist ;)
spotter
31st January 2018, 02:48
One can't just replace playlists. Many times it checks the file size and if not what it expects, fails.
nalor
31st January 2018, 18:16
One can't just replace playlists. Many times it checks the file size and if not what it expects, fails.
You're right - my approach is not really a solution to the problem but more some kind of a small workaround.
On my pioneer player I noticed he's using the wrong playlist - and the wrong playlist is already played before e.g. the menu gets displayed (because some internal checks during execution failed and it decided to play one of the fake playlists).
I just remap all 'wrong' playlists to the correct one - and in this case the pioneer player plays the correct playlist instead of the wrong one.
I still don't get into the menu - but at least I can use my Pioneer player and don't need my pi to play the disc.
And as I have only a few of those discs I don't know how good it's really working - it's just something I've tried a few month ago and it's still in the application ;)
frankio
13th March 2018, 14:02
I've used this precious tool on a few BDs (even BD+ ones) in ISO2ISO mode and it worked a treat, thank you!
Today I've stumbled upon a title that BTAD refuses to decrypt giving me an unexplicable error about not being able to find AACS directory.
This is an excerpt from logfile:
PARTITION:
PartitionNr >0< StartBlock >00000288< BlockLength >24438208<
2018-03-13 10:20:07 # 262 # [I] main / legacy / Initialize Disc now
2018-03-13 10:20:07 # 262 # [I] main / legacy / VolumeName: RED_BIRD_2D_F2
2018-03-13 10:20:07 # 262 # [I] bluray_udf / BRUDF_FileSize /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_FileSize ++++ File >\AACS\Unit_Key_RO.inf< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-13 10:20:07 # 262 # [I] bluray_aacs / BRAACS_getDiscID / UDF-Filesize Result for >\AACS\Unit_Key_RO.inf< - >#BRUDF_ERR_FILE_NOT_FOUND<
2018-03-13 10:20:07 # 262 # [I] bluray_udf / BRUDF_FileSize /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_FileSize ++++ File >\BTD!\Unit_Key_RO.inf< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-13 10:20:07 # 262 # [I] bluray_aacs / BRAACS_getDiscID / UDF-Filesize Result for >\BTD!\Unit_Key_RO.inf< - >#BRUDF_ERR_FILE_NOT_FOUND<
2018-03-13 10:20:07 # 262 # [I] bluray_udf / BRUDF_FileSize /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_FileSize ++++ File >\ANY!\Unit_Key_RO.inf< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-13 10:20:07 # 262 # [I] bluray_aacs / BRAACS_getDiscID / UDF-Filesize Result for >\ANY!\Unit_Key_RO.inf< - >#BRUDF_ERR_FILE_NOT_FOUND<
2018-03-13 10:20:07 # 262 # [I] bluray_udf / BRUDF_FileSize /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_FileSize ++++ File >\FAB!\Unit_Key_RO.inf< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-13 10:20:07 # 262 # [I] bluray_aacs / BRAACS_getDiscID / UDF-Filesize Result for >\FAB!\Unit_Key_RO.inf< - >#BRUDF_ERR_FILE_NOT_FOUND<
2018-03-13 10:20:07 # 262 # [E] bluray_aacs / BRAACS_getDiscID / No current or former AACS directory could be found - not possible to calculate DiscID for >C:\BD-iso\enc\RED_BIRD_2D_F2.iso<
2018-03-13 10:20:07 # 262 # [I] main / legacy / ERROR! Couldn't get DiscID >#BRAACS_DiscIdInvalid<
2018-03-13 10:20:07 # 263 # [I] main / legacy / ERROR! Bluray_InitDisc failed! (-2)
2018-03-13 10:20:07 # 263 # [I] main / legacy / ERROR! DecryptIso2Iso failed for file >C:\BD-iso\enc\RED_BIRD_2D_F2.iso<
2018-03-13 10:20:07 # 263 # [I] main / legacy / Overall duration >0:00:00<
Obviously the AACS directory is present on the disc.
Now if I mount the ISO as a virtual drive and drop the drive letter onto BTAD executable (mode = 3) then everything goes smooth.
I suspect there's a problem with this specific ISO but I don't have a clue as I ripped it using the same method as others titles (linux dd command) and this one only is failing.
Please let me know if you need more logs, thank you.
nalor
15th March 2018, 00:20
Please let me know if you need more logs, thank you.
Thanks for the report - really interesting, maybe I missed something when I wrote my own UDF interpreter ....
Please upload the first 20MB of your iso to e.g. tinyupload - this is all I need to check whats going wrong here.
Just wrote a small tool that saves the first 20MB of a file into a separate file inside the same directory - just drag the iso on the exe and you should get a '.20MB' file as result :)
SplitFirst20MB (http://s000.tinyupload.com/index.php?file_id=01962658454788178063)
Thanks! :thanks:
frankio
15th March 2018, 13:19
Here you go:
http://s000.tinyupload.com/index.php?file_id=78072196312963926920
BTW I could have spared you some coding time using dd to cut the beginning of the problematic ISO,
I really appreciate your effort though :thanks:
While we're at it... any chance you can release a linux version eventually?
Right now I'm forced to use a windows system just because of this great tool.
Thank you for your support!
nalor
15th March 2018, 18:53
Thank you for your support!
Thanks for the upload!
Found the problem - I missed to take the 'LengthofImplementationUse' in the FileIdentifierDescriptor into account... this is usually always 0 and according to the OSTA UDF specification it should be set to the identifier of the application the last modified this descriptor.
So basically it's of no interest (just a text field - in your case it includes 'MEI' ) - I just need to skip it correctly when parsing the file structure ;)
Will create a fixed release when I'm back home (hopefully this evening).
Regarding a linux release: purebasic is also available for linux, but I think it's not as easy as just recompiling it in linux .. maybe I will find some time to check it out.
nalor
19th March 2018, 22:41
New Release with the fix available - took a little bit longer because I wanted to finally implement a 'Rip/Dump disc and test the iso' mode :)
frankio
20th March 2018, 11:42
I tried the fixed version and now the decryption process starts but then, towards the end, it stops again with the following error:
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_Close ++++ File >C:\BD-iso\enc\RED_BIRD_2D_F2.iso< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-20 11:04:53 # 1385130 # [I] main / legacy / All blocks copied into >C:\RED_BIRD_2D_F2_decrypted.iso< - rename AACS folder to BTD! now
2018-03-20 11:04:54 # 1386157 # [I] bluray_udf / BRUDF_File_Rename /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_File_Rename ++++ Filename >\AACS< NewFilename >BTD!< iUndoHdl >0< ++++\n++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-20 11:04:54 # 1386157 # [I] bluray_udf / _UDF_readFileIdentifierDescriptor /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ _UDF_readFileIdentifierDescriptor ++++ Filename >\AACS< iAllowFidType >0< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-20 11:04:54 # 1386157 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ _UDF_readwriteFileIdentifierDescriptor ++++ Filename >\AACS< *FidToWrite >0< AllowFidType >0< iUndoHdl >0< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-20 11:04:54 # 1386199 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / File >\AACS< Size >0< FID/Part >1< FID\Block >3< FID\Offset >308< FID\Length >384<
2018-03-20 11:04:54 # 1386240 # [I] bluray_udf / BRUDF_ReadLogicalBlock / ###################### READ-BLOCK 323 # 0x00000000000A1800 LEN 384 Bytes ######################
2018-03-20 11:04:54 # 1386240 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / ++++ File Identifier Descriptor ++++
2018-03-20 11:04:54 # 1386703 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / FileIdentifier ><
2018-03-20 11:04:54 # 1386703 # [E] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / ERROR! Wrong File Identifier! Found >< Expected >AACS<
2018-03-20 11:04:54 # 1386704 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-716<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2018-03-20 11:04:54 # 1386704 # [E] bluray_udf / BRUDF_File_Rename / _UDF_readFileIdentifierDescriptor failed >#BRUDF_ERR_FID_ERROR<
2018-03-20 11:04:54 # 1386705 # [I] main / legacy / ERROR! Rename failed (-716) >#BRUDF_ERR_FID_ERROR<
2018-03-20 11:04:55 # 1387337 # [I] main / legacy / Delete destination file >C:\RED_BIRD_2D_F2_decrypted.iso<
2018-03-20 11:04:56 # 1387784 # [I] main / legacy / ERROR! DecryptIso2Iso failed for file >C:\BD-iso\enc\RED_BIRD_2D_F2.iso<
2018-03-20 11:04:56 # 1387784 # [I] main / legacy / Overall duration >0:22:58<
Feel free to ask for more info or samples! :helpful:
Regarding a linux release: purebasic is also available for linux, but I think it's not as easy as just recompiling it in linux .. maybe I will find some time to check it out.
I won't hold my breath then... :p
nalor
21st March 2018, 19:57
Please try 0.63 - missed a 2nd location with the same problem :(
frankio
22nd March 2018, 13:36
We're not there yet:
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_Close ++++ File >C:\BD-iso\enc\RED_BIRD_2D_F2.iso< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-22 11:12:50 # 1377261 # [I] main / legacy / All blocks copied into >C:\RED_BIRD_2D_F2_decrypted.iso< - rename AACS folder to BTD! now
2018-03-22 11:12:50 # 1377262 # [I] bluray_udf / BRUDF_File_Rename /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ BRUDF_File_Rename ++++ Filename >\AACS< NewFilename >BTD!< iUndoHdl >0< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-22 11:12:50 # 1377262 # [I] bluray_udf / _UDF_readFileIdentifierDescriptor /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ _UDF_readFileIdentifierDescriptor ++++ Filename >\AACS< iAllowFidType >0< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-22 11:12:50 # 1377262 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor /
++++++++++++++++++++++++++++++++++++++++++++++++++
++++ _UDF_readwriteFileIdentifierDescriptor ++++ Filename >\AACS< *FidToWrite >0< AllowFidType >0< iUndoHdl >0< ++++
++++++++++++++++++++++++++++++++++++++++++++++++++
2018-03-22 11:12:50 # 1377262 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / File >\AACS< Size >0< FID/Part >1< FID\Block >3< FID\Offset >308< FID\Length >384<
2018-03-22 11:12:51 # 1377357 # [I] bluray_udf / BRUDF_ReadLogicalBlock / ###################### READ-BLOCK 323 # 0x00000000000A1800 LEN 384 Bytes ######################
2018-03-22 11:12:51 # 1377357 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / ++++ File Identifier Descriptor ++++
2018-03-22 11:12:51 # 1377357 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / FileIdentifier >AACS<
2018-03-22 11:12:51 # 1377357 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / Correct file found - read mode
2018-03-22 11:12:51 # 1377357 # [I] bluray_udf / _UDF_readwriteFileIdentifierDescriptor / >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>41718056<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2018-03-22 11:12:51 # 1377357 # [E] bluray_udf / BRUDF_File_Rename / ERROR! Length of File Identifier different!
2018-03-22 11:12:51 # 1377358 # [I] main / legacy / ERROR! Rename failed (-729) >#BRUDF_ERR_RENAME_LEN<
2018-03-22 11:12:51 # 1377603 # [I] main / legacy / Delete destination file >C:\RED_BIRD_2D_F2_decrypted.iso<
2018-03-22 11:12:51 # 1378040 # [I] main / legacy / ERROR! DecryptIso2Iso failed for file >C:\BD-iso\enc\RED_BIRD_2D_F2.iso<
2018-03-22 11:12:51 # 1378041 # [I] main / legacy / Overall duration >0:22:52<
nalor
24th March 2018, 20:57
We're not there yet:
please try 0.64 - this time I've tested my corrections myself, so I'm quite confident that it should work now :)
frankio
27th March 2018, 12:02
Now everything's working as expected! :)
Thank you for your continued support
nalor
27th March 2018, 12:49
Now everything's working as expected! :)
Thank you for your continued supportThanks for the feedback!
Gesendet von meinem E5823 mit Tapatalk
qyot27
1st April 2018, 20:02
I was struggling for a good chunk of time yesterday evening to figure out why, despite having the libaacs-generated DiscID and VUK in my keydb.cfg file for the disc I was testing, I was still getting complaints about the Disc ID not being found there...it would appear that BlurayTestAndDecrypt is case-sensitive when it comes to the Disc ID (and probably the VUK too, but I didn't bother trying to test that part separately). libaacs uses lower-case letters when it generates its DiscID/VUK/VID backups, which means that you can't use its output as-is (well, aside from having to format the entire line like the others, but I didn't figure the case would be important...clearly it is).
95fpu85... wouldn't work, 'can't be found' error
95FPU85... would work fine
nalor
1st April 2018, 20:06
95fpu85... wouldn't work, 'can't be found' error
95FPU85... would work fine
You're right - I'm currently looking for an entry only in a case sensitive way, will change it for the next release :)
spotter
15th October 2018, 03:00
download has been deleted from the server :/
nalor
15th October 2018, 06:45
Will post a new release tonight. download has been deleted from the server :/
Gesendet von meinem H8324 mit Tapatalk
nalor
15th October 2018, 21:14
download has been deleted from the server :/
Posted Release 0.70 - mainly 1 new feature:
check of dvd vob & iso files
LUR
25th November 2019, 23:48
Hi, trying to decrypt Star Wars Disc Collection:
2019-11-26 01:45:33 # 0 # [I] main / / #############################################################################
2019-11-26 01:45:33 # 0 # [I] main / / ----------- BlurayTestAndDecrypt 0.70 -----------
2019-11-26 01:45:33 # 55 # [I] SETTINGS / _STG_CreateOrUpdate / Created ini file >C:\Users\LUR\Documents\WORK\BlurayTestAndDecrypt_0.70\BlurayTestAndDecrypt.ini<
2019-11-26 01:45:33 # 55 # [E] common_log / CMLOG_SetLogDirectory / new logdir invalid ><
2019-11-26 01:45:33 # 55 # [I] main / / Read settings from file >C:\Users\LUR\Documents\WORK\BlurayTestAndDecrypt_0.70\BlurayTestAndDecrypt.ini<
2019-11-26 01:45:33 # 56 # [I] main / / >> Mode >0<
2019-11-26 01:45:33 # 56 # [I] main / / >> DecryptDest ><
2019-11-26 01:45:33 # 56 # [I] main / / List of files being processed:
2019-11-26 01:45:33 # 56 # [I] main / / Detected Drive >D:\<
2019-11-26 01:45:34 # 1643 # [I] main / / Mode >4< saved in ini-file
2019-11-26 01:45:34 # 1643 # [I] main / / #############################################################################
2019-11-26 01:45:34 # 1643 # [I] main / / 1/1 - Srcdrive >D:\< Mode >Decrypt - ContinueOnError<
2019-11-26 01:45:34 # 1649 # [I] main / Bluray_InitDisc / VolumeName: ATTACK_OF_THE_CLONES
2019-11-26 01:45:34 # 1655 # [I] main / Bluray_InitDisc / DiscID: F08E7A96834680A8BCE152387B9F8594748DA34D
2019-11-26 01:45:34 # 1658 # [I] main / Bluray_InitDisc / Disc is AACS protected - init necessary AACS values
2019-11-26 01:45:34 # 1659 # [I] main / Bluray_InitDisc / Use default AACS-KeyDB file instead >C:\Users\LUR\AppData\Roaming\aacs\keydb.cfg<
2019-11-26 01:45:34 # 1659 # [I] bluray_keydb / BRKDB_OpenFile / KeyDB file >C:\Users\LUR\AppData\Roaming\aacs\keydb.cfg< opened!
2019-11-26 01:45:34 # 1672 # [I] bluray_keydb / BRKDB_OpenFile / KeyDB file >C:\Users\LUR\AppData\Roaming\aacs\keydb.cfg< in memory now
2019-11-26 01:45:36 # 3250 # [I] bluray_keydb / _ParseMem / Removed duplicates for >0< discids from file >C:\Users\LUR\AppData\Roaming\aacs\keydb.cfg<
2019-11-26 01:45:36 # 3250 # [I] bluray_keydb / BRKDB_OpenFile / ParseMem result >1<
2019-11-26 01:45:36 # 3250 # [I] main / Bluray_InitDisc / VUK >9CC0FFB4974AC232B69B2DDEDAABACA2< available in KeyDB entry For disc
2019-11-26 01:45:36 # 3251 # [I] main / Bluray_InitDisc / VUK: 9CC0FFB4974AC232B69B2DDEDAABACA2
2019-11-26 01:45:36 # 3256 # [I] main / Bluray_InitDisc / UnitKeyCnt: 7
2019-11-26 01:45:36 # 3257 # [I] main / Bluray_InitDisc / >>> UnitKey: 79EC0F4D8A1DFE0E1629116567B48A6B
2019-11-26 01:45:36 # 3257 # [I] main / Bluray_InitDisc / >>> UnitKey: 85581552DC02679109AF39A4EA5077EB
2019-11-26 01:45:36 # 3258 # [I] main / Bluray_InitDisc / >>> UnitKey: 53857DE5436B63EFA6BAD7B945433EAF
2019-11-26 01:45:36 # 3258 # [I] main / Bluray_InitDisc / >>> UnitKey: 671F60BAA4F843411DB18FAB4EA74E1F
2019-11-26 01:45:36 # 3258 # [I] main / Bluray_InitDisc / >>> UnitKey: 3675EDDA9998DAD0BA5B42C78F9048B9
2019-11-26 01:45:36 # 3259 # [I] main / Bluray_InitDisc / >>> UnitKey: B9678AAC50E20FFFF706D5CC17C83A41
2019-11-26 01:45:36 # 3259 # [I] main / Bluray_InitDisc / >>> UnitKey: F3F3C3D750810BC3B9810B6B88967E74
2019-11-26 01:45:36 # 3261 # [I] main / Bluray_InitDisc / Check if disc is BD+ protected
2019-11-26 01:45:36 # 3266 # [I] bluray_aacs / BRAACS_IsBDplusProtected / Directory >D:\BDSVM\< does exist and there is at least 1 .svm file in the folder >00000.svm< - disc is BP+ protected
2019-11-26 01:45:36 # 3266 # [I] main / Bluray_InitDisc / Disc is BD+ protected!
2019-11-26 01:45:36 # 3272 # [I] main / Bluray_InitDisc / BD+ details - Date 2011.07.11 Gen 11
2019-11-26 01:45:38 # 5409 # [I] main / ErrorHandler / A program error was detected:
Error Message: Invalid memory access
Error Code: -1073741819
Code Address: 4373540
Target Address: 12
Sourcecode line: 1178
Sourcecode file: U:\PUREBASIC\Bluray-Test\BlurayTest.pb
nalor
26th November 2019, 06:31
Hi, trying to decrypt Star Wars Disc Collection:
2019-11-26 01:45:33 # 0 # [I] main / / #############################################################################
2019-11-26 01:45:33 # 0 # [I] main / / ----------- BlurayTestAndDecrypt 0.70 -----------
2019-11-26 01:45:33 # 55 # [I] SETTINGS / _STG_CreateOrUpdate / Created ini file >C:\Users\LUR\Documents\WORK\BlurayTestAndDecrypt_0.70\BlurayTestAndDecrypt.ini<
2019-11-26 01:45:33 # 55 # [E] common_log / CMLOG_SetLogDirectory / new logdir invalid ><
2019-11-26 01:45:33 # 55 # [I] main / / Read settings from file >C:\Users\LUR\Documents\WORK\BlurayTestAndDecrypt_0.70\BlurayTestAndDecrypt.ini<
2019-11-26 01:45:33 # 56 # [I] main / / >> Mode >0<
2019-11-26 01:45:33 # 56 # [I] main / / >> DecryptDest ><
2019-11-26 01:45:33 # 56 # [I] main / / List of files being processed:
2019-11-26 01:45:33 # 56 # [I] main / / Detected Drive >D:\<
2019-11-26 01:45:34 # 1643 # [I] main / / Mode >4< saved in ini-file
2019-11-26 01:45:34 # 1643 # [I] main / / #############################################################################
2019-11-26 01:45:34 # 1643 # [I] main / / 1/1 - Srcdrive >D:\< Mode >Decrypt - ContinueOnError<
2019-11-26 01:45:34 # 1649 # [I] main / Bluray_InitDisc / VolumeName: ATTACK_OF_THE_CLONES
2019-11-26 01:45:34 # 1655 # [I] main / Bluray_InitDisc / DiscID: F08E7A96834680A8BCE152387B9F8594748DA34D
2019-11-26 01:45:34 # 1658 # [I] main / Bluray_InitDisc / Disc is AACS protected - init necessary AACS values
2019-11-26 01:45:34 # 1659 # [I] main / Bluray_InitDisc / Use default AACS-KeyDB file instead >C:\Users\LUR\AppData\Roaming\aacs\keydb.cfg<
2019-11-26 01:45:34 # 1659 # [I] bluray_keydb / BRKDB_OpenFile / KeyDB file >C:\Users\LUR\AppData\Roaming\aacs\keydb.cfg< opened!
2019-11-26 01:45:34 # 1672 # [I] bluray_keydb / BRKDB_OpenFile / KeyDB file >C:\Users\LUR\AppData\Roaming\aacs\keydb.cfg< in memory now
2019-11-26 01:45:36 # 3250 # [I] bluray_keydb / _ParseMem / Removed duplicates for >0< discids from file >C:\Users\LUR\AppData\Roaming\aacs\keydb.cfg<
2019-11-26 01:45:36 # 3250 # [I] bluray_keydb / BRKDB_OpenFile / ParseMem result >1<
2019-11-26 01:45:36 # 3250 # [I] main / Bluray_InitDisc / VUK >9CC0FFB4974AC232B69B2DDEDAABACA2< available in KeyDB entry For disc
2019-11-26 01:45:36 # 3251 # [I] main / Bluray_InitDisc / VUK: 9CC0FFB4974AC232B69B2DDEDAABACA2
2019-11-26 01:45:36 # 3256 # [I] main / Bluray_InitDisc / UnitKeyCnt: 7
2019-11-26 01:45:36 # 3257 # [I] main / Bluray_InitDisc / >>> UnitKey: 79EC0F4D8A1DFE0E1629116567B48A6B
2019-11-26 01:45:36 # 3257 # [I] main / Bluray_InitDisc / >>> UnitKey: 85581552DC02679109AF39A4EA5077EB
2019-11-26 01:45:36 # 3258 # [I] main / Bluray_InitDisc / >>> UnitKey: 53857DE5436B63EFA6BAD7B945433EAF
2019-11-26 01:45:36 # 3258 # [I] main / Bluray_InitDisc / >>> UnitKey: 671F60BAA4F843411DB18FAB4EA74E1F
2019-11-26 01:45:36 # 3258 # [I] main / Bluray_InitDisc / >>> UnitKey: 3675EDDA9998DAD0BA5B42C78F9048B9
2019-11-26 01:45:36 # 3259 # [I] main / Bluray_InitDisc / >>> UnitKey: B9678AAC50E20FFFF706D5CC17C83A41
2019-11-26 01:45:36 # 3259 # [I] main / Bluray_InitDisc / >>> UnitKey: F3F3C3D750810BC3B9810B6B88967E74
2019-11-26 01:45:36 # 3261 # [I] main / Bluray_InitDisc / Check if disc is BD+ protected
2019-11-26 01:45:36 # 3266 # [I] bluray_aacs / BRAACS_IsBDplusProtected / Directory >D:\BDSVM\< does exist and there is at least 1 .svm file in the folder >00000.svm< - disc is BP+ protected
2019-11-26 01:45:36 # 3266 # [I] main / Bluray_InitDisc / Disc is BD+ protected!
2019-11-26 01:45:36 # 3272 # [I] main / Bluray_InitDisc / BD+ details - Date 2011.07.11 Gen 11
2019-11-26 01:45:38 # 5409 # [I] main / ErrorHandler / A program error was detected:
Error Message: Invalid memory access
Error Code: -1073741819
Code Address: 4373540
Target Address: 12
Sourcecode line: 1178
Sourcecode file: U:\PUREBASIC\Bluray-Test\BlurayTest.pb
Will check tonight what is going wrong here... [emoji17]
Gesendet von meinem H8324 mit Tapatalk
LUR
11th December 2019, 20:54
Will check tonight what is going wrong here... [emoji17]
Gesendet von meinem H8324 mit Tapatalk
How is it going? Any ideas? :(
nalor
12th December 2019, 20:50
I've just uploaded release 0.77 - please try it.
This release includes a few fixes I've done during the last month and maybe your problem is already covered by one of them.
In case it still crashed send me the new report and I'll check the code.
bleakassassin
7th April 2020, 21:16
I've just uploaded release 0.77 - please try it.
This release includes a few fixes I've done during the last month and maybe your problem is already covered by one of them.
In case it still crashed send me the new report and I'll check the code.
Hi there! I'm not OP, but I'm running into the same issue as that user with the most recent version of this program. I'm trying to decrypt the U.S. release of Birdman, and this is the resulting log. I'd like to note that this occurs both with the disc in my Blu-ray drive and a ripped ISO of it:
2020-04-02 14:31:20 # 0 # [I] main / / #############################################################################
2020-04-02 14:31:20 # 0 # [I] main / / ----------- BlurayTestAndDecrypt 0.77 -----------
2020-04-02 14:31:20 # 0 # [I] SETTINGS / _STG_CreateOrUpdate / Created ini file >D:\BlurayTestAndDecrypt_0.77\BlurayTestAndDecrypt.ini<
2020-04-02 14:31:20 # 1 # [E] common_log / CMLOG_SetLogDirectory / new logdir invalid ><
2020-04-02 14:31:20 # 1 # [I] main / / Read settings from file >D:\BlurayTestAndDecrypt_0.77\BlurayTestAndDecrypt.ini<
2020-04-02 14:31:20 # 74 # [I] main / / >> Mode >5<
2020-04-02 14:31:20 # 74 # [I] main / / >> DecryptDest >D:\<
2020-04-02 14:31:20 # 75 # [I] bluray_udf / _UDF_Read_MetadataExtendedFileEntry / ++++ Extended File Entry ++++
2020-04-02 14:31:20 # 75 # [I] bluray_udf / _UDF_Parse_FileSetDescriptor / ++++ File Set Descriptor ++++
2020-04-02 14:31:20 # 140 # [I] main / / List of files being processed:
2020-04-02 14:31:20 # 140 # [I] main / / Detected File >D:\BlurayTestAndDecrypt_0.77\BIRDMAN.iso<
2020-04-02 14:31:20 # 140 # [I] main / / #############################################################################
2020-04-02 14:31:20 # 140 # [I] main / / 1/1 - Decrypt - ISO2ISO >D:\BlurayTestAndDecrypt_0.77\BIRDMAN.iso<
2020-04-02 14:31:20 # 141 # [I] main / CheckAndCreateOutputDir / Decrypt OutputDir: D:\
2020-04-02 14:31:20 # 141 # [I] main / DecryptIso2Iso / UDF - OpenISO
2020-04-02 14:31:20 # 141 # [I] bluray_udf / _UDF_Read_MetadataExtendedFileEntry / ++++ Extended File Entry ++++
2020-04-02 14:31:20 # 141 # [I] bluray_udf / _UDF_Parse_FileSetDescriptor / ++++ File Set Descriptor ++++
2020-04-02 14:31:20 # 203 # [I] main / DecryptIso2Iso / Details about ISO File:
UDF Revision : 0250
VolumeName : BIRDMAN
2020-04-02 14:31:20 # 203 # [I] main / DecryptIso2Iso / Initialize Disc now
2020-04-02 14:31:20 # 203 # [I] main / Bluray_InitDisc / VolumeName: BIRDMAN
2020-04-02 14:31:20 # 204 # [I] main / Bluray_InitDisc / DiscID: 27245C62EC935F097FC4E4058BA76407E70CEFA2
2020-04-02 14:31:20 # 204 # [I] main / Bluray_InitDisc / Disc is AACS protected - init necessary AACS values
2020-04-02 14:31:20 # 205 # [I] main / Bluray_InitDisc / Use default AACS-KeyDB file instead >C:\Users\Main\AppData\Roaming\aacs\keydb.cfg<
2020-04-02 14:31:20 # 205 # [I] bluray_keydb / BRKDB_OpenFile / KeyDB file >C:\Users\Main\AppData\Roaming\aacs\keydb.cfg< opened!
2020-04-02 14:31:20 # 219 # [I] bluray_keydb / BRKDB_OpenFile / KeyDB file >C:\Users\Main\AppData\Roaming\aacs\keydb.cfg< in memory now
2020-04-02 14:31:22 # 2406 # [I] bluray_keydb / _ParseMem / Removed duplicates for >0< discids from file >C:\Users\Main\AppData\Roaming\aacs\keydb.cfg<
2020-04-02 14:31:22 # 2407 # [I] main / Bluray_InitDisc / VUK >1854B56CA4681135A82C5276BAB03915< available in KeyDB entry for disc
2020-04-02 14:31:22 # 2407 # [I] main / Bluray_InitDisc / VUK: >1854B56CA4681135A82C5276BAB03915<
2020-04-02 14:31:22 # 2407 # [I] main / Bluray_InitDisc / EncryptedUnitKeyCount >1<
2020-04-02 14:31:22 # 2408 # [I] main / Bluray_InitDisc / UnitKeyCnt: 1
2020-04-02 14:31:22 # 2408 # [I] main / Bluray_InitDisc / >>> UnitKey: 8ADA030B54AC77C9DE0036497AAA8262
2020-04-02 14:31:22 # 2408 # [I] main / Bluray_InitDisc / Check if disc is BD+ protected
2020-04-02 14:31:22 # 2409 # [I] bluray_aacs / BRAACS_IsBDplusProtected / Directory >\BDSVM< does exist and there is at least 1 .svm file in the folder >\BDSVM\BACKUP\< - disc is BP+ protected
2020-04-02 14:31:22 # 2409 # [I] main / Bluray_InitDisc / Disc is BD+ protected!
2020-04-02 14:31:22 # 2421 # [I] main / Bluray_InitDisc / BD+ details - Date 2014.12.19 Gen 254
2020-04-02 14:31:24 # 4002 # [I] main / ErrorHandler / A program error was detected:
Error Message: Invalid memory access
Error Code: -1073741819
Code Address: 1979164744
Target Address: 1
Sourcecode line: 1192
Sourcecode file: U:\PUREBASIC\Bluray-Test\BlurayTest.pb
nalor
20th April 2020, 21:11
Released 0.79 - it hopefully fixes the problem reported above (I introduced this bug 2018 :( ... ) and also changes the way the keydb file is opened: shared readonly, so it's not a problem any longer when the file is also opened in another application in parallel.
bleakassassin
21st April 2020, 02:56
That update did the trick. Thanks a ton!
I'm having an issue now with regular usage. Upon getting past that error, I try to advance to decrypting the disc. However, each and every playlist on the disc quickly errors out with the following message:
ERROR! bluray_aacs-BRAACS_AutoDetectUnitKey - Decryption failed with all possible UnitKeys! >1<
ERROR! Couldn't get correct UnitKey!
ERROR! Processing of file >E:\BDMV\STREAM\00xxx.m2ts< failed!
I have an up-to-date keydb.cfg file in my %APPDATA%\aacs folder with the keys from this post (https://forum.doom9.org/showthread.php?p=1883655#post1883655) added to the top of it. Any idea what's going on?
EDIT: This issue is happening with my retail copy of Birdman (the initial release in the red case). I tried again with Slumdog Millionaire and didn't have any issues.
Bahamuth
26th August 2020, 14:51
I have a PAL BluRay from "Pokémon Origins" here. I successfully ripped it with MakeMKV, which lists AACS v63 for the disc.
Just today I read about your program here and decided to test it. But when usind Mode 2 the BluRays ID can't be found in the keydb.cfg (I did download the mentioned file via the information in https://forum.doom9.org/showthread.php?t=176924 and also updated it according to the thread).
Now I wonder how often that keydb.cfg might be updated and what is the best way to do so.
nateify
3rd October 2020, 05:11
Can anyone re-upload this please? The Tinyupload link appears to be dead
nalor
7th October 2020, 21:01
Can anyone re-upload this please? The Tinyupload link appears to be dead
Hi!
Updated the link in the first post :)
VCL1918
1st February 2021, 12:51
Hi,
I'm trying to copy some of my Bluray discs to an iso image using Mode 6 (or Mode 7 according to the first post). Unfortunately some of them have special characters (e.g. ":") in their title, which results in an error message like:
11:54:12 - ERROR! -Dump_PrepareDestFile - ERROR! Couldn't create destination file! >C:\Users\Username\Bluray: Disc 1.iso< with size >41.79< GB
11:54:12 - ERROR! -Dump_DumpDrive - ERROR! Couldn't prepare DstFile >C:\Users\Username\Bluray: Disc 1.iso<
11:54:12 - ERROR! DumpDrive >E:\< failed!
Since ":" is not supported in filenames, creating the destination file obviously fails. But afaik it is not possible to set the filename explicitly (only the path).
Any ideas to avoid/fix this?
Thanks in advance,
VCL1918
nalor
10th August 2021, 20:28
Hi,
I'm trying to copy some of my Bluray discs to an iso image using Mode 6 (or Mode 7 according to the first post). Unfortunately some of them have special characters (e.g. ":") in their title, which results in an error message like:
Since ":" is not supported in filenames, creating the destination file obviously fails. But afaik it is not possible to set the filename explicitly (only the path).
Any ideas to avoid/fix this?
Thanks in advance,
VCL1918
Hi! I'm sorry but I missed your post ... today I noticed a problem myself and created an updated release 0.80 and when I wanted to post a message here I noticed your post ... so I've fixed your problem also and now a release 0.81 is available in the first post :D
unforeseenconsequences
15th March 2022, 08:24
I have successfully extracted an .iso using your tool and am trying to use Mode 5 to repair the bdplus (BD+ Gen 7). I have what I believe is the correct convtable in that the filename of the .bin matches my MediaKey. Specifically, the convtable filename is in the format MediaKey_TITLE.bin in the file path %APPDATA%\Roaming\bdplus\convtab\. However, your tool gives me an error of "No matching file found." How exactly does your tool distinguish a convtab "matching file"?
nalor
19th March 2022, 23:02
I have successfully extracted an .iso using your tool and am trying to use Mode 5 to repair the bdplus (BD+ Gen 7). I have what I believe is the correct convtable in that the filename of the .bin matches my MediaKey. Specifically, the convtable filename is in the format MediaKey_TITLE.bin in the file path %APPDATA%\Roaming\bdplus\convtab\. However, your tool gives me an error of "No matching file found." How exactly does your tool distinguish a convtab "matching file"?
Hi! I just checked the code, the first check is quite simple - the filename has to match the pattern:
"conv_tab_"+sDiscId+"*.bin"
So I guess you're already failing in this situation.
Please try renaming your file and report what happens next :)
Bahamuth
21st July 2022, 10:09
With all cached BD+ tables from https://forum.doom9.org/showthread.php?t=176924 I cannot de-BD+ my Simpsons BluRay. It tells me, that it couldn't find any fitting FixUpTable.
Now I was told, the files inside the conv directory would be named after the MK number, not after the DiscID. So I can't use the cached BD+ tables from the thread then? Does one have to convert/rename them somehow?
candela
21st July 2022, 10:31
With all cached BD+ tables from https://forum.doom9.org/showthread.php?t=176924 I cannot de-BD+ my Simpsons BluRay. It tells me, that it couldn't find any fitting FixUpTable.
Now I was told, the files inside the conv directory would be named after the MK number, not after the DiscID. So I can't use the cached BD+ tables from the thread then? Does one have to convert/rename them somehow?
simply rename the libaacs file "MK_*.bin" to the format BlurayTestAndDecrypt expects, i.e. "conv_tab_[DiscId]_*.bin" You can find DiscID and MK for your Disc by looking in keydb.cfg, running aacskeys or aacsinfo included with libaacs
Bahamuth
27th July 2022, 08:09
Considering there are more BD-J protections than BD+, I wonder if BTAD could also be written to remove such protections? Or is there any other program which reliably remove such things?
nalor
25th April 2023, 12:09
Published release 0.94 with a few fixes and a few new features:
use RDK for BusDecryption
when @Candela posted it's message https://forum.doom9.org/showthread.php?t=184373 it's been the first time for me to hear from the ReadDataKey at all.
I started to add the on-the-fly decryption in BTAD and finished it a couple of weeks ago and did not notice any problems in the meantime, so I think its ready for primetime :D
create BD+ FUT tables with 'mediakey' in name
I wasn't really aware that the files created by BTAD did not match the filenames expected by libbdplus... so I changed it so the filenames are correct now :)
Additionally I tried XREVEAL and I like it. For an unknown reason it's expecting the BD+ FUT tables in a different directory than libbdplus - so I added the check if XREVEAL is installed and if it is, the FUT file is also created in it's specific directory.
Finally it's working well for me :)
option for auto-update
It's enabled by default and using the same mechanism as FindVUK - in case a new release is available on the server it get's downloaded and updated. Can be disabled in the ini-file if desired.
A few additional changes are listed on the first post in this thread - and as always it's possible I've introduced new bugs or changed other things without mentioning :)
nalor
25th April 2023, 12:10
Considering there are more BD-J protections than BD+, I wonder if BTAD could also be written to remove such protections? Or is there any other program which reliably remove such things?
I can tell that such a thing is way beyond my abilities ... :(
Bahamuth
15th May 2023, 16:08
I have a BluRay here (Resident Evil Degeneration) which is... strange. When I make an encrypted backup with DVDFab, it just rips the BluRay. When I try to make a decrypted backup though, DVDfab fails after 0.55% with a read error.
When I make an decrypted backup with MakeMKV (which doesn't rip to ISO but to the folder structure) I don't get that problem.
When I use BTAD on the image of the encrypted backup, it also stops after 0.55% with this:
16:49:16 - ++ DECODE ++ Pct > 0.54%< StartBlock >00086176< BlockLen >00000723< File >\BDMV\STREAM\00003.m2ts<
16:49:16 - ++ COPY ++ Pct > 0.55%< StartBlock >00086899< BlockLen >00000013<
16:49:16 - ++ DECODE ++ Pct > 0.55%< StartBlock >00086912< BlockLen >00000240< File >\BDMV\STREAM\00071.m2ts<
16:49:16 - ++ COPY ++ Pct > 0.55%< StartBlock >00087152< BlockLen >00000016<
16:49:16 - ++ DECODE ++ Pct > 0.55%< StartBlock >00087168< BlockLen >00000270< File >\BDMV\STREAM\00504.m2ts<
Filename >\BDMV\STREAM\00504.m2ts< Size GB > 0.00< Progress >1/1<
16:49:16 - ERROR! Unencrypted unit has errors! - stop now
The mentioned file is only 540 kB in size and alphabetically is the last in the STREAM folder, but the third when it comes for LBA position. What could be wrong here?
FindVUK doesn't even try any UnitKeys on the file, stopping at this:
17:06:36 - Decrypted first unit of file >D:\BDMV\STREAM\00502.m2ts< with UnitKey >2<
17:06:36 - Decrypted first unit of file >D:\BDMV\STREAM\00503.m2ts< with UnitKey >3<
So I guess it treats the file as unencrypted.
A side note: BTAD blocks access to the keydb.cfg even if it's already done ("Press Escape to exit" is shown).
Another question: are .ssif files encoded on a 3D BluRay? I only noticed BTAD isn't touching them.
nalor
15th May 2023, 20:05
I have a BluRay here (Resident Evil Degeneration) which is... strange. When I make an encrypted backup with DVDFab, it just rips the BluRay. When I try to make a decrypted backup though, DVDfab fails after 0.55% with a read error.
When I make an decrypted backup with MakeMKV (which doesn't rip to ISO but to the folder structure) I don't get that problem.
When I use BTAD on the image of the encrypted backup, it also stops after 0.55% with this:
16:49:16 - ++ DECODE ++ Pct > 0.54%< StartBlock >00086176< BlockLen >00000723< File >\BDMV\STREAM\00003.m2ts<
16:49:16 - ++ COPY ++ Pct > 0.55%< StartBlock >00086899< BlockLen >00000013<
16:49:16 - ++ DECODE ++ Pct > 0.55%< StartBlock >00086912< BlockLen >00000240< File >\BDMV\STREAM\00071.m2ts<
16:49:16 - ++ COPY ++ Pct > 0.55%< StartBlock >00087152< BlockLen >00000016<
16:49:16 - ++ DECODE ++ Pct > 0.55%< StartBlock >00087168< BlockLen >00000270< File >\BDMV\STREAM\00504.m2ts<
Filename >\BDMV\STREAM\00504.m2ts< Size GB > 0.00< Progress >1/1<
16:49:16 - ERROR! Unencrypted unit has errors! - stop now
The mentioned file is only 540 kB in size and alphabetically is the last in the STREAM folder, but the third when it comes for LBA position. What could be wrong here?
FindVUK doesn't even try any UnitKeys on the file, stopping at this:
17:06:36 - Decrypted first unit of file >D:\BDMV\STREAM\00502.m2ts< with UnitKey >2<
17:06:36 - Decrypted first unit of file >D:\BDMV\STREAM\00503.m2ts< with UnitKey >3<
So I guess it treats the file as unencrypted.
A side note: BTAD blocks access to the keydb.cfg even if it's already done ("Press Escape to exit" is shown).
Another question: are .ssif files encoded on a 3D BluRay? I only noticed BTAD isn't touching them.
Hi!
Have you tried to make an encrypted backup with BTAD? Does this work fine and does the check at the end succeed?
What to you mean with "FindVUK stops" - basically FindVUK only checks if the discovered keys are valid, so as soon as each key has been successfully tested against a single file it's happy as it knows the keys are valid.
Locking of keydb: you're right - will change it in an upcoming release.
And SSIF files are not really separate files on the disc but instead only references to other m2ts files - when you calculate the sum of all files on the disc you'll notice that it won't fit on the disc at all :D
So when the M2TS files are decoded, the SSIF is automatically decoded as well.
(as far as I remember the SSIF files are the 3d files)
Bahamuth
15th May 2023, 21:42
What to you mean with "FindVUK stops" - basically FindVUK only checks if the discovered keys are valid, so as soon as each key has been successfully tested against a single file it's happy as it knows the keys are valid.
FindVUK seems to check every m2ts file on the disc which it thinks is encrypted to see, if it can be decrypted with the (or one of the) unit keys.
Have you tried to make an encrypted backup with BTAD? Does this work fine and does the check at the end succeed?
I never made a disc backup with BTAD. My (encrypted) ISOs so far were made with DIC or DVDFab. But of course I tried it (when DumpDrive&Test was the correct option). Here's the log entry for the sectors, where the file is in:
22:12:30 - Read Blocks > 100/15908448< Pct > 0.00% - Speed 0.06MB/s during last >100< Blocks
22:12:50 - Read Blocks > 79600/15908448< Pct > 0.50% - Speed 7.94MB/s during last >79500< Blocks
22:13:00 - Read Blocks > 159100/15908448< Pct > 1.00% - Speed 14.77MB/s during last >79500< Blocks
and the log of the test afterwards for the file:
Filename >\BDMV\STREAM\00504.m2ts< Size GB > 0.00< Unit_Enc > 0< Unit_Unenc > 0< Unit_Err > 22:37:00 - Filename >\BDMV\STREAM\00504.m2ts< Size GB > 0.00< Unit_Enc > 0< Unit_Unenc > 0< Unit_Err > 90< Duration >0:00:00< TSTA
Besides, it's really difficult to see any errors even happening... at first I overlooked the 90 there:
https://i.imgur.com/YX5neHr.png
(https://i.imgur.com/YX5neHr.png if the pic isn't embedded)
Bahamuth
16th May 2023, 10:46
Found another ISO having the problem. Terminator 3 this time:
11:26:47 - ++ COPY ++ Pct > 9.67%< StartBlock >01798421< BlockLen >00000011<
11:26:47 - ++ DECODE ++ Pct > 9.67%< StartBlock >01798432< BlockLen >00000513< File >\BDMV\STREAM\00273.m2ts<
Filename >\BDMV\STREAM\00273.m2ts< Size GB > 0.00< Progress >1/1<
11:26:47 - ERROR! Unencrypted unit has errors! - stop now
the m2ts file is 1MB in size. And just like with the other disc, creating a backup with DVDFab tells about a read error when making an unencrypted backup and no read errors with an encrypted backup.
When ignoring all errors, it's only this file which has "bad" sectors:
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798432
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798464
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798496
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798528
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798560
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798592
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798624
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798656
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798688
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798720
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798752
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798784
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798816
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798848
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798880
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798912
Kinda looks like RipGuard/ARccOS on a BluRay. As encrypted backups work, I would think, that the file seems to have data which causes a program error upon decrypting?
binaryflow
10th June 2023, 08:55
Found another ISO having the problem. Terminator 3 this time:
11:26:47 - ++ COPY ++ Pct > 9.67%< StartBlock >01798421< BlockLen >00000011<
11:26:47 - ++ DECODE ++ Pct > 9.67%< StartBlock >01798432< BlockLen >00000513< File >\BDMV\STREAM\00273.m2ts<
Filename >\BDMV\STREAM\00273.m2ts< Size GB > 0.00< Progress >1/1<
11:26:47 - ERROR! Unencrypted unit has errors! - stop now
the m2ts file is 1MB in size. And just like with the other disc, creating a backup with DVDFab tells about a read error when making an unencrypted backup and no read errors with an encrypted backup.
When ignoring all errors, it's only this file which has "bad" sectors:
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798432
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798464
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798496
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798528
2023.05.16-11:43:43: read file BDMV\STREAM\00273.m2ts error Sector = 1798560
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798592
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798624
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798656
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798688
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798720
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798752
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798784
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798816
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798848
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798880
2023.05.16-11:43:44: read file BDMV\STREAM\00273.m2ts error Sector = 1798912
Kinda looks like RipGuard/ARccOS on a BluRay. As encrypted backups work, I would think, that the file seems to have data which causes a program error upon decrypting?Is RipGuard/ARccOS possible?
magician
21st September 2023, 21:12
1)
When converting a Pavtube BD+ table, BTAD 0.94 puts the FUT in bdplus/convtab/MK*.bin and is able to use it immediately. But when checking for existing tables (supposing the Pavtube table is deleted after conversion) BTAD still expects the old conv_tab_DiscID*.bin filename and isn't able to find the previously converted table.
2)
Printing the BD+ details seems to be broken now, unlike in recent versions of FindVUK.
2023-09-20 16:14:02 # 5468 # [I] main / Bluray_InitDisc / BD+ details - Date Gen 0
DanielH
27th December 2023, 09:19
I'll publish the source on github after adding the last 1 or 2 features I'd like to implement.
It's written in Purebasic - and this language also supports linux (but I've never tried to compile something for linux... so I don't know how easy it will be).
Did this ever happen? Or did someone make a Linux version?
nalor
29th December 2023, 21:55
Did this ever happen? Or did someone make a Linux version?
Not yet - but I'm still thinking about publishing the source code :D
coricopat
7th February 2024, 22:27
Hey Nalor
Not yet - but I'm still thinking about publishing the source code :D
I strongly hope you'll decide in favour of this.
My use case is about as follows:
I backup my own (legally bought) BDs/UHDs using MakeMKV's LibreDrive mode.
Being a perfectionist, I make right now three copies of the same BD:
A raw image copy (where the actual movie is still encrypted) using Linux' dd, with MakeMKV having been started but only do get the drive in LibreMode.
A decrypted backup with MakeMKV (where one would still have the BluRay folder structure, menus, etc.), just in case it should ever become impossible to use (1) to get that (libaacs and/or MakeMKV becomming unmaintained, etc. pp.)
A MKV version of (2) (respectively (1)), created with MakeMKV,... well again... just in case and to be on the safe side (also, playing back (1) or (2) in e.g. mpv works far less well, than playing back the MKV).
(1) I can play back directly with FLOSS (e.g. mpv) if, the VUK is known (which is usually the case it seems) and unless it uses BD+ (I know there's libbdplus, but since, AFAIU, it would execute some non-open blob code, I'd not even want to run that on my regular system). Same for BD-J.
(2) Is apparently fully decrypted, so it can be played back in any case, it seems (regardless of BD+, BD-J, whatsoever).
As of course (3).
The idea of (1) is mainly that I have a copy as close to my original medium as possible.
The idea of (2) and (3) is that I can play it back whatever comes.
Works fine, except that it eats up quite some storage.
So ideally I'd want to archive only (1) and be able - with pure open source - to get at least one or even better both (2) and (3) from (1).
I don't want to "cry wolf", but MakeMKV, while brilliant, isn't fully opensource (which I'm fine with)... so in principle it may disappear any time and if it's because of something unfortunate like the upstream author loosing interest or getting ill or worse (Heaven forbid!).
AFAIU, your program would do at least the step (1) -> (2).
Cheers,
Coricopat.
kujikita
3rd March 2024, 00:16
I had problems with BEE disks but it seems that BTAT works perfectly fine when I disable LibreDrive and ANY software like DVDFab, AnyDVD HD or anything like that. I had no clue why I got broken files before that.
nalor
18th July 2026, 14:41
Published release 1.01 - it's now a x64 executable :)
Originally the x64 change was the only planned one... but during testing of the build I noticed the one or the other section where I also could adapt things slightly and so there are also a few new features and fixes:
CHANGE: changed dump-drive internals from windows api to pure MMC calls - as result the size is exactly as provided by the drive (using windows api the last 288 blocks with the backup of the udf file structure are missing) - so new dumps are "slightly" larger, although the additional data is only a copy of the data already included in the first 288 blocks of the image.
FIX: from time to time old preferences where removed as not supported any longer, but in 2023 this "removal" stopped working. Root cause has been fixed and all entries, that should have been removed in the meantime, are now really removed
CHANGE: include linenumber in logfiles for easier support in case of errors
CHANGE: selecting to "exit" the application now properly bubbles this information up the the main procedure to perform a "clean" exit instead of a hard immediate exit
FIX: do not finish with >100% progress when checking a drive (was only an UI issue)
FEATURE: for decryption of a BD+ protected disc the proper fixup tables are required - those are now automatically downloaded from the online database
FEATURE: also for BD+: now the filenames starting with MediaKey as defined by @candela in his post here are also working: Blu-ray playback with libaacs & libbdplus - so no need to manually rename them
Various other changes/fixes (BTAD uses a lot of shared source with FindVUK and so lot's of changes created for FV are now included in the BTAD build)
As always: in case of problems let me know - thanks :)
Emulgator
18th July 2026, 19:48
404:
https://fvonline-db.bplaced.net/bluraytest/BlurayTestAndDecrypt_1.014.zip
Better:
https://fvonline-db.bplaced.net/bluraytest/BlurayTestAndDecrypt_1.01.zip
nalor
18th July 2026, 21:54
Thanks - fixed the link in the first post :)
gareth41
15th August 2026, 00:24
Is it possible to get the source code published? I would like to port it over to Linux
nalor
17th August 2026, 21:19
Is it possible to get the source code published? I would like to port it over to Linux
I'm always thinking of open sourcing everything .... now after it's x64 compatible ...
Any idea about the correct license? I'm always thinking of using the "unlicense" I've already used in the Kodi plugin ...
coricopat
17th August 2026, 21:32
Usually I'd always go for GPL, though in this particular case it's probably less of a problem if one goes for something non-copyleft.
So I'd probably simply suggest to go for and OSI/DFSG compatible standard licence, that means it would have best chances to get included in e.g. Linux distributions (which is not that unlikely, I mean e.g. bluraybackup is already part of Debian).
magician
18th August 2026, 08:34
For a program like this with network components, if you are considering something akin to GPL and depending on which parts you are releasing, I'd also suggest looking at the AGPL, so that anyone who decides to modify your program to host on their own server for users would need to make any source code modifications available under the same AGPL license.
nalor
20th August 2026, 20:03
I like the "Unlicense" as it just means "take the code and to whatever you want with" - means it's public domain.
https://unlicense.org/
And as my apps are written in Purebasic and cannot be integrated in an automated build process, I doubt there's any chance to get it included in a Linux distribution.
gareth41
21st August 2026, 06:56
I like the "Unlicense" as it just means "take the code and to whatever you want with" - means it's public domain.
https://unlicense.org/
And as my apps are written in Purebasic and cannot be integrated in an automated build process, I doubt there's any chance to get it included in a Linux distribution.
Unlicense sounds like a good idea. I would like to look through the code and see what I can use and write in c. I have started developing a similar tool which will run on Linux and compiles with gcc, so far I have it reading the UDF 2.5 format and decrypting the m2ts files in place, last night I spent some time analyzing the bdplus fixup tables and have implemented some functionality there too and got it to a point where its working on the James Bond 1080p releases from around 2008 2009, but I haven't tested it on much else at this stage.
coricopat
21st August 2026, 14:20
I have started developing a similar tool which will run on Linux and compiles with gcc
Have you had a look at:
https://git.golem.linux.it/matteobin/bluraybackup
?
I mean it's often good to join existing efforts than to re-invent everything :-)
nalor
21st August 2026, 19:42
And this one is imho also an option in linux:
https://freemkv.org/
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.