App.pbm: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
(Adding app.pbm info to the ps4 wiki)
 
No edit summary
Line 1: Line 1:
== app.pbm ==
== app.pbm ==
location: [PS4VOLUME]/app/[[Productcode]]/app.pbm
location: [PS4VOLUME]/app/[[Productcode]]/app.pbm
it seems to always be in the same place as the app.pkg file  
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
* note it always seems to have a .backup made in the same location
== Tools to Read ==
[https://github.com/xXxTheDarkprogramerxXx/PS4_Tools PS4_Tools]


=== Example ===
=== Example ===
https://hexed.it/#base64+lzjb:app.pdbm%20example;AHBkYm1DVVNBQDAwMjY1AAwBkJoJBAgBBAUABNMKAAUB2AN/8sj6b2nVAHm6LJJjoD6aAAGPMVN2D5aXAI/k8AiSrlCI1h10WRSGAAAJWwAEdDB9tCD//AH8QvxC/EL8Qv8A//////////8A////////4KwAxeKLwhW1es0Awn4B0ig+V30AqW8n8ekTMq0AQCnu5ntuxA==
[https://hexed.it/#base64+lzjb:app.pdbm%20example;AHBkYm1DVVNBQDAwMjY1AAwBkJoJBAgBBAUABNMKAAUB2AN/8sj6b2nVAHm6LJJjoD6aAAGPMVN2D5aXAI/k8AiSrlCI1h10WRSGAAAJWwAEdDB9tCD//AH8QvxC/EL8Qv8A//////////8A////////4KwAxeKLwhW1es0Awn4B0ig+V30AqW8n8ekTMq0AQCnu5ntuxA== 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 Lenght;                        // 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
 
                Lenght:15B
 
                BlockB0_BF:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 
                FFStartHolder:FFFFFFFF...FFFFFFE0
 
                EndHash:ACC5E28BC215B57ACDC27E01D2283E577DA96F27F1E91332AD4029EEE67B6EC4


{{File Formats}}
{{File Formats}}
<noinclude>[[Category:Main]]</noinclude>
<noinclude>[[Category:Main]]</noinclude>

Revision as of 13:17, 12 May 2020

app.pbm

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

PS4_Tools


Example

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 Lenght;                         // 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
                Lenght:15B
                BlockB0_BF:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
                FFStartHolder:FFFFFFFF...FFFFFFE0
                EndHash:ACC5E28BC215B57ACDC27E01D2283E577DA96F27F1E91332AD4029EEE67B6EC4