Log in

View Full Version : Blu-Ray Menu Editing Brainstorming


crl2007
22nd February 2010, 12:01
I'm opening this thread for a little brainstorming concerning one particular java menu. Certain scripts are calling out strips of fonts instead of whole words.

I uploaded here (http://www.sendspace.com/file/15724b) an archive containing a blu-ray menu. I stripped everything else and I shrinked it to 20 mb. Full menu structure. The password is doom9. I do the following:

1. Extract the whole jar file with 7-zip.

2. Edit the fs.qco file with a hex editor and write another language instead of spanish.

3. Replace the fs.qco in the jar with 7-zip too.

Some discs have langMap_res.qct for menu writing, but here it has no role in our menu.

At this point, when loaded, the menu crashes. Nothing appears. If I edit it back through the same method and write Spanish, as the original was, the menu now works. I first believed to be size related, but size has nothing to do with it. It must be something that I'm not seeing. Some dependency.

I narrowed it down to a SHA-1 Digest from the MANIFEST.MF file, a thing that is too hard for me. The strings have the same lenght.

Manifest-Version: 1.0

Name: a.class
SHA1-Digest: /uMe1nidJ+WNV+uA/7rqbtF4fEs=

Name: aa.class
SHA1-Digest: 11Df5L9r6/PVGF/bc59pqjUyr8Q=

Name: aaa.class
SHA1-Digest: MMcCZw+wmmPWoLppJAyXsSuh1NE=

Name: aab.class
SHA1-Digest: 5cm3005k8sLu9VY25ge/bufaFUQ=

That's how all of them are. Same lenght. 75% of the work is done, the other 25 I'm not good at. Maybe someone here knows this kind of things.

deank
22nd February 2010, 13:44
I believe that the only way to do it is to re-sign the changed JAR file. It is obvious that the guys from SlySoft already do it (by putting their stuff in the sly folder of each jar as sly/SlyReg.class.

Once you change the jar and verify it with jarsigner (http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html) you immediately get the expected error:

jarsigner: java.lang.SecurityException: SHA1 digest error for FS.QCO

Have in mind that both the contents of the jar AND the manifest itself are hashed/signed. So once you re-sign the jar (it's manifest is being recreated with the new SHA1 value) the same must be done for the *.SF file (which has hash information about the manifest itself). You can read more about it here (http://java.sun.com/docs/books/tutorial/deployment/jar/intro.html).

As far as I can see, jarsigner can sign changed jar archives, but it requires keys to do it.

jarsigner.exe is part of the jdk, so if you have it installed you'll find it there. On my system it is located in:

C:\Program Files\Java\jdk1.6.0_11\bin>

Dean

edit: Something else comes to my mind. I wonder what will happen if you change the .jar BEFORE decrypting with AnyHDDVD. I believe JAR files are not encrypted, so after anyhdddvd decrypts the disc it will recreate the proper manifests for all changed jars :) and your changed menu will work.

crl2007
22nd February 2010, 17:36
Recreated the manifest from scratch with my own public + private key. Still the menu crashes.

jarsigner: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes Now this error comes to the surface.

Something else comes to my mind. I wonder what will happen if you change the .jar BEFORE decrypting with AnyHDDVD. I believe JAR files are not encrypted, so after anyhdddvd decrypts the disc it will recreate the proper manifests for all changed jars and your changed menu will work.

After recreating that manifest in a thousand ways, the only thing remaining is this. I'll report back.

l.e. After 3 tests I managed to succeed this:

1. http://thumbnails6.imagebam.com/6925/e04cbc69245541.gif (http://www.imagebam.com/image/e04cbc69245541) Main Menu - Some letters are missing. In the first test whole buttons were missing.

2. http://thumbnails10.imagebam.com/6925/7b16d769245542.gif (http://www.imagebam.com/image/7b16d769245542) Subtitle Menu - Now I have ROMANA instead of SPANISH, but 2 letters are missing. The same, in the first test whole buttons were missing.

It's a progress.

crl2007
22nd February 2010, 23:34
SUCCESS !!! After so many days and hours of testing, I finally did it. I'll add the method to my guide for this kind of menu. There still is another menu style with font strips, but for that I'll have to start from the beginning with the tests. For the time being I'll take a vacation from this and just relax.