From 32b655b1f99bbe502bd272e1e2c6dca184d91e54 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 1 Apr 2025 12:33:05 -0400 Subject: [PATCH] Reread decrypted ExeFS headers (fixes #20) --- NDecrypt.Core/ThreeDSTool.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/NDecrypt.Core/ThreeDSTool.cs b/NDecrypt.Core/ThreeDSTool.cs index f4b9b60..6500dfb 100644 --- a/NDecrypt.Core/ThreeDSTool.cs +++ b/NDecrypt.Core/ThreeDSTool.cs @@ -325,6 +325,11 @@ namespace NDecrypt.Core return; } + // Reread the decrypted ExeFS header + uint exeFsHeaderOffset = cart.GetExeFSOffset(index); + input.Seek(exeFsHeaderOffset, SeekOrigin.Begin); + cart.ExeFSHeaders[index] = SabreTools.Serialization.Deserializers.N3DS.ParseExeFSHeader(input); + // Get the ExeFS header var exeFsHeader = cart.ExeFSHeaders[index]; if (exeFsHeader?.FileHeaders == null) @@ -333,8 +338,7 @@ namespace NDecrypt.Core return; } - // Get the ExeFS offset - uint exeFsHeaderOffset = cart.GetExeFSOffset(index); + // Get the ExeFS files offset uint exeFsFilesOffset = exeFsHeaderOffset + cart.MediaUnitSize; // Loop through and process all headers