From 2225c1f2d888b906237ee49fcbc21acdda1b7452 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 5 Sep 2025 10:57:14 -0400 Subject: [PATCH] Update Nuget packages --- ExtractionTool/ExtractionTool.csproj | 2 +- InfoPrint/InfoPrint.csproj | 2 +- .../SabreTools.Serialization.Test.csproj | 2 +- .../ByteArrayExtensions.cs | 40 ------------------- .../Deserializers/PKZIP.cs | 20 ++++------ .../Deserializers/PortableExecutable.cs | 8 ++-- SabreTools.Serialization/Printers/PKZIP.cs | 10 +---- .../Printers/PortableExecutable.cs | 8 ++-- .../SabreTools.Serialization.csproj | 6 +-- 9 files changed, 24 insertions(+), 74 deletions(-) delete mode 100644 SabreTools.Serialization/ByteArrayExtensions.cs diff --git a/ExtractionTool/ExtractionTool.csproj b/ExtractionTool/ExtractionTool.csproj index 669a11b0..181428fc 100644 --- a/ExtractionTool/ExtractionTool.csproj +++ b/ExtractionTool/ExtractionTool.csproj @@ -66,7 +66,7 @@ - + diff --git a/InfoPrint/InfoPrint.csproj b/InfoPrint/InfoPrint.csproj index e3be10b5..a7165209 100644 --- a/InfoPrint/InfoPrint.csproj +++ b/InfoPrint/InfoPrint.csproj @@ -32,7 +32,7 @@ - + diff --git a/SabreTools.Serialization.Test/SabreTools.Serialization.Test.csproj b/SabreTools.Serialization.Test/SabreTools.Serialization.Test.csproj index 5b383306..1fd4cbe3 100644 --- a/SabreTools.Serialization.Test/SabreTools.Serialization.Test.csproj +++ b/SabreTools.Serialization.Test/SabreTools.Serialization.Test.csproj @@ -28,7 +28,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/SabreTools.Serialization/ByteArrayExtensions.cs b/SabreTools.Serialization/ByteArrayExtensions.cs deleted file mode 100644 index 73ba9705..00000000 --- a/SabreTools.Serialization/ByteArrayExtensions.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System.Collections.Generic; -using System.Text; -using SabreTools.IO.Extensions; - -namespace SabreTools.Serialization -{ - // TODO: Move this to IO - public static class ByteArrayExtensions - { - /// - /// Read string data from the source - /// - /// Number of characters needed to be a valid string, default 5 - /// String list containing the requested data, null on error - public static List? ReadStringsFrom(this byte[]? input, int charLimit = 5) - { - // Validate the data - if (input == null) - return null; - - // Check for ASCII strings - var asciiStrings = input.ReadStringsWithEncoding(charLimit, Encoding.ASCII); - - // Check for UTF-8 strings - // We are limiting the check for Unicode characters with a second byte of 0x00 for now - var utf8Strings = input.ReadStringsWithEncoding(charLimit, Encoding.UTF8); - - // Check for Unicode strings - // We are limiting the check for Unicode characters with a second byte of 0x00 for now - var unicodeStrings = input.ReadStringsWithEncoding(charLimit, Encoding.Unicode); - - // Ignore duplicate strings across encodings - List sourceStrings = [.. asciiStrings, .. utf8Strings, .. unicodeStrings]; - - // Sort the strings and return - sourceStrings.Sort(); - return sourceStrings; - } - } -} \ No newline at end of file diff --git a/SabreTools.Serialization/Deserializers/PKZIP.cs b/SabreTools.Serialization/Deserializers/PKZIP.cs index 628b6f0a..a7d5cd07 100644 --- a/SabreTools.Serialization/Deserializers/PKZIP.cs +++ b/SabreTools.Serialization/Deserializers/PKZIP.cs @@ -45,7 +45,7 @@ namespace SabreTools.Serialization.Deserializers { // Central Directory File Header case CentralDirectoryFileHeaderSignature: - var cdr = ParseCentralDirectoryFileHeader(data, out _); + var cdr = ParseCentralDirectoryFileHeader(data); if (cdr == null) return null; @@ -170,10 +170,9 @@ namespace SabreTools.Serialization.Deserializers /// /// Stream to parse /// Filled central directory file header on success, null on error - public static CentralDirectoryFileHeader? ParseCentralDirectoryFileHeader(Stream data, out ExtensibleDataField[]? extraFields) + public static CentralDirectoryFileHeader? ParseCentralDirectoryFileHeader(Stream data) { var obj = new CentralDirectoryFileHeader(); - extraFields = null; obj.Signature = data.ReadUInt32LittleEndian(); if (obj.Signature != CentralDirectoryFileHeaderSignature) @@ -220,8 +219,7 @@ namespace SabreTools.Serialization.Deserializers if (extraBytes.Length != obj.ExtraFieldLength) return null; - // TODO: This should live on the model instead of the byte representation - extraFields = ParseExtraFields(obj, extraBytes); + obj.ExtraFields = ParseExtraFields(obj, extraBytes); } if (obj.FileCommentLength > 0 && data.Position + obj.FileCommentLength <= data.Length) { @@ -416,7 +414,7 @@ namespace SabreTools.Serialization.Deserializers #region Local File Header // Try to read the header - var localFileHeader = ParseLocalFileHeader(data, out var extraFields); + var localFileHeader = ParseLocalFileHeader(data); if (localFileHeader == null) return null; @@ -424,9 +422,9 @@ namespace SabreTools.Serialization.Deserializers obj.LocalFileHeader = localFileHeader; ulong compressedSize = localFileHeader.CompressedSize; - if (extraFields != null) + if (localFileHeader.ExtraFields != null) { - foreach (var field in extraFields) + foreach (var field in localFileHeader.ExtraFields) { if (field is not Zip64ExtendedInformationExtraField infoField) continue; @@ -532,10 +530,9 @@ namespace SabreTools.Serialization.Deserializers /// /// Stream to parse /// Filled local file header on success, null on error - public static LocalFileHeader? ParseLocalFileHeader(Stream data, out ExtensibleDataField[]? extraFields) + public static LocalFileHeader? ParseLocalFileHeader(Stream data) { var obj = new LocalFileHeader(); - extraFields = null; obj.Signature = data.ReadUInt32LittleEndian(); if (obj.Signature != LocalFileHeaderSignature) @@ -575,8 +572,7 @@ namespace SabreTools.Serialization.Deserializers if (extraBytes.Length != obj.ExtraFieldLength) return null; - // TODO: This should live on the model instead of the byte representation - extraFields = ParseExtraFields(obj, extraBytes); + obj.ExtraFields = ParseExtraFields(obj, extraBytes); } return obj; diff --git a/SabreTools.Serialization/Deserializers/PortableExecutable.cs b/SabreTools.Serialization/Deserializers/PortableExecutable.cs index cfb5c887..24f623e3 100644 --- a/SabreTools.Serialization/Deserializers/PortableExecutable.cs +++ b/SabreTools.Serialization/Deserializers/PortableExecutable.cs @@ -381,10 +381,10 @@ namespace SabreTools.Serialization.Deserializers { var obj = new CLRTokenDefinition(); - obj.AuxFormat6AuxType = data.ReadByteValue(); - obj.AuxFormat6Reserved1 = data.ReadByteValue(); - obj.AuxFormat6SymbolTableIndex = data.ReadUInt32LittleEndian(); - obj.AuxFormat6Reserved2 = data.ReadBytes(12); + obj.AuxType = data.ReadByteValue(); + obj.Reserved1 = data.ReadByteValue(); + obj.SymbolTableIndex = data.ReadUInt32LittleEndian(); + obj.Reserved2 = data.ReadBytes(12); return obj; } diff --git a/SabreTools.Serialization/Printers/PKZIP.cs b/SabreTools.Serialization/Printers/PKZIP.cs index 84636ad7..f515ebcb 100644 --- a/SabreTools.Serialization/Printers/PKZIP.cs +++ b/SabreTools.Serialization/Printers/PKZIP.cs @@ -69,10 +69,7 @@ namespace SabreTools.Serialization.Printers builder.AppendLine(localFileHeader.FileNameLength, " [Local File Header] File name length"); builder.AppendLine(localFileHeader.ExtraFieldLength, " [Local File Header] Extra field length"); builder.AppendLine(localFileHeader.FileName, " [Local File Header] File name"); - - // TODO: Reenable this when models are fixed - // var extraFields = Deserializers.PKZIP.ParseExtraFields(localFileHeader, localFileHeader.ExtraField); - // Print(builder, " [Local File Header] Extra Fields", extraFields); + Print(builder, " [Local File Header] Extra Fields", localFileHeader.ExtraFields); } #endregion @@ -241,10 +238,7 @@ namespace SabreTools.Serialization.Printers builder.AppendLine(entry.RelativeOffsetOfLocalHeader, " Relative offset of local header"); builder.AppendLine(entry.FileName, " File name"); builder.AppendLine(entry.FileComment, " File comment"); - - // TODO: Reenable this when models are fixed - // var extraFields = Deserializers.PKZIP.ParseExtraFields(entry, entry.ExtraField); - // Print(builder, " Extra Fields", extraFields); + Print(builder, " Extra Fields", entry.ExtraFields); } builder.AppendLine(); diff --git a/SabreTools.Serialization/Printers/PortableExecutable.cs b/SabreTools.Serialization/Printers/PortableExecutable.cs index a7f7916b..9f2ffdfe 100644 --- a/SabreTools.Serialization/Printers/PortableExecutable.cs +++ b/SabreTools.Serialization/Printers/PortableExecutable.cs @@ -410,10 +410,10 @@ namespace SabreTools.Serialization.Printers private static void Print(StringBuilder builder, CLRTokenDefinition entry, int i) { builder.AppendLine($" COFF Symbol Table Entry {i} (CLR Token Defintion)"); - builder.AppendLine(entry.AuxFormat6AuxType, " Aux type"); - builder.AppendLine(entry.AuxFormat6Reserved1, " Reserved"); - builder.AppendLine(entry.AuxFormat6SymbolTableIndex, " Symbol table index"); - builder.AppendLine(entry.AuxFormat6Reserved2, " Reserved"); + builder.AppendLine(entry.AuxType, " Aux type"); + builder.AppendLine(entry.Reserved1, " Reserved"); + builder.AppendLine(entry.SymbolTableIndex, " Symbol table index"); + builder.AppendLine(entry.Reserved2, " Reserved"); } private static void Print(StringBuilder builder, COFFStringTable? stringTable) diff --git a/SabreTools.Serialization/SabreTools.Serialization.csproj b/SabreTools.Serialization/SabreTools.Serialization.csproj index a4efbde9..47ad190b 100644 --- a/SabreTools.Serialization/SabreTools.Serialization.csproj +++ b/SabreTools.Serialization/SabreTools.Serialization.csproj @@ -63,10 +63,10 @@ - + - - + +