Talk:SELF File Format and Decryption
From PS3Wiki
ELF Section encryption Some ELF Sections are not inside an ELF Program Header, and thus not inside a Segment information or Metadata segment. This means that it is not compressed, and not encrypted like the sections inside a metadata segment.
Observations:
- The encyption seems to be identical on different version and types of SELF. Even lv0 uses this encryption.
- It seems to be a block cipher. (We have already seen CTR and CBC in SELFs)
If we figure out the encryption, we can decrypt sections like STRTAB, and gain more information, even on undecryptable files like lv0.
NOBITS Sections
These sections are generally padded with zeros, i suppose. This makes it easy to detect these sections if they are always encrypted the same way. Almost any SELF file has padding and thus this sequence of byte one or several times.
Padding should look like this:
00000000 BC 3F 7A 48 AF 45 EF 28 3A 05 98 10 3F E8 79 3A ¼?zH¯Eï(:.˜.?èy: 00000010 DA 48 D5 2C 75 E5 4D 70 57 A4 1E B5 AE 32 16 6E ÚHÕ,uåMpW¤.µ®2.n 00000020 57 5C 26 D6 4F C4 90 0B 9A 87 4F 85 43 68 76 CA W\&ÖOÄ..š‡O…ChvÊ 00000030 8B E0 0F FD 68 EB 4B DE E0 2D 3F 4E 8D 02 CE A2 ‹à.ýhëKÞà-?N..΢ 00000040 37 A5 16 9A CC 90 1F F5 5A C7 CD 98 4F AC CC E9 7¥.šÌ..õZÇ͘O¬Ìé 00000050 41 65 72 29 DC 98 4F 49 37 A2 9F 4E 65 D1 22 A7 Aer)ܘOI7¢ŸNeÑ"§ 00000060 31 58 C6 24 9A ED 0D 77 DC 14 0A A7 04 E9 5F 1B 1XÆ$ší.wÜ..§.é_. 00000070 A2 CF 62 A6 95 37 EF 7E 09 36 6B 46 88 9A 0E 97 ¢Ïb¦•7ï~.6kFˆš.— 00000080 AD 76 9D 02 B5 C3 F6 84 9F 33 90 C3 2E E9 74 66 v..µÃö„Ÿ3.Ã.étf 00000090 2F F4 AF 71 BB 58 D1 C4 A2 3E F9 AE F8 5D BB D8 /ô¯q»XÑÄ¢>ù®ø]»Ø 000000A0 32 49 B6 A6 ED 31 67 A6 8B D5 DE E0 21 7F 11 61 2I¶¦í1g¦‹ÕÞà!..a 000000B0 FF 1D B9 E6 1E 93 C9 1B 8C 02 CA 6C F0 67 76 AF ÿ.¹æ.“É.Œ.Êlðgv¯ 000000C0 C9 FF 3A A6 BC 15 DA 60 5B 38 9C D1 B2 DB 41 E0 Éÿ:¦¼.Ú`[8œÑ²ÛAà 000000D0 C7 1B 98 89 2E 59 90 92 A0 81 76 D0 E9 0B 7D B9 Ç.˜‰.Y.’ .vÐé.}¹ 000000E0 55 9F CB 4A B1 40 92 ED 70 64 49 19 B9 16 F1 5C UŸËJ±@’ípdI.¹.ñ\ 000000F0 FD C5 1C 83 4D 81 6C 8D F8 23 B2 37 46 F6 68 FE ýÅ.ƒM.l.ø#²7Föhþ 00000100 AC B4 2C 63 04 80 BD 6D FC 31 8E FC 1B 73 46 B2 ¬´,c.€½mü1Žü.sF² 00000110 F2 7C E9 45 CD 72 F4 01 5C 08 29 7E A5 72 C7 FE ò|éEÍrô.\.)~¥rÇþ 00000120 DA 4D D9 BE 72 AD 27 34 FA 66 53 72 48 1F 70 EA ÚMÙ¾r'4úfSrH.pê 00000130 24 D6 06 82 6A 41 BE 19 8F C4 45 40 9C 83 69 ED $Ö.‚jA¾..ÄE@œƒií 00000140 FE F4 38 80 AD CD 1D 26 2B 2A A9 2B C3 58 DC 23 þô8€Í.&+*©+ÃXÜ# 00000150 CA 04 C5 3D F8 65 B7 F6 CE 85 88 FC D0 E8 C2 C8 Ê.Å=øe·öÎ…ˆüÐèÂÈ 00000160 0C F3 B2 21 19 53 A8 0C DA 50 03 45 FF 7D 37 2A .ó²!.S¨.ÚP.Eÿ}7* 00000170 C7 33 9F 79 EF 71 0F D7 7D C0 E3 13 60 50 E5 FA Ç3Ÿyïq.×}Àã.`Påú 00000180 AA 90 EE 0F 7A D4 AD 41 06 DA D3 1A 47 04 36 AA ª.î.zÔA.ÚÓ.G.6ª 00000190 55 B7 0C 3D 50 C9 E7 B7 F9 F8 4F C0 C4 F1 B8 EE U·.=PÉç·ùøOÀÄñ¸î 000001A0 10 DE 94 B1 F2 89 0F 77 12 58 D2 80 2A A8 45 C9 .Þ”±ò‰.w.XÒ€*¨EÉ 000001B0 4B ED 73 92 5D 1D 53 7C E3 FF E1 E8 E8 1B 32 51 Kís’].S|ãÿáèè.2Q 000001C0 18 3D 66 24 B0 35 CF FB 0F 3C BC 21 35 37 C1 3B .=f$°5Ïû.<¼!57Á; 000001D0 B3 DD 57 94 D5 BB 75 19 DA 82 E4 38 55 AE 2B 56 ³ÝW”Õ»u.Ú‚ä8U®+V 000001E0 D9 3C 73 4E 8C 74 00 53 DC BA 19 15 32 30 FE B9 Ù<sNŒt.Sܺ..20þ¹ 000001F0 03 80 C9 3E 94 DF 23 E5 9C CA E7 99 CE 27 94 91 .€É>”ß#åœÊç™Î'”‘
STRTAB Sections
STRTAB Section are often at the end of an SELF an encrypted.
<rck`d> from #ps3dev has compared some retail and debug versions of SELFs.
God of War 3
00535ca5h: 66 02 BD 4D E0 DB 37 45 27 73 A3 4B E8 6C C5 6E ; f.½MàÛ7E's£KèlÅn
00535cb5h: 0E 9D AF 9B 21 06 63 BA C3 E1 FC 9C 7A D2 42 74 ; .¯›!.cºÃáüœzÒBt
00535cc5h: 5C F1 04 42 29 11 E3 35 6C 71 2B 96 07 D5 93 64 ; \ñ.B).ã5lq+–.Õ“d
00535cd5h: 2D 77 A7 B5 D0 5A EF C1 38 56 D9 90 86 F5 3A BE ; -w§µÐZïÁ8VÙ†õ:¾
00535ce5h: 36 54 94 B1 45 2E 62 18 FB 56 FE DE 4A 6B 1E 3A ; 6T”±E.b.ûVþÞJk.:
00535cf5h: 00 4C 45 E1 E5 B6 0F C9 D8 0D 7B 3F DA 29 D5 15 ; .LEáå¶.ÉØ.{?Ú)Õ.
00535d05h: 2C 21 64 D7 AF 7C 88 0A 11 51 0E 17 64 2C EB DA ; ,!dׯ|ˆ..Q..d,ëÚ
00535d15h: 7B BF 3A 07 D9 BF 79 87 9A C3 CB 6B 15 FF C2 AF ; {¿:.Ù¿y‡šÃËk.ÿ¯
00535d25h: 12 71 06 D2 85 1E B4 E0 B7 53 3A 1F 6C 2D BD 47 ; .q.Ò….´à·S:.l-½G
00535d35h: DD 7E 3D 0D 22 1A 8F FA 4E AC 51 F8 E0 9E 56 23 ; Ý~=.".úN¬QøàžV#
00535d45h: 92 3C 89 C5 8D D2 3F AD 98 B8 8F B8 57 8B 49 B0 ; ’<‰ÅÒ?˜¸¸W‹I°
00535d55h: D0 DB E1 C3 39 DB 30 32 E8 DD 9A B0 02 B4 17 43 ; ÐÛáÃ9Û02èÝš°.´.C
00535d65h: 61 88 7A 3A 7A C0 AC FB F8 83 AC E5 1F 6D 3B 30 ; aˆz:zÀ¬ûøƒ¬å.m;0
00535d75h: 2C 1D 60 DD 2F EC 66 4B 66 FF 72 29 FD EA 05 C6 ; ,.`Ý/ìfKfÿr)ýê.Æ
00535d85h: 0C 80 7B D7 05 08 C9 AB C5 0C 1D 3D E0 C3 BB 74 ; .€{×..É«Å..=àût
00535d95h: 22 65 62 2C 9C 91 6D 44 B2 F8 56 8E 59 A4 06 78 ; "eb,œ‘mD²øVŽY¤.x
00535da5h: AE 8F 7A 35 56 B7 78 06 C9 E4 DF 5D 15 51 52 82 ; ®z5V·x.Éäß].QR‚
00535db5h: F1 D7 C1 BF F1 6F D6 BD 2A 01 7A DF 5E 3A 40 22 ; ñ×Á¿ñoÖ½*.zß^:@"
00535dc5h: 81 60 A3 3F 00 EA 0E 9B 7A 8E 3C C5 A2 34 4A B1 ; `£?.ê.›zŽ<Å¢4J±
00535dd5h: 42 FB B2 ; Bû²
00535ca5h: 00 2E 73 68 73 74 72 74 61 62 00 2E 69 6E 69 74 ; ..shstrtab..init
00535cb5h: 00 2E 66 69 6E 69 00 2E 73 63 65 53 74 75 62 2E ; ..fini..sceStub.
00535cc5h: 74 65 78 74 00 2E 72 6F 64 61 74 61 2E 73 63 65 ; text..rodata.sce
00535cd5h: 52 65 73 69 64 65 6E 74 00 2E 72 6F 64 61 74 61 ; Resident..rodata
00535ce5h: 2E 73 63 65 46 4E 49 44 00 2E 6C 69 62 2E 65 6E ; .sceFNID..lib.en
00535cf5h: 74 2E 74 6F 70 00 2E 6C 69 62 2E 65 6E 74 2E 62 ; t.top..lib.ent.b
00535d05h: 74 6D 00 2E 6C 69 62 2E 73 74 75 62 2E 74 6F 70 ; tm..lib.stub.top
00535d15h: 00 2E 6C 69 62 2E 73 74 75 62 00 2E 6C 69 62 2E ; ..lib.stub..lib.
00535d25h: 73 74 75 62 2E 62 74 6D 00 2E 72 6F 64 61 74 61 ; stub.btm..rodata
00535d35h: 00 2E 73 70 75 5F 69 6D 61 67 65 00 2E 73 79 73 ; ..spu_image..sys
00535d45h: 5F 70 72 6F 63 5F 70 61 72 61 6D 00 2E 73 79 73 ; _proc_param..sys
00535d55h: 5F 70 72 6F 63 5F 70 72 78 5F 70 61 72 61 6D 00 ; _proc_prx_param.
00535d65h: 2E 63 74 6F 72 73 00 2E 64 74 6F 72 73 00 2E 6A ; .ctors..dtors..j
00535d75h: 63 72 00 2E 64 61 74 61 2E 72 65 6C 2E 72 6F 00 ; cr..data.rel.ro.
00535d85h: 2E 64 61 74 61 2E 73 63 65 46 53 74 75 62 00 2E ; .data.sceFStub..
00535d95h: 74 6F 63 31 00 2E 6F 70 64 00 2E 67 6F 74 00 2E ; toc1..opd..got..
00535da5h: 74 64 61 74 61 00 2E 74 62 73 73 00 2E 64 61 74 ; tdata..tbss..dat
00535db5h: 61 00 2E 62 73 73 00 2E 73 63 65 73 70 75 76 65 ; a..bss..scespuve
00535dc5h: 72 73 69 6F 6E 00 2E 73 63 65 76 65 72 73 69 6F ; rsion..sceversio
00535dd5h: 6E 00 00 ; n..
Demon's Souls:
01aea567h: 66 02 BD 4D E0 DB 37 45 27 73 A3 4B E8 6C C5 6E ; f.½MàÛ7E's£KèlÅn
01aea577h: 0E 9D AF 9B 21 06 63 BA C3 E1 FC 9C 7A D2 42 74 ; .¯›!.cºÃáüœzÒBt
01aea587h: 38 22 B7 CD A0 20 E7 95 AD 4D 54 4E B7 7A E3 52 ; 8"·Í ç•MTN·zãR
01aea597h: 1F 2D 31 8F 51 C1 0D 7E B1 A9 06 6F FC 21 EF 77 ; .-1QÁ.~±©.oü!ïw
01aea5a7h: 91 01 63 E0 3D 18 CE 07 8D 1B DA 0D 5F 41 C0 EC ; ‘.cà=.Î..Ú._AÀì
01aea5b7h: 78 59 31 B2 40 E7 41 E2 67 32 AF 2F A6 6F D6 FE ; xY1²@çAâg2¯/¦oÖþ
01aea5c7h: 5F CE CF 9E A4 9E DD 10 BF 44 1A 1E D1 71 2F 34 ; _ÎÏž¤žÝ.¿D..Ñq/4
01aea5d7h: 4D EC DA 4E DF C1 9A FC 23 83 DB 96 FD 27 34 11 ; MìÚNßÁšü#ƒÛ–ý'4.
01aea5e7h: EC 76 6B D9 B8 A4 F3 96 10 77 F9 00 7B 11 9D 57 ; ìvkÙ¸¤ó–.wù.{.W
01aea5f7h: 89 2F E5 B3 A1 B5 FD 28 CB 3E 7F DA 8C 1A 7A 71 ; ‰/峡µý(Ë>ÚŒ.zq
01aea607h: 15 A9 4B 5B 94 E1 95 DA A3 A8 1D F1 2D 9C 05 34 ; .©K[”á•Ú£¨.ñ-œ.4
01aea617h: E9 D4 05 21 CB C1 7E EE 4E D1 07 3C 1E B1 97 60 ; éÔ.!ËÁ~îNÑ.<.±—`
01aea627h: 11 DD 32 FC 9A DB 0F D0 4A FA 61 6E 00 29 FC 9A ; .Ý2üšÛ.ÐJúan.)üš
01aea637h: 94 0A DB 46 F7 1E 72 FB D2 E0 3D 79 47 49 46 F0 ; ”.ÛF÷.rûÒà=yGIFð
01aea647h: 0C B3 8B 51 2C EC 41 07 D9 20 D4 6D 8B B6 C1 98 ; .³‹Q,ìA.Ù Ôm‹¶Á˜
01aea657h: 58 7B B0 14 C4 85 A8 58 56 DD 02 29 9A 06 26 5B ; X{°.Ä…¨XVÝ.)š.&[
01aea667h: DC 93 41 0B DD 80 20 C9 20 7C B4 6A 0C 8B F9 70 ; Ü“A.Ý€ É |´j.‹ùp
01aea677h: 64 85 FB 60 F3 0F 24 CF E1 94 8F 08 60 19 CD C4 ; d…û`ó.$Ïá”.`.ÍÄ
01aea687h: CF 5D 8B 3A FC B9 84 FD 32 C9 6E C1 08 A1 A0 84 ; Ï]‹:ü¹„ý2ÉnÁ.¡ „
01aea697h: FA D4 E7 7F BF 18 CB 54 12 ; úÔç¿.ËT.
01aea567h: 00 2E 73 68 73 74 72 74 61 62 00 2E 69 6E 69 74 ; ..shstrtab..init
01aea577h: 00 2E 66 69 6E 69 00 2E 73 63 65 53 74 75 62 2E ; ..fini..sceStub.
01aea587h: 74 65 78 74 00 2E 65 68 5F 66 72 61 6D 65 00 2E ; text..eh_frame..
01aea597h: 72 6F 64 61 74 61 2E 73 63 65 52 65 73 69 64 65 ; rodata.sceReside
01aea5a7h: 6E 74 00 2E 72 6F 64 61 74 61 2E 73 63 65 46 4E ; nt..rodata.sceFN
01aea5b7h: 49 44 00 2E 6C 69 62 2E 65 6E 74 2E 74 6F 70 00 ; ID..lib.ent.top.
01aea5c7h: 2E 6C 69 62 2E 65 6E 74 2E 62 74 6D 00 2E 6C 69 ; .lib.ent.btm..li
01aea5d7h: 62 2E 73 74 75 62 2E 74 6F 70 00 2E 6C 69 62 2E ; b.stub.top..lib.
01aea5e7h: 73 74 75 62 00 2E 6C 69 62 2E 73 74 75 62 2E 62 ; stub..lib.stub.b
01aea5f7h: 74 6D 00 2E 72 6F 64 61 74 61 00 2E 73 70 75 5F ; tm..rodata..spu_
01aea607h: 69 6D 61 67 65 00 2E 73 79 73 5F 70 72 6F 63 5F ; image..sys_proc_
01aea617h: 70 61 72 61 6D 00 2E 73 79 73 5F 70 72 6F 63 5F ; param..sys_proc_
01aea627h: 70 72 78 5F 70 61 72 61 6D 00 2E 63 74 6F 72 73 ; prx_param..ctors
01aea637h: 00 2E 64 74 6F 72 73 00 2E 6A 63 72 00 2E 64 61 ; ..dtors..jcr..da
01aea647h: 74 61 2E 72 65 6C 2E 72 6F 00 2E 64 61 74 61 2E ; ta.rel.ro..data.
01aea657h: 73 63 65 46 53 74 75 62 00 2E 74 6F 63 31 00 2E ; sceFStub..toc1..
01aea667h: 6F 70 64 00 2E 67 6F 74 00 2E 74 64 61 74 61 00 ; opd..got..tdata.
01aea677h: 2E 74 62 73 73 00 2E 64 61 74 61 00 2E 62 73 73 ; .tbss..data..bss
01aea687h: 00 2E 63 6F 6D 6D 65 6E 74 00 2E 73 63 65 76 65 ; ..comment..sceve
01aea697h: 72 73 69 6F 6E 00 00 00 00 ; rsion....