From e171f3af411f84d253ef33a1a86235010e4f9bc7 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Wed, 19 Apr 2023 20:17:35 +0200 Subject: [PATCH] unself: rename SelfHeader to ext_hdr --- rpcs3/Crypto/unself.cpp | 52 ++++++++++++++++++++--------------------- rpcs3/Crypto/unself.h | 26 ++++++++++----------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/rpcs3/Crypto/unself.cpp b/rpcs3/Crypto/unself.cpp index 7581a15713..78e9ba2054 100644 --- a/rpcs3/Crypto/unself.cpp +++ b/rpcs3/Crypto/unself.cpp @@ -610,18 +610,18 @@ void SceHeader::Load(const fs::file& f) se_esize = Read64(f); } -void SelfHeader::Load(const fs::file& f) +void ext_hdr::Load(const fs::file& f) { - se_htype = Read64(f); - se_appinfooff = Read64(f); - se_elfoff = Read64(f); - se_phdroff = Read64(f); - se_shdroff = Read64(f); - se_secinfoff = Read64(f); - se_sceveroff = Read64(f); - se_controloff = Read64(f); - se_controlsize = Read64(f); - pad = Read64(f); + ext_hdr_version = Read64(f); + program_identification_hdr_offset = Read64(f); + ehdr_offset = Read64(f); + phdr_offset = Read64(f); + shdr_offset = Read64(f); + segment_ext_hdr_offset = Read64(f); + version_hdr_offset = Read64(f); + supplemental_hdr_offset = Read64(f); + supplemental_hdr_size = Read64(f); + padding = Read64(f); } SCEDecrypter::SCEDecrypter(const fs::file& s) @@ -884,10 +884,10 @@ bool SELFDecrypter::LoadHeaders(bool isElf32, SelfAdditionalInfo* out_info) } // Read SELF header. - self_hdr.Load(self_f); + m_ext_hdr.Load(self_f); // Read the APP INFO. - self_f.seek(self_hdr.se_appinfooff); + self_f.seek(m_ext_hdr.program_identification_hdr_offset); app_info.Load(self_f); if (out_info) @@ -896,7 +896,7 @@ bool SELFDecrypter::LoadHeaders(bool isElf32, SelfAdditionalInfo* out_info) } // Read ELF header. - self_f.seek(self_hdr.se_elfoff); + self_f.seek(m_ext_hdr.ehdr_offset); if (isElf32) elf32_hdr.Load(self_f); @@ -912,7 +912,7 @@ bool SELFDecrypter::LoadHeaders(bool isElf32, SelfAdditionalInfo* out_info) self_log.error("ELF program header offset is null!"); return false; } - self_f.seek(self_hdr.se_phdroff); + self_f.seek(m_ext_hdr.phdr_offset); for(u32 i = 0; i < elf32_hdr.e_phnum; ++i) { phdr32_arr.emplace_back(); @@ -929,7 +929,7 @@ bool SELFDecrypter::LoadHeaders(bool isElf32, SelfAdditionalInfo* out_info) return false; } - self_f.seek(self_hdr.se_phdroff); + self_f.seek(m_ext_hdr.phdr_offset); for (u32 i = 0; i < elf64_hdr.e_phnum; ++i) { @@ -941,7 +941,7 @@ bool SELFDecrypter::LoadHeaders(bool isElf32, SelfAdditionalInfo* out_info) // Read section info. secinfo_arr.clear(); - self_f.seek(self_hdr.se_secinfoff); + self_f.seek(m_ext_hdr.segment_ext_hdr_offset); for(u32 i = 0; i < ((isElf32) ? elf32_hdr.e_phnum : elf64_hdr.e_phnum); ++i) { @@ -950,14 +950,14 @@ bool SELFDecrypter::LoadHeaders(bool isElf32, SelfAdditionalInfo* out_info) } // Read SCE version info. - self_f.seek(self_hdr.se_sceveroff); + self_f.seek(m_ext_hdr.version_hdr_offset); scev_info.Load(self_f); // Read control info. ctrlinfo_arr.clear(); - self_f.seek(self_hdr.se_controloff); + self_f.seek(m_ext_hdr.supplemental_hdr_offset); - for (u64 i = 0; i < self_hdr.se_controlsize;) + for (u64 i = 0; i < m_ext_hdr.supplemental_hdr_size;) { ctrlinfo_arr.emplace_back(); ControlInfo &cinfo = ctrlinfo_arr.back(); @@ -981,7 +981,7 @@ bool SELFDecrypter::LoadHeaders(bool isElf32, SelfAdditionalInfo* out_info) return true; } - self_f.seek(self_hdr.se_shdroff); + self_f.seek(m_ext_hdr.shdr_offset); for(u32 i = 0; i < elf32_hdr.e_shnum; ++i) { @@ -998,7 +998,7 @@ bool SELFDecrypter::LoadHeaders(bool isElf32, SelfAdditionalInfo* out_info) return true; } - self_f.seek(self_hdr.se_shdroff); + self_f.seek(m_ext_hdr.shdr_offset); for(u32 i = 0; i < elf64_hdr.e_shnum; ++i) { @@ -1023,7 +1023,7 @@ void SELFDecrypter::ShowHeaders(bool isElf32) self_log.notice("----------------------------------------------------"); self_log.notice("SELF header"); self_log.notice("----------------------------------------------------"); - self_hdr.Show(); + m_ext_hdr.Show(); self_log.notice("----------------------------------------------------"); self_log.notice("APP INFO"); self_log.notice("----------------------------------------------------"); @@ -1333,15 +1333,15 @@ static bool IsSelfElf32(const fs::file& f) f.seek(0); - SceHeader hdr; - SelfHeader sh; + SceHeader hdr{}; + ext_hdr sh{}; hdr.Load(f); sh.Load(f); // Locate the class byte and check it. u8 elf_class[0x8]; - f.seek(sh.se_elfoff); + f.seek(sh.ehdr_offset); f.read(elf_class, 0x8); return (elf_class[4] == 1); diff --git a/rpcs3/Crypto/unself.h b/rpcs3/Crypto/unself.h index 3ee13ef03a..6fc268b5d4 100644 --- a/rpcs3/Crypto/unself.h +++ b/rpcs3/Crypto/unself.h @@ -317,18 +317,18 @@ struct SceHeader bool CheckMagic() const { return se_magic == 0x53434500; } }; -struct SelfHeader +struct ext_hdr { - u64 se_htype; - u64 se_appinfooff; - u64 se_elfoff; - u64 se_phdroff; - u64 se_shdroff; - u64 se_secinfoff; - u64 se_sceveroff; - u64 se_controloff; - u64 se_controlsize; - u64 pad; + u64 ext_hdr_version; + u64 program_identification_hdr_offset; + u64 ehdr_offset; + u64 phdr_offset; + u64 shdr_offset; + u64 segment_ext_hdr_offset; + u64 version_hdr_offset; + u64 supplemental_hdr_offset; + u64 supplemental_hdr_size; + u64 padding; void Load(const fs::file& f); static void Show(){} @@ -376,7 +376,7 @@ class SELFDecrypter // SCE, SELF and APP headers. SceHeader sce_hdr{}; - SelfHeader self_hdr{}; + ext_hdr m_ext_hdr{}; AppInfo app_info{}; // ELF64 header and program header/section header arrays. @@ -484,7 +484,7 @@ private: } // Write section headers. - if (self_hdr.se_shdroff != 0) + if (m_ext_hdr.shdr_offset != 0) { e.seek(ehdr.e_shoff);