Talk:SELF - SPRX: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) |
CelesteBlue (talk | contribs) m (CelesteBlue moved page Talk:SELF File Format and Decryption to Talk:SELF - SPRX) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== | == nas_plugin.sprx == | ||
<pre> | <pre> | ||
SELF | SELF | ||
Line 267: | Line 171: | ||
== lv2_kernel.self == | |||
<pre> | <pre> | ||
SELF: | SELF: | ||
Line 493: | Line 398: | ||
== Sign executables for 3.73+ (mathieulh's "drama") == | |||
<pre> | <pre> | ||
[21:00:58] <Mathieulh> selfs are a mess to generate properly because a lot of values need to be calculated from the original elf file | [21:00:58] <Mathieulh> selfs are a mess to generate properly because a lot of values need to be calculated from the original elf file |
Latest revision as of 19:27, 25 December 2019
nas_plugin.sprx[edit source]
SELF 00000000 53 43 45 00 00 00 00 02 00 04 00 01 00 00 02 40 |SCE............@| magic SCE - version=2 - flags=4 - type=1=self - meta_offset=0x240 00000010 00 00 00 00 00 00 05 80 00 00 00 00 00 06 4d 58 |..............MX| header_len=0x580 - elf filesize=0x64d58 00000020 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 70 |...............p| unknown=3 - appinfo_offset=0x70 00000030 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 d0 |................| elf_offset=0x90 - phdr_offset = 0xd0 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 80 |................| shdr_offset=0x00 - section_info_offset=0x180 00000050 00 00 00 00 00 00 01 e0 00 00 00 00 00 00 01 f0 |................| sceversion_offset=0x1e0 - controlinfo_offset=0x1f0 00000060 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 00 |.......p........| controlinfo_size=0x70 - unknown=0 APP INFO: 00000070 10 70 00 00 52 00 00 01 01 00 00 02 00 00 00 04 |.p..R...........| authid - unknown 00000080 00 03 00 40 00 00 00 00 00 00 00 00 00 00 00 00 |...@............| programversion=0x030040 - unknown ELF: 00000090 7f 45 4c 46 02 02 01 66 00 00 00 00 00 00 00 00 |.ELF...f........| ident 000000a0 ff a4 00 15 00 00 00 01 00 00 00 00 00 00 00 00 |................| type=0xffa4 - machine=0x15 - version=1 - entry_point=0x00 000000b0 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 |.......@........| phdr_offset=0x40 - shdr_offset=0 000000c0 01 00 00 00 00 40 00 38 00 03 00 00 00 00 00 00 |[email protected]........| flags=0x100 - elf_header_size=0x40 - phentsize=0x38 - phnum=3 - shentsize=shnum=shstrndx=0 PHDR: 000000d0 00 00 00 01 00 40 00 05 00 00 00 00 00 00 00 f0 |.....@..........| type=1 - flags=0x400005 - offset_in_file=0xf0 000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 5a 20 |..............Z | virtual_addr = 0x0 - physical_addr=0x45a20 000000f0 00 00 00 00 00 04 99 88 00 00 00 00 00 04 99 88 |................| segment_size=0x49988 - seg_mem_size = 0x49988 00000100 00 00 00 00 00 00 00 10 alignment=0x10 00 00 00 01 00 60 00 06 |.............`..| type=1 - flags=0x600006 00000110 00 00 00 00 00 04 9a 80 00 00 00 00 00 04 99 90 |................| offset_in_file=0x49a80 virtual_addr = 0x49990 00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 a8 |..............9.| physical_addr=0x0 - segment_size=0x39a8 00000130 00 00 00 00 00 00 77 18 00 00 00 00 00 00 00 10 |......w.........| seg_mem_size = 0x7718 - alignment=0x10 00000140 70 00 00 a4 00 00 00 00 00 00 00 00 00 04 d4 30 |p..............0| type=0x700000a4 - flags=0x00 - offset_in_file=0x4d430 00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| virtual_addr = 0x0 - physical_addr=0x0 00000160 00 00 00 00 00 01 79 28 00 00 00 00 00 00 00 00 |......y(........| segment_size=0x17928 - seg_mem_size = 0x0 00000170 00 00 00 00 00 00 00 10 alignment=0x10 00 00 00 00 00 00 00 00 |................| padding SECTION INFO: 00000180 00 00 00 00 00 00 06 70 00 00 00 00 00 02 00 17 |.......p........| offset=0x670 - size=0x20017 00000190 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 |................| compressed=2 - unknown=0 - unknown=0 - encrypted=1 000001a0 00 00 00 00 00 02 06 90 00 00 00 00 00 00 1c ac |................| offset=0x20690 - size=0x1cac 000001b0 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 |................| compressed=2 - unknown=0 - unknown=0 - encrypted=1 000001c0 00 00 00 00 00 02 23 50 00 00 00 00 00 00 4b 0c |......#P......K.| offset=0x22350 - size=0x4b0c 000001d0 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 |................| compressed=2 - unknown=0 - unknown=0 - encrypted=1 SCE VERSION INFO: 000001e0 00 00 00 01 00 00 00 00 00 00 00 10 00 00 00 00 |................| unknown=1 - unknown=0 - unknown=0x10 unknown=0 CONTROL INFO: 000001f0 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00 01 |.......0........| type=1=control_flags - size=0x30 - unknown=1 00000200 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |@...............| 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000220 00 00 00 02 00 00 00 40 00 00 00 00 00 00 00 00 |.......@........| type=2=file_digest - size=0x40 - unknown0 00000230 62 7c b1 80 8a b9 38 e3 2c 8c 09 17 08 72 6a 57 |b|....8.,....rjW| digest1 ## metadata info: unknown 00000240 9e 25 86 e4 70 99 02 ae b8 65 22 59 09 70 2f ed |.%..p....e"Y.p/.| digest1 (4 bytes) - digest2 00000250 cb da 56 87 a5 24 54 8e 00 00 00 00 00 00 00 00 |..V..$T.........| digest2 - padding METADATA INFO: 00000260 e6 18 5e 1c 6b 3f 6c 6a 75 47 5d a4 f9 b1 3d 78 |..^.k?ljuG]...=x| key 00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| key 00000280 d2 5a 0b 9a 13 fe 60 ca a9 2b 90 a7 f1 df 35 7c |.Z....`..+....5|| iv 00000290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| iv METADATA HEADER: 000002a0 00 00 00 00 00 00 05 00 00 00 00 01 00 00 00 03 |................| signature_input_length=0x500 - unknown=1 - section_count=3 000002b0 00 00 00 18 00 00 00 30 00 00 00 00 00 00 00 00 |.......0........| key_count=0x18 - signature_info_size=0x30 - unknown=0 - unknown=0 METADATA SECTION HEADER: 000002c0 00 00 00 00 00 00 06 70 00 00 00 00 00 02 00 17 |.......p........| data_offset=0x670 - data_size=0x20017 000002d0 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 00 |................| unknown=2 - program_idx=0 - unknown=2 - sha1_index=0 000002e0 00 00 00 03 00 00 00 06 00 00 00 07 00 00 00 02 |................| encrypted=3=yes - key_index=6 ivec_index=7 compressed=2=yes 000002f0 00 00 00 00 00 02 06 90 00 00 00 00 00 00 1c ac |................| data_offset=0x670 - data_size=0x20017 00000300 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 08 |................| unknown=2 - program_idx=1 - unknown=2 - sha1_index=8 00000310 00 00 00 03 00 00 00 0e 00 00 00 0f 00 00 00 02 |................| encrypted=3=yes - key_index=14 ivec_index=15 compressed=2=yes 00000320 00 00 00 00 00 02 23 50 00 00 00 00 00 00 4b 0c |......#P......K.| data_offset=0x670 - data_size=0x20017 00000330 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 10 |................| unknown=2 - program_idx=2 - unknown=2 - sha1_index=10 00000340 00 00 00 03 00 00 00 16 00 00 00 17 00 00 00 02 |................| encrypted=3=yes - key_index=16 ivec_index=17 compressed=2=yes METADATA KEYS: 00000350 f8 2b ca 1f 5b 03 16 30 69 75 82 8c b4 95 76 c5 |.+..[..0iu....v.| key1 00000360 bd 03 09 ae 00 00 00 00 00 00 00 00 00 00 00 00 |................| key2 00000370 cb 18 c1 9e 44 d3 90 be db d9 6d 59 00 54 fd 30 |....D.....mY.T.0| key3 00000380 4a b4 75 27 d1 bb b7 e0 0f 5b 60 4c 8b 67 c6 da |J.u'.....[`L.g..| key4 00000390 83 98 13 bf ea 53 0f bd af 83 52 17 51 a1 74 0a |.....S....R.Q.t.| key5 000003a0 ab ea 6c 9e b9 f3 4b 8b 0a db e1 e6 96 7e 17 a6 |..l...K......~..| key6 000003b0 c6 5a c0 d3 a7 68 e1 7a 89 41 2a 32 15 73 82 1b |.Z...h.z.A*2.s..| key7 000003c0 2c e6 7f 70 62 86 6e a9 36 ec f8 99 3a d4 ed 88 |,..pb.n.6...:...| key8 000003d0 69 7a ee a0 13 64 c9 38 7d 27 88 9e 95 76 ea 4a |iz...d.8}'...v.J| key9 000003e0 2f 31 8e 13 00 00 00 00 00 00 00 00 00 00 00 00 |/1..............| key10 000003f0 cb 18 c1 9e 44 d3 90 be db d9 6d 59 00 54 fd 30 |....D.....mY.T.0| key11 00000400 4a b4 75 27 d1 bb b7 e0 0f 5b 60 4c 8b 67 c6 da |J.u'.....[`L.g..| key12 00000410 83 98 13 bf ea 53 0f bd af 83 52 17 51 a1 74 0a |.....S....R.Q.t.| key13 00000420 ab ea 6c 9e b9 f3 4b 8b 0a db e1 e6 96 7e 17 a6 |..l...K......~..| key14 00000430 c6 5a c0 d3 a7 68 e1 7a 89 41 2a 32 15 73 82 1b |.Z...h.z.A*2.s..| key15 00000440 2c e6 7f 70 62 86 6e a9 36 ec f8 99 3a d4 ed 88 |,..pb.n.6...:...| key16 00000450 ec 9a bc 91 0f 41 44 69 02 14 b2 8f bd 02 79 c4 |.....ADi......y.| key17 00000460 51 6d ac 7a 00 00 00 00 00 00 00 00 00 00 00 00 |Qm.z............| key18 00000470 cb 18 c1 9e 44 d3 90 be db d9 6d 59 00 54 fd 30 |....D.....mY.T.0| key19 00000480 4a b4 75 27 d1 bb b7 e0 0f 5b 60 4c 8b 67 c6 da |J.u'.....[`L.g..| key20 00000490 83 98 13 bf ea 53 0f bd af 83 52 17 51 a1 74 0a |.....S....R.Q.t.| key21 000004a0 ab ea 6c 9e b9 f3 4b 8b 0a db e1 e6 96 7e 17 a6 |..l...K......~..| key22 000004b0 c6 5a c0 d3 a7 68 e1 7a 89 41 2a 32 15 73 82 1b |.Z...h.z.A*2.s..| key23 000004c0 2c e6 7f 70 62 86 6e a9 36 ec f8 99 3a d4 ed 88 |,..pb.n.6...:...| key24 SIGNATURE INFO: 000004d0 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00 00 |.......0........| unknown=1 - signature_size=0x30 - unknown=0 000004e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| unknown=0 - unknown=0 000004f0 00 00 00 00 00 00 00 7b 00 00 00 01 00 02 00 00 |.......{........| unknown=0 - unknown=0 00000500 00 1a 7a b5 11 0a 4a 41 2b 8e d6 8b 9e 18 1c 74 |..z...JA+......t| R[21] 00000510 58 5b 0e 94 a7 00 c2 24 cd 2d d1 1f 9b e2 81 71 |X[.....$.-.....q| R (5 bytes) - S[21] 00000520 dc 45 22 83 db 9e 72 38 2f 94 00 00 00 00 00 00 |.E"...r8/.......| S (10 bytes) - padding 00000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding 00000540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding 00000550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding 00000560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding 00000570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding ENCRYPTED ELF HEADER?: 00000580 36 2a 61 73 99 41 75 19 cc a7 42 22 fb f4 b5 cc |6*as.Au...B"....| 00000590 68 06 c7 c1 7e b3 8d 49 d5 41 a7 ec b7 07 02 3b |h...~..I.A.....;| 000005a0 b9 db ca 53 04 fb 64 b9 e8 82 f4 3c 58 13 60 0d |...S..d....<X.`.| 000005b0 97 80 25 f5 13 a7 1b 09 35 e5 dd 9a 56 79 b2 a3 |..%.....5...Vy..| 000005c0 ba c9 fb f2 f6 10 47 22 f2 a7 94 a9 06 b8 68 7b |......G"......h{| 000005d0 f6 3d 07 5b 29 51 e6 70 12 17 93 8e c8 01 bb 80 |.=.[)Q.p........| 000005e0 8d f6 c1 93 94 60 51 0c 76 43 99 4a dd 26 1a 56 |.....`Q.vC.J.&.V| 000005f0 4d ba 8d be df 91 70 93 46 ca b2 2d 67 24 5f 40 |M.....p.F..-g$_@| 00000600 ba 4d 92 b2 f0 c7 c8 67 92 f4 fe 24 ba 42 4d 90 |.M.....g...$.BM.| 00000610 9c 93 b9 9d 01 4a dc 4d 99 95 8d e9 92 97 2e ed |.....J.M........| 00000620 8d 82 a4 0a 19 5b 85 3d 53 cf 24 a3 61 50 5f 42 |.....[.=S.$.aP_B| 00000630 a6 44 78 67 29 f5 ae 04 55 fd 7a cd fe 63 d9 63 |.Dxg)...U.z..c.c| 00000640 e4 18 95 0c 65 e5 22 a6 ba 8b fe ca a5 2e 0f 77 |....e."........w| 00000650 b7 3b c3 7b 81 03 72 67 f3 7c 16 68 ab 05 30 78 |.;.{..rg.|.h..0x| 00000660 d4 dc 5e 11 30 d5 cf 1a 55 fe 65 94 f9 18 b9 ab |..^.0...U.e.....| PROGRAM SECTION 0: 00000670 78 9c e4 bd 0f 7c 54 d5 99 3f 7c ce bd 13 92 00 |x....|T..?|.....| 00000680 6a d0 a0 a1 24 90 00 76 c1 60 89 5b ec 6f 62 82 |j...$..v.`.[.ob.| 00000690 4e 14 f7 73 31 d8 37 76 61 8d 8a ed 84 40 37 29 |N..s1.7va....@7)| [....] 00020670 4b e6 31 a2 f7 0a 34 bf 4e cb 29 8c 61 c8 0a 22 |K.1...4.N.).a.."| 00020680 f7 ff 01 c0 d7 e4 42 bc 3f 7a 48 af 45 ef 28 3a |......B.?zH.E.(:| PROGRAM SECTION 1: 00020690 78 9c d5 9a 8d 5f d5 e5 dd c7 7f e7 9c 9f 0e 2d |x...._.........-| 000206a0 8b 9a 95 36 2b d7 50 f1 91 c3 83 88 88 82 8a 8a |...6+.P.........| 000206b0 8a 8a 0f 6b 6c b3 3b 89 07 41 11 f0 80 0a 8a 0a |...kl.;..A......| [...] 00022330 4e bb 13 f9 17 07 fd 1f 90 b6 10 8a bc 3f 7a 48 |N............?zH| 00022340 af 45 ef 28 3a 05 98 10 3f e8 79 3a da 48 d5 2c |.E.(:...?.y:.H.,| PROGRAM SECTION 2: 00022350 78 9c 75 bd 7b b4 9d f5 79 df b9 cf d1 91 10 12 |x.u.{...y.......| 00022360 11 ba 9c fb f5 3d f7 fb fd 0e 42 da a0 2b e8 82 |.....=....B..+..| 00022370 84 24 74 01 27 1b 73 13 08 1b 01 02 24 ae 5b 20 |.$t.'.s.....$.[ | 00022380 09 64 0b 24 21 01 72 4d d2 9d c4 ed f2 4c 3d 0d |.d.$!.rM.....L=.| [...] 00026e20 5d f5 3c 0f 1e ea eb 59 99 79 f0 f0 6d d7 21 fa |].<....Y.y..m.!.| 00026e30 e1 d5 7a ff 61 1e 3c 7c 5b eb 6b 1e 3c 7c db 75 |..z.a.<|[.k.<|.u| 00026e40 08 1e 7e cd be 61 fe b0 5a df bf 9e 2f e0 73 b2 |..~..a..Z.../.s.| 00026e50 d2 d1 0f 0f be fa ff 01 59 ad 0c 11 |........Y...| 00026e5c
lv2_kernel.self[edit source]
SELF: 00000000 53 43 45 00 00 00 00 02 00 00 00 01 00 00 01 e0 |SCE.............| magic SCE - version=2 - flags=0 - type=1=self - meta_offset=0x1e0 00000010 00 00 00 00 00 00 05 00 00 00 00 00 00 35 93 98 |.............5..| header_len=0x500 - elf filesize=0x359398 00000020 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 70 |...............p| unknown=3 - appinfo_offset=0x70 00000030 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 d0 |................| elf_offset=0x90 - phdr_offset = 0xd0 00000040 00 00 00 00 00 17 47 58 00 00 00 00 00 00 01 40 |......GX.......@| shdr_offset=0x174758 - section_info_offset=0x140 00000050 00 00 00 00 00 00 01 80 00 00 00 00 00 00 01 90 |................| sceversion_offset=0x180 - controlinfo_offset=0x190 00000060 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 00 |.......p........| controlinfo_size=0x70 - unknown=0 APP INFO: 00000070 10 50 00 00 03 00 00 01 05 00 00 02 00 00 00 03 |.P..............| authid - unknown 00000080 00 03 00 55 00 00 00 00 00 00 00 00 00 00 00 00 |...U............|programversion=0x030055 - unknown ELF: 00000090 7f 45 4c 46 02 02 01 66 00 00 00 00 00 00 00 00 |.ELF...f........| ident 000000a0 00 02 00 15 00 00 00 01 80 00 00 00 00 00 01 00 |................| type=0x02 - machine=0x15 - version=1 - entry_point=0x8000000000000100 000000b0 00 00 00 00 00 00 00 40 00 00 00 00 00 35 90 d8 |[email protected]..| phdr_offset=0x40 - shdr_offset=0x3590d8 000000c0 00 00 00 00 00 40 00 38 00 02 00 40 00 0b 00 0a |[email protected]...@....| flags=0x0 - elf_header_size=0x40 - phentsize=0x38 - phnum=2 - shentsize=0x40 - shnum=11 shstrndx=10 PHDR: 000000d0 00 00 00 01 00 00 00 05 00 00 00 00 00 01 00 00 |................| type=1 - flags=0x5 - offset_in_file=0x10000 000000e0 80 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 |................| virtual_addr=0x8000000000000000 - physical_addr=0x8000000000000000 000000f0 00 00 00 00 00 33 29 48 00 00 00 00 00 33 29 48 |.....3)H.....3)H| segment_size=0x332948 - seg_mem_size = 0x332948 00000100 00 00 00 00 00 01 00 00 alignment=0x10000 00 00 00 01 00 00 00 06 |................| type=1 - flags=0x6 00000110 00 00 00 00 00 34 29 80 80 00 00 00 00 33 29 80 |.....4)......3).| offset_in_file=0x342980 - virtual_addr=0x8000000000332980 00000120 80 00 00 00 00 33 29 80 00 00 00 00 00 01 67 10 |.....3).......g.| physical_addr=0x8000000000332980 - segment_size=0x16710 00000130 00 00 00 00 00 13 23 e0 00 00 00 00 00 01 00 00 |......#.........| seg_mem_size=0x1323e0 - alignment=0x10000 SECTION INFO: 00000140 00 00 00 00 00 01 05 00 00 00 00 00 00 15 e8 cf |................| offset=0x10500 - size=0x15e8cf 00000150 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 |................| compressed=2 - unknown=0 - unknown=0 - encrypted=1 00000160 00 00 00 00 00 16 ee 10 00 00 00 00 00 00 58 ff |..............X.| offset=0x16ee10 - size=0x58ff 00000170 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 |................| compressed=2 - unknown=0 - unknown=0 - encrypted=1 SCE VERSION INFO: 00000180 00 00 00 01 00 00 00 00 00 00 00 10 00 00 00 00 |................| unknown=1 - unknown=0 - unknown=0x10 unknown=0 CONTROL INFO: 00000190 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00 01 |.......0........| type=1=control_flags - size=0x30 - unknown=1 000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001c0 00 00 00 02 00 00 00 40 00 00 00 00 00 00 00 00 |.......@........| type=2=file_digest - size=0x40 - unknown0 000001d0 62 7c b1 80 8a b9 38 e3 2c 8c 09 17 08 72 6a 57 |b|....8.,....rjW| digest1 ## metadata info: unknown 000001e0 9e 25 86 e4 db 07 41 be 58 79 52 c4 5c 72 aa a9 |.%....A.XyR.\r..| digest1 (4 bytes) - digest2 000001f0 15 bf a6 78 b2 6a 71 f2 00 00 00 00 00 00 00 00 |...x.jq.........| digest2 - padding METADATA INFO: 00000200 f3 f3 d1 7d 4d d1 54 0f 1c 83 7a 1f d2 ba 4a f8 |...}M.T...z...J.| key 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| key 00000220 ab 43 41 53 e8 2e 40 43 63 2b 44 6d 47 12 bb 83 |.CAS..@Cc+DmG...| iv 00000230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| iv METADATA HEADER: 00000240 00 00 00 00 00 00 04 80 00 00 00 01 00 00 00 03 |................| signature_input_length=0x480 - unknown=1 - section_count=3 00000250 00 00 00 16 00 00 00 30 00 00 00 00 00 00 00 00 |.......0........| key_count=0x16 - signature_info_size=0x30 - unknown=0 - unknown=0 METADATA SECTION HEADER: 00000260 00 00 00 00 00 01 05 00 00 00 00 00 00 15 e8 cf |................| data_offset=0x10500 - data_size=0x15e8cf 00000270 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 00 |................| unknown=2 - program_idx=0 - unknown=2 - sha1_index=0 00000280 00 00 00 03 00 00 00 06 00 00 00 07 00 00 00 02 |................| encrypted=3=yes - key_index=6 ivec_index=7 compressed=2=yes 00000290 00 00 00 00 00 16 ee 10 00 00 00 00 00 00 58 ff |..............X.| data_offset=0x16ee10 - data_size=0x58ff 000002a0 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 08 |................| unknown=2 - program_idx=1 - unknown=2 - sha1_index=8 000002b0 00 00 00 03 00 00 00 0e 00 00 00 0f 00 00 00 02 |................| encrypted=3=yes - key_index=14 ivec_index=15 compressed=2=yes 000002c0 00 00 00 00 00 17 47 58 00 00 00 00 00 00 02 c0 |......GX........| data_offset=0x174758 - data_size=0x2c0 000002d0 00 00 00 01 00 00 00 03 00 00 00 02 00 00 00 10 |................| unknown=1 - program_idx=3 - unknown=2 - sha1_index=16 000002e0 00 00 00 01 ff ff ff ff ff ff ff ff 00 00 00 01 |................| encrypted=1=no - key_index=-1 ivec_index=-1 compressed=1=no METADATA KEYS: 000002f0 a0 40 36 6b 2d 8a 50 99 1e b3 0c 53 e5 9b 5d 6e |[email protected]..]n| key1 00000300 61 2c ac b8 00 00 00 00 00 00 00 00 00 00 00 00 |a,..............| key2 00000310 a0 79 91 e9 66 93 d8 d0 cc 57 c7 da c5 7d df 40 |.y..f....W...}.@| key3 00000320 78 d3 5a 96 be 8d 67 10 44 0b 4a 2d 8e cc a0 61 |x.Z...g.D.J-...a| key4 00000330 28 18 04 78 21 95 6b 69 2c d1 35 1f 69 a3 52 5f |(..x!.ki,.5.i.R_| key5 00000340 97 1c 93 d8 99 52 2a 91 e4 3a b5 10 26 14 df 44 |.....R*..:..&..D| key6 00000350 b7 f9 6f 37 6f 86 f2 96 0d e5 92 ba 45 93 2f ee |..o7o.......E./.| key7 00000360 53 6e 64 e9 ac 34 53 b6 85 57 4b 8e f8 9b 78 91 |Snd..4S..WK...x.| key8 00000370 30 7a 7b df 71 a5 95 ba 4a 2a 37 90 92 15 25 e6 |0z{.q...J*7...%.| key9 00000380 ef 65 b9 ee 00 00 00 00 00 00 00 00 00 00 00 00 |.e..............| key10 00000390 a0 79 91 e9 66 93 d8 d0 cc 57 c7 da c5 7d df 40 |.y..f....W...}.@| key11 000003a0 78 d3 5a 96 be 8d 67 10 44 0b 4a 2d 8e cc a0 61 |x.Z...g.D.J-...a| key12 000003b0 28 18 04 78 21 95 6b 69 2c d1 35 1f 69 a3 52 5f |(..x!.ki,.5.i.R_| key13 000003c0 97 1c 93 d8 99 52 2a 91 e4 3a b5 10 26 14 df 44 |.....R*..:..&..D| key14 000003d0 b7 f9 6f 37 6f 86 f2 96 0d e5 92 ba 45 93 2f ee |..o7o.......E./.| key15 000003e0 53 6e 64 e9 ac 34 53 b6 85 57 4b 8e f8 9b 78 91 |Snd..4S..WK...x.| key16 000003f0 5e a2 e9 83 2d a2 4a 14 ce 8c 6f 9c 31 b1 4f 3f |^...-.J...o.1.O?| key17 00000400 f0 73 f2 d8 00 00 00 00 00 00 00 00 00 00 00 00 |.s..............| key18 00000410 a0 79 91 e9 66 93 d8 d0 cc 57 c7 da c5 7d df 40 |.y..f....W...}.@| key19 00000420 78 d3 5a 96 be 8d 67 10 44 0b 4a 2d 8e cc a0 61 |x.Z...g.D.J-...a| key20 00000430 28 18 04 78 21 95 6b 69 2c d1 35 1f 69 a3 52 5f |(..x!.ki,.5.i.R_| key21 00000440 97 1c 93 d8 99 52 2a 91 e4 3a b5 10 26 14 df 44 |.....R*..:..&..D| key22 SIGNATURE INFO: 00000450 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00 00 |.......0........| unknown=1 - signature_size=0x30 - unknown=0 00000460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| unknown=0 - unknown=0 00000470 00 00 00 00 00 00 00 7b 00 00 00 01 00 00 00 00 |.......{........| unknown=7b - unknown=0x100 - unknown=0 SIGNATURE: 00000480 00 c6 39 a4 4e b4 3f d9 b5 dd 06 f2 e3 b0 88 5e |..9.N.?........^| R[21] 00000490 5d 7a d9 ee a5 00 5f 33 6a ff c2 8b 70 eb cf 50 |]z...._3j...p..P| R (5 bytes) - S[21] 000004a0 2e b8 07 36 2e db 37 5b db f4 00 00 00 00 00 00 |...6..7[........| S (10 bytes) - padding 000004b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding 000004c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding 000004d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding 000004e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding 000004f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| padding ENCRYPTED ELF HEADER?: 00000500 36 2a 61 73 99 41 75 19 cc a7 42 22 fb f4 b5 cc |6*as.Au...B"....| 00000510 41 7a bf 27 c8 f6 c1 13 7c f3 d2 03 e9 67 35 09 |Az.'....|....g5.| 00000520 40 21 6b b8 81 9f 69 fa 7d 8a 1b 29 b1 8c 97 23 |@!k...i.}..)...#| 00000530 f9 ff e3 dc 3e 82 91 f9 78 28 f8 2b e4 b4 ee 69 |....>...x(.+...i| [...] 000104c0 94 68 af d6 3f 1d 1d ce fa b8 75 92 e8 c2 54 da |.h..?.....u...T.| 000104d0 5a 32 f2 44 c1 f8 72 66 5f 8f ac ae 1e d1 43 8d |Z2.D..rf_.....C.| 000104e0 f6 5b bb 24 91 f7 9c 1b f5 6b cc ca 89 93 8c c4 |.[.$.....k......| 000104f0 bc b4 de ed 70 36 4d 22 f4 3f 71 27 03 e1 28 b4 |....p6M".?q'..(.| PROGRAM SECTION 0: 00010500 78 9c ec bd 0f 7c 54 d5 9d 37 fc bb 93 49 32 01 |x....|T..7...I2.| 00010510 5c 43 3b d6 28 ff 06 c1 32 01 6a 62 45 3b 31 01 |\C;.(...2.jbE;1.| 00010520 26 82 f5 42 60 37 56 2c 58 b5 9d 08 b6 a0 f6 f3 |&..B`7V,X.......| 00010530 a0 8b dd 8b 99 61 26 10 dd 50 e9 fb 84 aa db a0 |.....a&..P......| 00010540 01 87 0a 14 56 7d 16 1f a9 a2 05 0c fe 61 a1 ea |....V}.......a..| [...] 0016edd0 3f 7a 48 af 45 ef 28 3a 05 98 10 3f e8 79 3a da |?zH.E.(:...?.y:.| 0016ede0 48 d5 2c 75 e5 4d 70 57 a4 1e b5 ae 32 16 6e 57 |H.,u.MpW....2.nW| 0016edf0 5c 26 d6 4f c4 90 0b 9a 87 4f 85 43 68 76 ca 8b |\&.O.....O.Chv..| 0016ee00 e0 0f fd 68 eb 4b de e0 2d 3f 4e 8d 02 ce a2 37 |...h.K..-?N....7| PROGRAM SECTION 1: 0016ee10 78 9c ed 9d 09 5c 54 55 fb f8 ef b0 09 8a 0a ae |x....\TU........| 0016ee20 b8 8f 3a 2a 29 0e 33 30 22 ee 93 6d 53 b9 a0 59 |..:*).30"..mS..Y| 0016ee30 e1 92 82 82 82 2b 89 0b 9a cb a8 2d 96 a9 98 4b |.....+.....-...K| 0016ee40 a6 65 94 96 64 6e f5 a6 99 2d 8e a9 89 b9 61 ae |.e..dn...-....a.| 0016ee50 65 1a 5a 9a 5a 99 bb b8 ff 0f de ef 45 e6 32 17 |e.Z.Z.......E.2.| 0016ee60 06 93 de de ff af f9 38 3e f7 dc 7b ce 73 9e fd |.......8>..{.s..| [...] 00174710 e4 12 72 5f 3d 18 15 7b 9f fc 9d ea 2e 55 67 c0 |..r_=..{.....Ug.| 00174720 5a 73 60 83 ab 41 23 a0 ad c1 7c ba 3a 40 c9 63 |Zs`..A#...|.:@.c| 00174730 c0 f7 38 5e 58 42 f7 dc 77 74 4d 53 b3 0b 19 22 |..8^XB..wtMS..."| 00174740 f6 70 4d 22 d6 fc 11 51 9b 20 81 e7 81 09 cb 82 |.pM"...Q. ......| 00174750 f9 71 76 a4 3b 02 cd 10 SECTION HEADERS 3: 00 00 00 00 00 00 00 00 | ........| name_idx=0x00 type=0x0=unused 00174760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| flags=0 - virtual_addr=0x00 00174770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| offset_in_file=0x00 - size=0x00 00174780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| link=0 - info=0 - addr_align=0x00 00174790 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 0b 00 00 00 01 |................| name_idx=0xb type=1=progbits 001747a0 00 00 00 00 00 00 00 07 80 00 00 00 00 00 00 00 |................| flags=0x7 - virtual_addr=0x8000000000000000 001747b0 00 00 00 00 00 01 00 00 00 00 00 00 00 00 30 28 |..............0(| offset_in_file=0x10000 - size=0x3028 001747c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 |................| link=0 - info=0 - addr_align=0x04 001747d0 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 11 00 00 00 01 |................| name_idx=0x11 type=1=progbits 001747e0 00 00 00 00 00 00 00 06 80 00 00 00 00 00 30 80 |..............0.| flags=0x6 - virtual_addr=0x8000000000003080 001747f0 00 00 00 00 00 01 30 80 00 00 00 00 00 2b 87 04 |......0......+..| offset_in_file=0x13080 - size=0x2b8704 00174800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 |................| link=0 - info=0 - addr_align=0x04 00174810 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 17 00 00 00 01 |................| name_idx=0x17 type=1=progbits 00174820 00 00 00 00 00 00 00 02 80 00 00 00 00 2b b7 90 |.............+..| flags=0x2 - virtual_addr=0x80000000002bb790 00174830 00 00 00 00 00 2c b7 90 00 00 00 00 00 02 41 9c |.....,........A.| offset_in_file=0x2cb790 - size=0x2419c 00174840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 |................| link=0 - info=0 - addr_align=0x08 00174850 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 1f 00 00 00 01 |................| name_idx=0x1f type=1=progbits 00174860 00 00 00 00 00 00 00 03 80 00 00 00 00 2d f9 30 |.............-.0| flags=0x3 - virtual_addr=0x80000000002df930 00174870 00 00 00 00 00 2e f9 30 00 00 00 00 00 00 00 80 |.......0........| offset_in_file=0x2ef930 - size=0x80 00174880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 |................| link=0 - info=0 - addr_align=0x08 00174890 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 26 00 00 00 01 |...........&....| name_idx=0x26 type=1=progbits 001748a0 00 00 00 00 00 00 00 03 80 00 00 00 00 2d f9 b0 |.............-..| flags=0x3 - virtual_addr=0x80000000002df9b0 001748b0 00 00 00 00 00 2e f9 b0 00 00 00 00 00 00 5f 10 |.............._.| offset_in_file=0x2ef9b0 - size=0x5f10 001748c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................| link=0 - info=0 - addr_align=0x01 001748d0 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 2c 00 00 00 01 |...........,....| name_idx=0x2c type=1=progbits 001748e0 00 00 00 00 00 00 00 03 80 00 00 00 00 2e 58 c0 |..............X.| flags=0x3 - virtual_addr=0x80000000002e58c0 001748f0 00 00 00 00 00 2f 58 c0 00 00 00 00 00 04 2c 78 |...../X.......,x| offset_in_file=0x2f58c0 - size=0x42c78 00174900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 |................| link=0 - info=0 - addr_align=0x08 00174910 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 31 00 00 00 01 |...........1....| name_idx=0x31 type=1=progbits 00174920 00 00 00 00 00 00 00 03 80 00 00 00 00 32 85 40 |.............2.@| flags=0x3 - virtual_addr=0x8000000000328540 00174930 00 00 00 00 00 33 85 40 00 00 00 00 00 00 a4 08 |.....3.@........| offset_in_file=0x338540 - size=0xa408 00174940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 |................| link=0 - info=0 - addr_align=0x08 00174950 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 36 00 00 00 01 |...........6....| name_idx=0x36 type=1=progbits 00174960 00 00 00 00 00 00 00 03 80 00 00 00 00 33 29 80 |.............3).| flags=0x3 - virtual_addr=0x8000000000332980 00174970 00 00 00 00 00 34 29 80 00 00 00 00 00 01 67 10 |.....4).......g.| offset_in_file=0x342980 - size=0x16710 00174980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 |................| link=0 - info=0 - addr_align=0x80 00174990 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 3c 00 00 00 08 |...........<....| name_idx=0x3c - type=8=nobits 001749a0 00 00 00 00 00 00 00 03 80 00 00 00 00 34 90 90 |.............4..| flags=0x3 - virtual_addr=0x8000000000349090 001749b0 00 00 00 00 00 35 90 90 00 00 00 00 00 11 bc d0 |.....5..........| offset_in_file=0x359090 - size=0x11bcd0 001749c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 |................| link=0 - info=0 - addr_align=0x8000 001749d0 00 00 00 00 00 00 00 00 entries_size=0x00 00 00 00 01 00 00 00 03 |................| name_idx=0x1 - type=3=strtable 001749e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| flags=0x00 - virtual_addr=0x00 001749f0 00 00 00 00 00 35 90 90 00 00 00 00 00 00 00 41 |.....5.........A| 00174a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................| link=0 - info=0 - addr_align=0x01 00174a10 00 00 00 00 00 00 00 00 |........| entries_size=0x00 00174a18
Sign executables for 3.73+ (mathieulh's "drama")[edit source]
[21:00:58] <Mathieulh> selfs are a mess to generate properly because a lot of values need to be calculated from the original elf file [21:01:11] <Mathieulh> the problem is right now all the public tools use hardcoded values [21:01:19] <Mathieulh> that are grabbed from various self files [21:01:21] <Mathieulh> but are not calculated [21:01:34] <Mathieulh> well that's one of the many problems actually [21:01:35] <jevin> Mathieulh, things other than elf offsets? [21:01:40] <Mathieulh> yah [21:02:03] <Mathieulh> sony also did some fancy things with the compression self format [21:02:12] <Mathieulh> where values are off by a certain offset etc etc [21:02:38] <Mathieulh> if you want to make a proper self tool [21:02:44] <Mathieulh> you first need to reverse make_fself [21:03:06] <jevin> not too hard with hexrays *cough* [21:03:09] <Mathieulh> that's the initial step [21:03:15] <Mathieulh> yeah it's not that hard [21:03:29] <Mathieulh> then you'll figure what a big fuck up the self format really is xD [21:05:14] <Mathieulh> but yeah just my self.cpp is 5 times larger than the entire source for geohot make_self/make_self_npdrm [21:05:27] <Mathieulh> in terms of lines of code [21:05:48] <Mathieulh> so his is missing shitloads of stuffs and only relies on hardcoded values [21:06:06] <jevin> entire headers copypasta'ed from existing selfs [21:06:11] <Mathieulh> pretty much yah xD [21:06:23] <Mathieulh> the ones on the tool I use are generated [21:06:32] <Mathieulh> as in calculated and generated [21:06:36] <Mathieulh> from the original elf [21:06:52] <Mathieulh> btw unself is buggy too [21:06:54] <Mathieulh> just so you know [21:07:16] <jevin> why havent you labeled the control flags? :) [21:08:16] <Mathieulh> jevin I didn't feel the need to, I already know what they do anyway [21:08:37] <Mathieulh> for example 0x40 is root rights, 0x20 is debugger rights and so on [21:09:07] <jevin> im guessing the self capabilities flags are offset 0x20 in the self header [21:09:18] <Mathieulh> capabilities aren't in the header [21:09:23] <Mathieulh> they are part of the metadata [21:09:28] <Mathieulh> as in, they are encrypted and signed [21:10:16] <jevin> offset 0x10 in the section header? [21:10:29] <Mathieulh> it's after the metadata keys [21:10:33] <jevin> no, they wouldnt be per section [21:10:50] <Mathieulh> as in, right after them [21:11:09] <jevin> i see. so unself doesnt have enough fields in the metadata header [21:11:35] <jevin> i really should color in the hex values that are mapped to structures in unself vs ones that arent [21:11:42] <jevin> seems like it is missing a lot [21:11:49] <Mathieulh> everything public is missing tons [21:12:15] <Mathieulh> capabilities are optional mind you [21:12:35] <jevin> are they restrictive or permissive? [21:13:11] <Mathieulh> restrictive [21:13:16] <Mathieulh> (for most) [21:42:15] <jevin> Mathieulh, you said that the geohot npdrm keypair is blacklisted in 3.56 [21:42:30] <jevin> i couldnt find the decrypted or encrypted metadata keypair in 3.56 files [21:42:47] <jevin> where does the blacklisting occur? is it a hash that is blacklisted? [21:43:08] <jevin> its interesting to me because we can make our own keypairs now with juan nadie's work [21:48:45] <Mathieulh> <jevin> Mathieulh, you said that the geohot npdrm keypair is blacklisted in 3.56 <== not only that [21:49:03] <Mathieulh> geohot stuff doesn't generate some of the npdrm specific values [21:49:08] <Mathieulh> those were not checked in 3.55 [21:49:13] <Mathieulh> but they are checked in 3.56 now [21:49:55] <jevin> Mathieulh, gotcha [21:50:09] <jevin> is his keypair actually blacklisted somewhere though? [21:50:10] <Mathieulh> there is no whitelist for npdrm [21:50:22] <Mathieulh> so it's actually possible to generate valid npdrm self for 3.56+ [21:50:42] <jevin> is it a check in appldr? [21:50:43] <Mathieulh> that tool I made a screenshot of actually does that [21:51:02] <Mathieulh> jevin yeah, it's enforced by lv1 though [21:51:16] <jevin> a hash comparison? [21:51:27] <Mathieulh> yeah it's a hash [21:51:30] <Mathieulh> but I won't say more [21:51:35] <jevin> ok :) [21:51:55] <Mathieulh> everything you need is in the 3.56 fw :P [21:52:16] <jevin> rgr, i will poke around later [21:52:34] <jevin> the checks are unmodified in 3.60+? [21:52:43] <jevin> + new keys of course [21:52:51] <Mathieulh> same checks [21:54:53] <Mathieulh> jevin you won't get around crafting valid 3.56+ npdrm selfs without a proper makeself tool though [21:57:18] <jevin> would SCE make npdrm selfs work if actually signed? [21:57:25] <jevin> + crypted