Revoke List: Difference between revisions
Jump to navigation
Jump to search
(15 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[ | Revoke list is a [[Certified File]]. | ||
Location | |||
= Location = | |||
== PS3 == | |||
CoreOS package 3.56+. | |||
RL_FOR_PACKAGE.img/RL_FOR_PROGRAM.img, pkg.srvk/prog.srvk | |||
== PSVita == | |||
In SLB2 partition in PUP and in eMMC: | |||
slb2:prog_rvk.srvk | |||
= Decryption = | |||
See [[Certified_File#Decryption]]. | |||
= Stucture = | |||
Contains includes/excludes to be checked by lv1/hypervisor.<br> | Contains includes/excludes to be checked by lv1/hypervisor.<br> | ||
So this is basically a list of additional checks for the | Fetched by Updating process to NAND/NOR-Flash as trvk_prg0/1 and trvk_pkg0/1.<br> | ||
So this is basically a list of additional checks for the hypervisor.<br> | |||
Example: if (sce type == 4 & authid = x) then do what flags tell, related with version etc.<br> | |||
See also: [[Keys]], [[Program Authority Id]]. | |||
== Struct == | |||
<source lang="C"> | |||
typedef header { | |||
uint32_t type; /* 3 ps3 prog rvk, 4 ps3 pkg rvk, 5 psvita prog rvk */ | |||
uint32_t unk; | |||
union { | |||
struct prog { | |||
uint64_t version; /* Revoke List Version */ | |||
}; | |||
struct pkg { | |||
uint64_t unk_pkg_rvk; /* To check */ | |||
}; | |||
}; | |||
uint32_t entry_count; /* Number of entries */ | |||
uint8_t padding[0xC]; | |||
} __attribute__((packed)) rvk_header; | |||
</source> | |||
== Revoke list entries == | |||
<source lang="C"> | |||
typedef rvk_entry { | |||
uint32_t program_type; | |||
uint32_t flags; | |||
uint64_t version; | |||
uint64_t program_authority_id; | |||
uint64_t unknown; | |||
} __attribute__((packed)) rvk_entry; | |||
</source> | |||
See | {| class="wikitable" | ||
[[ | |- | ||
[[ | ! field !! offset !! type !! notes | ||
|- | |||
| program_type || 0x00 || u32 || See [[Program Type]]. | |||
|- | |||
| flags || 0x04 || u32 || enforce/block/ignore/whatever? | |||
|- | |||
| version || 0x8 || u64 || program version | |||
|- | |||
| program_authority_id || 0x10 || u64 || See [[Program Authority Id]]. | |||
|- | |||
| unknown ||0x18 || u64 || enforce/block/ignore/whatever? | |||
|} | |||
= Examples = | |||
== | == PS3 = | ||
=== 3.56 prog.srvk === | === 3.56 prog.srvk === | ||
00000200 00 00 00 04 00 00 00 01 00 | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ||
00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 6 | 00000200 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... | ||
00000220 00 00 00 03 00 00 00 01 00 | 00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 6 items | ||
00000220 00 00 00 03 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. lv2 | |||
00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ | 00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ | ||
00000240 00 00 00 04 00 00 00 01 00 | 00000240 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. vsh | ||
00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ | 00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ | ||
00000260 00 00 00 04 00 00 00 01 00 | 00000260 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... | ||
00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ | 00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ | ||
00000280 00 00 00 04 00 00 00 01 00 | 00000280 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. sys_init_osd | ||
00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ | 00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ | ||
000002A0 00 00 00 04 00 00 00 01 00 | 000002A0 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. sys_audio | ||
000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ | 000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ | ||
000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... | 000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... | ||
000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ | 000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ | ||
=== 3.41 trvk_prog0 === | |||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |||
00000200 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... | |||
00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ | |||
00000220 00 00 00 03 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... | |||
00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ | |||
00000240 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... | |||
00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ | |||
00000260 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... | |||
00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ | |||
00000280 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... | |||
00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ | |||
000002A0 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... | |||
000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ | |||
000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... | |||
000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ | |||
=== 3.55 trvk_prog1 === | |||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |||
00000200 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... | |||
00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ | |||
00000220 00 00 00 03 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... | |||
00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ | |||
00000240 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... | |||
00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ | |||
00000260 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... | |||
00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ | |||
00000280 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... | |||
00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ | |||
000002A0 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... | |||
000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ | |||
000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... | |||
000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ | |||
=== 3.56 pkg.srvk === | === 3.56 pkg.srvk === | ||
00000200 00 00 00 03 00 00 00 02 00 01 00 00 00 00 00 00 ...�...�.�...... | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ||
00000210 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 1 | 00000200 00 00 00 03 00 00 00 02 00 01 00 00 00 00 00 00 ...�...�.�...... 1.0 version | ||
00000210 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 1 items | |||
00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� | 00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� | ||
00000230 00 00 00 08 00 05 00 00 00 00 00 00 00 00 00 00 ...�.�.......... | 00000230 00 00 00 08 00 05 00 00 00 00 00 00 00 00 00 00 ...�.�.......... | ||
=== trvk_pkg0 === | |||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |||
00000200 00 00 00 03 00 00 00 02 00 02 00 30 00 00 00 00 ...�...�.�.0.... 2.3 version | |||
00000210 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 2 Items | |||
00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� | |||
00000230 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ | |||
00000240 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 ...�.......�...� | |||
00000250 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ | |||
=== trvk_pkg1 === | |||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |||
00000200 00 00 00 03 00 00 00 02 00 02 00 30 00 00 00 00 ...�...�.�.0.... 2.3 version | |||
00000210 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 2 Items | |||
00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� | |||
00000230 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ | |||
00000240 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 ...�.......�...� | |||
00000250 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ | |||
{{Reverse engineering}} | |||
{{Flash}} | |||
{{File Formats}} | |||
<noinclude>[[Category:Main]]</noinclude> |
Latest revision as of 05:04, 15 July 2022
Revoke list is a Certified File.
Location[edit | edit source]
PS3[edit | edit source]
CoreOS package 3.56+.
RL_FOR_PACKAGE.img/RL_FOR_PROGRAM.img, pkg.srvk/prog.srvk
PSVita[edit | edit source]
In SLB2 partition in PUP and in eMMC:
slb2:prog_rvk.srvk
Decryption[edit | edit source]
See Certified_File#Decryption.
Stucture[edit | edit source]
Contains includes/excludes to be checked by lv1/hypervisor.
Fetched by Updating process to NAND/NOR-Flash as trvk_prg0/1 and trvk_pkg0/1.
So this is basically a list of additional checks for the hypervisor.
Example: if (sce type == 4 & authid = x) then do what flags tell, related with version etc.
See also: Keys, Program Authority Id.
Struct[edit | edit source]
typedef header {
uint32_t type; /* 3 ps3 prog rvk, 4 ps3 pkg rvk, 5 psvita prog rvk */
uint32_t unk;
union {
struct prog {
uint64_t version; /* Revoke List Version */
};
struct pkg {
uint64_t unk_pkg_rvk; /* To check */
};
};
uint32_t entry_count; /* Number of entries */
uint8_t padding[0xC];
} __attribute__((packed)) rvk_header;
Revoke list entries[edit | edit source]
typedef rvk_entry {
uint32_t program_type;
uint32_t flags;
uint64_t version;
uint64_t program_authority_id;
uint64_t unknown;
} __attribute__((packed)) rvk_entry;
field | offset | type | notes |
---|---|---|---|
program_type | 0x00 | u32 | See Program Type. |
flags | 0x04 | u32 | enforce/block/ignore/whatever? |
version | 0x8 | u64 | program version |
program_authority_id | 0x10 | u64 | See Program Authority Id. |
unknown | 0x18 | u64 | enforce/block/ignore/whatever? |
Examples[edit | edit source]
= PS3[edit | edit source]
3.56 prog.srvk[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... 00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 6 items 00000220 00 00 00 03 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. lv2 00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ 00000240 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. vsh 00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ 00000260 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... 00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ 00000280 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. sys_init_osd 00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ 000002A0 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. sys_audio 000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ 000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... 000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ
3.41 trvk_prog0[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 00000220 00 00 00 03 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ 00000240 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ 00000260 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ 00000280 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ 000002A0 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ 000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... 000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ
3.55 trvk_prog1[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 00000220 00 00 00 03 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ 00000240 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ 00000260 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ 00000280 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ 000002A0 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ 000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... 000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ
3.56 pkg.srvk[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 03 00 00 00 02 00 01 00 00 00 00 00 00 ...�...�.�...... 1.0 version 00000210 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 1 items 00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� 00000230 00 00 00 08 00 05 00 00 00 00 00 00 00 00 00 00 ...�.�..........
trvk_pkg0[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 03 00 00 00 02 00 02 00 30 00 00 00 00 ...�...�.�.0.... 2.3 version 00000210 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 2 Items 00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� 00000230 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ 00000240 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 ...�.......�...� 00000250 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............
trvk_pkg1[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 03 00 00 00 02 00 02 00 30 00 00 00 00 ...�...�.�.0.... 2.3 version 00000210 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 2 Items 00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� 00000230 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ 00000240 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 ...�.......�...� 00000250 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............
|
|