diff --git a/SabreTools.Serialization/Wrappers/NewExecutable.Extraction.cs b/SabreTools.Serialization/Wrappers/NewExecutable.Extraction.cs index 2f853ad8..a79957dd 100644 --- a/SabreTools.Serialization/Wrappers/NewExecutable.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/NewExecutable.Extraction.cs @@ -42,7 +42,7 @@ namespace SabreTools.Serialization.Wrappers string extension = string.Empty; // Only process the overlay if it is recognized - for (; overlayOffset < 0x400 && overlayOffset < overlayData.Length; overlayOffset++) + for (; overlayOffset < 0x400 && overlayOffset < overlayData.Length - 0x10; overlayOffset++) { int temp = overlayOffset; byte[] overlaySample = overlayData.ReadBytes(ref temp, 0x10); @@ -113,6 +113,21 @@ namespace SabreTools.Serialization.Wrappers extension = "uha"; break; } + else if (overlaySample.StartsWith([0x3C, 0x3F, 0x78, 0x6D, 0x6C])) + { + extension = "xml"; + break; + } + else if (overlaySample.StartsWith([0x3C, 0x00, 0x3F, 0x00, 0x78, 0x00, 0x6D, 0x00, 0x6C, 0x00])) + { + extension = "xml"; + break; + } + else if (overlaySample.StartsWith([0xFF, 0xFE, 0x3C, 0x00, 0x3F, 0x00, 0x78, 0x00, 0x6D, 0x00, 0x6C, 0x00])) + { + extension = "xml"; + break; + } else if (overlaySample.StartsWith([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) { extension = "xz";