From 37453ecc8b9330463550dd9876924c033690e668 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Sun, 5 Apr 2020 02:50:14 -0400 Subject: [PATCH] some of these unknown fields are now known? --- .../DataFormats/FileSystem/ARJ/ARJDataFormat.cs | 13 ++++++++++++- .../FileSystem/ARJ/Internal/ARJFileHeader.cs | 4 ---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/ARJ/ARJDataFormat.cs b/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/ARJ/ARJDataFormat.cs index dedb71b7..f08b940a 100644 --- a/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/ARJ/ARJDataFormat.cs +++ b/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/ARJ/ARJDataFormat.cs @@ -21,6 +21,8 @@ namespace UniversalEditor.DataFormats.FileSystem.ARJ return _dfr; } + private Checksum.Modules.CRC32.CRC32ChecksumModule crc = new Checksum.Modules.CRC32.CRC32ChecksumModule(); + #region Loading protected override void LoadInternal(ref ObjectModel objectModel) { @@ -193,9 +195,18 @@ namespace UniversalEditor.DataFormats.FileSystem.ARJ fileheader.Timestamp = 0; byte[] data = file.GetData(); + fileheader.HeaderSize = 46; + fileheader.VersionNumber = 11; + fileheader.MinimumRequiredVersion = 1; + fileheader.HostOperatingSystem = GetHostOperatingSystem(); + fileheader.InternalFlags = ARJInternalFlags.PathTranslation; + fileheader.CompressionMethod = ARJCompressionMethod.Store; + fileheader.FileType = ARJFileType.Binary; + fileheader.Reserved = 0x49; + fileheader.Timestamp = 0x5E885D0A; fileheader.CompressedSize = (uint) data.Length; fileheader.OriginalSize = (uint) data.Length; - fileheader.OriginalCRC32 = 0; + fileheader.OriginalCRC32 = (int) crc.Calculate(data); fileheader.FileSpecPosition = 0; fileheader.FileAttributes = 0; fileheader.HostData = 0; diff --git a/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/ARJ/Internal/ARJFileHeader.cs b/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/ARJ/Internal/ARJFileHeader.cs index c27bf720..7a10e2cd 100644 --- a/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/ARJ/Internal/ARJFileHeader.cs +++ b/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/ARJ/Internal/ARJFileHeader.cs @@ -37,10 +37,6 @@ namespace UniversalEditor.DataFormats.FileSystem.ARJ.Internal public short FileSpecPosition; public short FileAttributes; public short HostData; - public int Unknown1; - public int Unknown2; - public int Unknown3; - public int Unknown4; public string FileName; public byte[] CompressedData; }