In its essence, a PRC file is similar to a classic Mac OS application. It contains a PRC header, PRC resource headers and PRC resources.[3]
| PRC Header |
| PRC Resource Header |
| PRC Resources |
The PRC header is located at the beginning of the file and contains meta-information on the file:[3]
| Offset |
Name |
Type |
Size |
| 0x00 |
name |
char |
32 Bytes |
| 0x20 |
flags |
integer |
2 Bytes |
| 0x22 |
version |
integer |
2 Bytes |
| 0x24 |
creation time |
32bit integer - PDB Datetime |
4 Bytes |
| 0x28 |
modification time |
32bit integer - PDB Datetime |
4 Bytes |
| 0x2c |
backup time |
32bit integer - PDB Datetime |
4 Bytes |
| 0x30 |
mod_num |
integer |
4 Bytes |
| 0x34 |
app_info |
integer |
4 Bytes |
| 0x38 |
sort_info |
integer |
4 Bytes |
| 0x3c |
type |
integer |
4 Bytes |
| 0x40 |
creator |
integer |
4 Bytes |
| 0x44 |
unique_id_seed |
integer |
4 Bytes |
| 0x48 |
next_record_list |
integer |
4 Bytes |
| 0x4c |
num_records |
integer |
2 Bytes |
For every resource (specified by num_records), there is a resource header containing:[3]
| name |
type |
notes |
size |
| name |
char |
Name of the resource |
4 bytes |
| ID |
integer |
ID number of the resource |
2 bytes |
| offset |
integer |
Pointer to resource data |
4 bytes |
Every application contains al least a Code #0 resource with size information and jump tables, a Code #1 resource with executable code and data resources containing pre-initialized values of global variables in compressed form.[3] Other resources that may be contained are forms, form objects, alerts and multimedia data, e. g. images and sounds.