lizzie
2 days ago
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
3 changed files with
6 additions and
9 deletions
-
src/core/loader/deconstructed_rom_directory.cpp
-
src/core/loader/kip.cpp
-
src/core/loader/nro.cpp
|
|
@ -228,9 +228,8 @@ AppLoader_DeconstructedRomDirectory::LoadResult AppLoader_DeconstructedRomDirect |
|
|
code_size += patch_ctx.GetTotalPatchSize(); |
|
|
code_size += patch_ctx.GetTotalPatchSize(); |
|
|
|
|
|
|
|
|
// TODO: this is bad form of ASLR, it sucks
|
|
|
// TODO: this is bad form of ASLR, it sucks
|
|
|
size_t aslr_offset = ((::Settings::values.rng_seed_enabled.GetValue() |
|
|
|
|
|
? ::Settings::values.rng_seed.GetValue() |
|
|
|
|
|
: Common::Random::Random64(0)) * 0x734287f27) & 0xfff000; |
|
|
|
|
|
|
|
|
std::uintptr_t aslr_offset = ((::Settings::values.rng_seed_enabled.GetValue() |
|
|
|
|
|
? ::Settings::values.rng_seed.GetValue() : Common::Random::Random64(0)) << 12) & 0xfff000; |
|
|
|
|
|
|
|
|
// Setup the process code layout
|
|
|
// Setup the process code layout
|
|
|
if (process.LoadFromMetadata(metadata, code_size, fastmem_base, aslr_offset, is_hbl).IsError()) { |
|
|
if (process.LoadFromMetadata(metadata, code_size, fastmem_base, aslr_offset, is_hbl).IsError()) { |
|
|
|
|
|
@ -89,9 +89,8 @@ AppLoader::LoadResult AppLoader_KIP::Load(Kernel::KProcess& process, |
|
|
codeset.DataSegment().size += kip->GetBSSSize(); |
|
|
codeset.DataSegment().size += kip->GetBSSSize(); |
|
|
|
|
|
|
|
|
// TODO: this is bad form of ASLR, it sucks
|
|
|
// TODO: this is bad form of ASLR, it sucks
|
|
|
size_t aslr_offset = ((::Settings::values.rng_seed_enabled.GetValue() |
|
|
|
|
|
? ::Settings::values.rng_seed.GetValue() |
|
|
|
|
|
: Common::Random::Random64(0)) * 0x734287f27) & 0xfff000; |
|
|
|
|
|
|
|
|
std::uintptr_t aslr_offset = ((::Settings::values.rng_seed_enabled.GetValue() |
|
|
|
|
|
? ::Settings::values.rng_seed.GetValue() : Common::Random::Random64(0)) << 12) & 0xfff000; |
|
|
|
|
|
|
|
|
// Setup the process code layout
|
|
|
// Setup the process code layout
|
|
|
if (process.LoadFromMetadata(FileSys::ProgramMetadata::GetDefault(), codeset.memory.size(), 0, aslr_offset, false).IsError()) { |
|
|
if (process.LoadFromMetadata(FileSys::ProgramMetadata::GetDefault(), codeset.memory.size(), 0, aslr_offset, false).IsError()) { |
|
|
|
|
|
@ -242,9 +242,8 @@ static bool LoadNroImpl(Core::System& system, Kernel::KProcess& process, |
|
|
}(); |
|
|
}(); |
|
|
|
|
|
|
|
|
// TODO: this is bad form of ASLR, it sucks
|
|
|
// TODO: this is bad form of ASLR, it sucks
|
|
|
size_t aslr_offset = ((::Settings::values.rng_seed_enabled.GetValue() |
|
|
|
|
|
? ::Settings::values.rng_seed.GetValue() |
|
|
|
|
|
: Common::Random::Random64(0)) * 0x734287f27) & 0xfff000; |
|
|
|
|
|
|
|
|
std::uintptr_t aslr_offset = ((::Settings::values.rng_seed_enabled.GetValue() |
|
|
|
|
|
? ::Settings::values.rng_seed.GetValue() : Common::Random::Random64(0)) << 12) & 0xfff000; |
|
|
|
|
|
|
|
|
// Setup the process code layout
|
|
|
// Setup the process code layout
|
|
|
if (process |
|
|
if (process |
|
|
|