App.pbm: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 28: Line 28:
                     public byte[] blankval2;                    // 0x0A4 - seems to always be 00 00 00 00  
                     public byte[] blankval2;                    // 0x0A4 - seems to always be 00 00 00 00  
                     public uint UnkA8;                          // 0x0A8 - Again not sure seems to always be 00 01 00 00
                     public uint UnkA8;                          // 0x0A8 - Again not sure seems to always be 00 01 00 00
                     public uint Lenght;                        // 0x0AC - Length of file FF holder 5B 01 00 00
                     public uint Length;                        // 0x0AC - Length of file FF holder 5B 01 00 00
                     public byte[] BlockB0_BF;                  // 0x0B0 - this seems to be padding again B0- BF length 50
                     public byte[] BlockB0_BF;                  // 0x0B0 - this seems to be padding again B0- BF length 50
                     public byte[] FFStartHolder;                // 0x100 - Start of the FF holder - read the Length from the length attribute
                     public byte[] FFStartHolder;                // 0x100 - Start of the FF holder - read the Length from the length attribute
Line 62: Line 62:
                 UnkA8:100
                 UnkA8:100


                 Lenght:15B
                 Length:15B


                 BlockB0_BF:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
                 BlockB0_BF:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Latest revision as of 19:38, 31 January 2022

app.pbm[edit | edit source]

location: [PS4VOLUME]/app/Productcode/app.pbm

it seems to always be in the same place as the app.pkg file

  • note it always seems to have a .backup made in the same location

Tools to Read[edit | edit source]

PS4_Tools


Example[edit | edit source]

HEXed.it

               public class PBMStruct
               {
                   public byte[] pbm_magic;                      // 0x000 - 0x7064626D //should be the same everywhere
                   public byte[] Productcode;                  // 0x004 - 0x435553413030323635 = "CUSA00265" remember to grab the extra bytes at the end 12
                   public uint emptyval;                       // 0x010 - not sure this just empty for some reason
                   public uint Unk1;                           // 0x014 - seems to always be 90 09 00 00
                   public uint Verion;                         // 0x018 - seems to always be 00 00 01 00
                   public uint emptyval2;                       // 0x01C - not sure this just empty for some reason
                   public uint Unk2;                           // 0x020 - examples 00 00 6C CE
                   public byte[] Padding;                      // 0x024 - seems to be padding length 3C
                   public byte[] Enc;                          // 0x060 - enc? hash ? length 20
                   public byte[] blankval;                     // 0x080 - blank values length 20
                   public byte[] UnkA0;                        // 0x0A0 - seems to always be 01 00 00 00 
                   public byte[] blankval2;                    // 0x0A4 - seems to always be 00 00 00 00 
                   public uint UnkA8;                          // 0x0A8 - Again not sure seems to always be 00 01 00 00
                   public uint Length;                         // 0x0AC - Length of file FF holder 5B 01 00 00
                   public byte[] BlockB0_BF;                   // 0x0B0 - this seems to be padding again B0- BF length 50
                   public byte[] FFStartHolder;                // 0x100 - Start of the FF holder - read the Length from the length attribute
                   public byte[] EndHash;                      // EOF for 20 bytes might be a hash? FC 50 65 C4 27 B0 7C 49 98 E8 26 3B 1D 85 E2 87 93 EB 38 F4 A3 F0 50 ..
               }

Example output

                pkg_magic:pdbm
                Productcode:CUSA00265
                emptyval:0
                Unk1:990
                Verion:10000
                emptyval2:0
                Unk2:AD30000
                Padding:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
                Enc:7FF2C8FA6F69D579BA2C9263A03E9A018F3153760F96978FE4F00892AE50881D
                blankval:0000000000000000000000000000000000000000000000000000000000000000
                UnkA0:01000000
                blankval2:00000000
                UnkA8:100
                Length:15B
                BlockB0_BF:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
                FFStartHolder:FFFFFFFF...FFFFFFE0
                EndHash:ACC5E28BC215B57ACDC27E01D2283E577DA96F27F1E91332AD4029EEE67B6EC4