Use IO package for array and stream extensions

This commit is contained in:
Matt Nadareski
2023-09-08 16:33:06 -04:00
parent 1c972a29a7
commit 1eaefb16ba
46 changed files with 63 additions and 413 deletions

View File

@@ -24,4 +24,8 @@
<ProjectReference Include="..\BinaryObjectScanner.Utilities\BinaryObjectScanner.Utilities.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.1.1" />
</ItemGroup>
</Project>

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
namespace BinaryObjectScanner.ASN1
{

View File

@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.AACS;
namespace BinaryObjectScanner.Builders
@@ -186,7 +186,7 @@ namespace BinaryObjectScanner.Builders
var subsetDifference = new SubsetDifference();
subsetDifference.Mask = data.ReadByteValue();
subsetDifference.Number = data.ReadUInt32BE();
subsetDifference.Number = data.ReadUInt32BigEndian();
subsetDifferences.Add(subsetDifference);
}
@@ -257,7 +257,7 @@ namespace BinaryObjectScanner.Builders
// Cache the current offset
long initialOffset = data.Position - 4;
record.Span = data.ReadUInt32BE();
record.Span = data.ReadUInt32BigEndian();
// Create the offset list
var offsets = new List<uint>();
@@ -265,7 +265,7 @@ namespace BinaryObjectScanner.Builders
// Try to parse the offsets
while (data.Position < initialOffset + length)
{
uint offset = data.ReadUInt32BE();
uint offset = data.ReadUInt32BigEndian();
offsets.Add(offset);
}
@@ -291,8 +291,8 @@ namespace BinaryObjectScanner.Builders
record.RecordType = type;
record.RecordLength = length;
record.MediaKeyBlockType = (MediaKeyBlockType)data.ReadUInt32BE();
record.VersionNumber = data.ReadUInt32BE();
record.MediaKeyBlockType = (MediaKeyBlockType)data.ReadUInt32BigEndian();
record.VersionNumber = data.ReadUInt32BigEndian();
return record;
}
@@ -317,7 +317,7 @@ namespace BinaryObjectScanner.Builders
// Cache the current offset
long initialOffset = data.Position - 4;
record.TotalNumberOfEntries = data.ReadUInt32BE();
record.TotalNumberOfEntries = data.ReadUInt32BigEndian();
// Create the signature blocks list
var blocks = new List<DriveRevocationSignatureBlock>();
@@ -328,13 +328,13 @@ namespace BinaryObjectScanner.Builders
{
var block = new DriveRevocationSignatureBlock();
block.NumberOfEntries = data.ReadUInt32BE();
block.NumberOfEntries = data.ReadUInt32BigEndian();
block.EntryFields = new DriveRevocationListEntry[block.NumberOfEntries];
for (int i = 0; i < block.EntryFields.Length; i++)
{
var entry = new DriveRevocationListEntry();
entry.Range = data.ReadUInt16BE();
entry.Range = data.ReadUInt16BigEndian();
entry.DriveID = data.ReadBytes(6);
block.EntryFields[i] = entry;
@@ -378,7 +378,7 @@ namespace BinaryObjectScanner.Builders
// Cache the current offset
long initialOffset = data.Position - 4;
record.TotalNumberOfEntries = data.ReadUInt32BE();
record.TotalNumberOfEntries = data.ReadUInt32BigEndian();
// Create the signature blocks list
var blocks = new List<HostRevocationSignatureBlock>();
@@ -389,13 +389,13 @@ namespace BinaryObjectScanner.Builders
{
var block = new HostRevocationSignatureBlock();
block.NumberOfEntries = data.ReadUInt32BE();
block.NumberOfEntries = data.ReadUInt32BigEndian();
block.EntryFields = new HostRevocationListEntry[block.NumberOfEntries];
for (int i = 0; i < block.EntryFields.Length; i++)
{
var entry = new HostRevocationListEntry();
entry.Range = data.ReadUInt16BE();
entry.Range = data.ReadUInt16BigEndian();
entry.HostID = data.ReadBytes(6);
block.EntryFields[i] = entry;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.BDPlus;
using static SabreTools.Models.BDPlus.Constants;
@@ -73,7 +73,7 @@ namespace BinaryObjectScanner.Builders
return null;
svm.Unknown1 = data.ReadBytes(5);
svm.Year = data.ReadUInt16BE();
svm.Year = data.ReadUInt16BigEndian();
svm.Month = data.ReadByteValue();
if (svm.Month < 1 || svm.Month > 12)
return null;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.BFPK;
using static SabreTools.Models.BFPK.Constants;

View File

@@ -1,7 +1,7 @@
using System.IO;
using System.Linq;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.BSP;
using static SabreTools.Models.BSP.Constants;

View File

@@ -25,6 +25,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.1.1" />
<PackageReference Include="SabreTools.Models" Version="1.1.0" />
</ItemGroup>

View File

@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.CFB;
using static SabreTools.Models.CFB.Constants;

View File

@@ -4,7 +4,7 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
namespace BinaryObjectScanner.Builders
{

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.GCF;
namespace BinaryObjectScanner.Builders

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.InstallShieldCabinet;
using static SabreTools.Models.InstallShieldCabinet.Constants;

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.LinearExecutable;
using static SabreTools.Models.LinearExecutable.Constants;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.MSDOS;
using static SabreTools.Models.MSDOS.Constants;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.MicrosoftCabinet;
using static SabreTools.Models.MicrosoftCabinet.Constants;

View File

@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.MoPaQ;
using static SabreTools.Models.MoPaQ.Constants;

View File

@@ -2,6 +2,7 @@ using System;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.N3DS;
using static SabreTools.Models.N3DS.Constants;

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.NCF;
namespace BinaryObjectScanner.Builders

View File

@@ -2,7 +2,7 @@
using System.IO;
using System.Linq;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.NewExecutable;
using static SabreTools.Models.NewExecutable.Constants;

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.Nitro;
namespace BinaryObjectScanner.Builders

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.PAK;
using static SabreTools.Models.PAK.Constants;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.PFF;
using static SabreTools.Models.PFF.Constants;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.PlayJ;
using static SabreTools.Models.PlayJ.Constants;

View File

@@ -4,6 +4,7 @@ using System.IO;
using System.Linq;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.PortableExecutable;
using static SabreTools.Models.PortableExecutable.Constants;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.Quantum;
using static SabreTools.Models.Quantum.Constants;

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.SGA;
using static SabreTools.Models.SGA.Constants;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.VBSP;
using static SabreTools.Models.VBSP.Constants;

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.VPK;
using static SabreTools.Models.VPK.Constants;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.WAD;
using static SabreTools.Models.WAD.Constants;

View File

@@ -1,6 +1,6 @@
using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.XZP;
using static SabreTools.Models.XZP.Constants;

View File

@@ -35,6 +35,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.1.1" />
<PackageReference Include="SabreTools.Models" Version="1.1.0" />
<PackageReference Include="SharpCompress" Version="0.32.2" />
<PackageReference Include="SharpZipLib" Version="1.4.1" />

View File

@@ -1,7 +1,7 @@
using System.IO;
using System.Linq;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using SabreTools.Models.Compression.LZ;
using static SabreTools.Models.Compression.LZ.Constants;

View File

@@ -21,6 +21,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.1.1" />
<PackageReference Include="SharpZipLib" Version="1.4.1" />
<PackageReference Include="WiseUnpacker" Version="1.0.4" />
</ItemGroup>

View File

@@ -4,8 +4,8 @@ using System.IO;
using System.Linq;
using BinaryObjectScanner.Interfaces;
using BinaryObjectScanner.Matching;
using BinaryObjectScanner.Utilities;
using BinaryObjectScanner.Wrappers;
using SabreTools.IO;
using Wise = WiseUnpacker.WiseUnpacker;
namespace BinaryObjectScanner.Packer

View File

@@ -27,7 +27,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.1.0" />
<PackageReference Include="SabreTools.IO" Version="1.1.1" />
</ItemGroup>
</Project>

View File

@@ -7,6 +7,7 @@ using BinaryObjectScanner.Interfaces;
using BinaryObjectScanner.Matching;
using BinaryObjectScanner.Utilities;
using BinaryObjectScanner.Wrappers;
using SabreTools.IO;
namespace BinaryObjectScanner.Protection
{

View File

@@ -24,4 +24,8 @@
<ProjectReference Include="..\BinaryObjectScanner.Matching\BinaryObjectScanner.Matching.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.1.1" />
</ItemGroup>
</Project>

View File

@@ -1,5 +1,6 @@
using System.Collections;
using System.IO;
using SabreTools.IO;
namespace BinaryObjectScanner.Utilities
{

View File

@@ -1,10 +1,6 @@
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace BinaryObjectScanner.Utilities
{
@@ -185,371 +181,5 @@ namespace BinaryObjectScanner.Utilities
}
#endregion
#region Byte Array Reading
/// <summary>
/// Read a byte and increment the pointer to an array
/// </summary>
public static byte ReadByte(this byte[] content, ref int offset)
{
return content[offset++];
}
/// <summary>
/// Read a byte array and increment the pointer to an array
/// </summary>
public static byte[] ReadBytes(this byte[] content, ref int offset, int count)
{
// If there's an invalid byte count, don't do anything
if (count <= 0)
return null;
byte[] buffer = new byte[count];
Array.Copy(content, offset, buffer, 0, Math.Min(count, content.Length - offset));
offset += count;
return buffer;
}
/// <summary>
/// Read an sbyte and increment the pointer to an array
/// </summary>
public static sbyte ReadSByte(this byte[] content, ref int offset)
{
return (sbyte)content[offset++];
}
/// <summary>
/// Read a char and increment the pointer to an array
/// </summary>
public static char ReadChar(this byte[] content, ref int offset)
{
return (char)content[offset++];
}
/// <summary>
/// Read a short and increment the pointer to an array
/// </summary>
public static short ReadInt16(this byte[] content, ref int offset)
{
short value = BitConverter.ToInt16(content, offset);
offset += 2;
return value;
}
/// <summary>
/// Read a ushort and increment the pointer to an array
/// </summary>
public static ushort ReadUInt16(this byte[] content, ref int offset)
{
ushort value = BitConverter.ToUInt16(content, offset);
offset += 2;
return value;
}
/// <summary>
/// Read a int and increment the pointer to an array
/// </summary>
public static int ReadInt32(this byte[] content, ref int offset)
{
int value = BitConverter.ToInt32(content, offset);
offset += 4;
return value;
}
/// <summary>
/// Read a uint and increment the pointer to an array
/// </summary>
public static uint ReadUInt32(this byte[] content, ref int offset)
{
uint value = BitConverter.ToUInt32(content, offset);
offset += 4;
return value;
}
/// <summary>
/// Read a long and increment the pointer to an array
/// </summary>
public static long ReadInt64(this byte[] content, ref int offset)
{
long value = BitConverter.ToInt64(content, offset);
offset += 8;
return value;
}
/// <summary>
/// Read a ulong and increment the pointer to an array
/// </summary>
public static ulong ReadUInt64(this byte[] content, ref int offset)
{
ulong value = BitConverter.ToUInt64(content, offset);
offset += 8;
return value;
}
/// <summary>
/// Read a Guid from the stream
/// </summary>
public static Guid ReadGuid(this byte[] content, ref int offset)
{
byte[] buffer = new byte[16];
Array.Copy(content, offset, buffer, 0, 16);
offset += 16;
return new Guid(buffer);
}
/// <summary>
/// Read a null-terminated string from the stream
/// </summary>
public static string ReadString(this byte[] content, ref int offset) => content.ReadString(ref offset, Encoding.Default);
/// <summary>
/// Read a null-terminated string from the stream
/// </summary>
public static string ReadString(this byte[] content, ref int offset, Encoding encoding)
{
if (offset >= content.Length)
return null;
byte[] nullTerminator = encoding.GetBytes(new char[] { '\0' });
int charWidth = nullTerminator.Length;
List<char> keyChars = new List<char>();
while (offset < content.Length)
{
char c = encoding.GetChars(content, offset, charWidth)[0];
keyChars.Add(c);
offset += charWidth;
if (c == '\0')
break;
}
return new string(keyChars.ToArray()).TrimEnd('\0');
}
#endregion
#region Stream Reading
/// <summary>
/// Read a byte from the stream
/// </summary>
public static byte ReadByteValue(this Stream stream)
{
byte[] buffer = new byte[1];
stream.Read(buffer, 0, 1);
return buffer[0];
}
/// <summary>
/// Read a byte array from the stream
/// </summary>
public static byte[] ReadBytes(this Stream stream, int count)
{
// If there's an invalid byte count, don't do anything
if (count <= 0)
return null;
byte[] buffer = new byte[count];
stream.Read(buffer, 0, count);
return buffer;
}
/// <summary>
/// Read an sbyte from the stream
/// </summary>
public static sbyte ReadSByte(this Stream stream)
{
byte[] buffer = new byte[1];
stream.Read(buffer, 0, 1);
return (sbyte)buffer[0];
}
/// <summary>
/// Read a character from the stream
/// </summary>
public static char ReadChar(this Stream stream)
{
byte[] buffer = new byte[1];
stream.Read(buffer, 0, 1);
return (char)buffer[0];
}
/// <summary>
/// Read a short from the stream
/// </summary>
public static short ReadInt16(this Stream stream)
{
byte[] buffer = new byte[2];
stream.Read(buffer, 0, 2);
return BitConverter.ToInt16(buffer, 0);
}
/// <summary>
/// Read a short from the stream in big-endian format
/// </summary>
public static short ReadInt16BE(this Stream stream)
{
byte[] buffer = new byte[2];
stream.Read(buffer, 0, 2);
Array.Reverse(buffer);
return BitConverter.ToInt16(buffer, 0);
}
/// <summary>
/// Read a ushort from the stream
/// </summary>
public static ushort ReadUInt16(this Stream stream)
{
byte[] buffer = new byte[2];
stream.Read(buffer, 0, 2);
return BitConverter.ToUInt16(buffer, 0);
}
/// <summary>
/// Read a ushort from the stream in big-endian format
/// </summary>
public static ushort ReadUInt16BE(this Stream stream)
{
byte[] buffer = new byte[2];
stream.Read(buffer, 0, 2);
Array.Reverse(buffer);
return BitConverter.ToUInt16(buffer, 0);
}
/// <summary>
/// Read an int from the stream
/// </summary>
public static int ReadInt32(this Stream stream)
{
byte[] buffer = new byte[4];
stream.Read(buffer, 0, 4);
return BitConverter.ToInt32(buffer, 0);
}
/// <summary>
/// Read an int from the stream in big-endian format
/// </summary>
public static int ReadInt32BE(this Stream stream)
{
byte[] buffer = new byte[4];
stream.Read(buffer, 0, 4);
Array.Reverse(buffer);
return BitConverter.ToInt32(buffer, 0);
}
/// <summary>
/// Read a uint from the stream
/// </summary>
public static uint ReadUInt32(this Stream stream)
{
byte[] buffer = new byte[4];
stream.Read(buffer, 0, 4);
return BitConverter.ToUInt32(buffer, 0);
}
/// <summary>
/// Read a uint from the stream in big-endian format
/// </summary>
public static uint ReadUInt32BE(this Stream stream)
{
byte[] buffer = new byte[4];
stream.Read(buffer, 0, 4);
Array.Reverse(buffer);
return BitConverter.ToUInt32(buffer, 0);
}
/// <summary>
/// Read a long from the stream
/// </summary>
public static long ReadInt64(this Stream stream)
{
byte[] buffer = new byte[8];
stream.Read(buffer, 0, 8);
return BitConverter.ToInt64(buffer, 0);
}
/// <summary>
/// Read a long from the stream in big-endian format
/// </summary>
public static long ReadInt64BE(this Stream stream)
{
byte[] buffer = new byte[8];
stream.Read(buffer, 0, 8);
Array.Reverse(buffer);
return BitConverter.ToInt64(buffer, 0);
}
/// <summary>
/// Read a ulong from the stream
/// </summary>
public static ulong ReadUInt64(this Stream stream)
{
byte[] buffer = new byte[8];
stream.Read(buffer, 0, 8);
return BitConverter.ToUInt64(buffer, 0);
}
/// <summary>
/// Read a ulong from the stream in big-endian format
/// </summary>
public static ulong ReadUInt64BE(this Stream stream)
{
byte[] buffer = new byte[8];
stream.Read(buffer, 0, 8);
Array.Reverse(buffer);
return BitConverter.ToUInt64(buffer, 0);
}
/// <summary>
/// Read a Guid from the stream
/// </summary>
public static Guid ReadGuid(this Stream stream)
{
byte[] buffer = new byte[16];
stream.Read(buffer, 0, 16);
return new Guid(buffer);
}
/// <summary>
/// Read a Guid from the stream in big-endian format
/// </summary>
public static Guid ReadGuidBE(this Stream stream)
{
byte[] buffer = new byte[16];
stream.Read(buffer, 0, 16);
Array.Reverse(buffer);
return new Guid(buffer);
}
/// <summary>
/// Read a null-terminated string from the stream
/// </summary>
public static string ReadString(this Stream stream) => stream.ReadString(Encoding.Default);
/// <summary>
/// Read a null-terminated string from the stream
/// </summary>
public static string ReadString(this Stream stream, Encoding encoding)
{
if (stream.Position >= stream.Length)
return null;
byte[] nullTerminator = encoding.GetBytes(new char[] { '\0' });
int charWidth = nullTerminator.Length;
List<byte> tempBuffer = new List<byte>();
byte[] buffer = new byte[charWidth];
while (stream.Position < stream.Length && stream.Read(buffer, 0, charWidth) != 0 && !buffer.SequenceEqual(nullTerminator))
{
tempBuffer.AddRange(buffer);
}
return encoding.GetString(tempBuffer.ToArray());
}
#endregion
}
}

View File

@@ -27,6 +27,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.1.1" />
<PackageReference Include="SabreTools.Models" Version="1.1.0" />
<PackageReference Include="SharpCompress" Version="0.32.2" />
<PackageReference Include="SharpZipLib" Version="1.4.1" />

View File

@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Xml;
using BinaryObjectScanner.ASN1;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using static BinaryObjectScanner.Builders.Extensions;
namespace BinaryObjectScanner.Wrappers

View File

@@ -2,7 +2,7 @@ using System;
using System.IO;
using System.Linq;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
using static SabreTools.Models.VPK.Constants;
namespace BinaryObjectScanner.Wrappers

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
namespace BinaryObjectScanner.Wrappers
{

View File

@@ -2,6 +2,7 @@
using System.IO;
using BinaryObjectScanner.Matching;
using BinaryObjectScanner.Utilities;
using SabreTools.IO;
namespace BinaryObjectScanner.Wrappers
{

View File

@@ -6,6 +6,7 @@ using BinaryObjectScanner.Compression;
using BinaryObjectScanner.Utilities;
using BinaryObjectScanner.Wrappers;
using OpenMcdf;
using SabreTools.IO;
using SharpCompress.Archives;
using SharpCompress.Archives.GZip;
using SharpCompress.Archives.Rar;

View File

@@ -3,6 +3,7 @@ using System.IO;
using System.Text;
using BinaryObjectScanner.Utilities;
using BinaryObjectScanner.Wrappers;
using SabreTools.IO;
namespace Test
{

View File

@@ -18,6 +18,7 @@
<ItemGroup>
<PackageReference Include="OpenMcdf" Version="2.2.1.12" />
<PackageReference Include="SabreTools.IO" Version="1.1.1" />
<PackageReference Include="SabreTools.Models" Version="1.1.0" />
<PackageReference Include="UnshieldSharp" Version="1.6.9" />
</ItemGroup>