diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/NEResourceNameString.cs b/BurnOutSharp/ExecutableType/Microsoft/Entries/NEResourceNameString.cs
deleted file mode 100644
index 076a1f1e..00000000
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/NEResourceNameString.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using System.IO;
-using System.Text;
-using BurnOutSharp.Tools;
-
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
-{
- ///
- /// Resource type and name strings
- ///
- public class NEResourceNameString
- {
- ///
- /// Length of the type or name string that follows. A zero value
- /// indicates the end of the resource type and name string, also
- /// the end of the resource table.
- ///
- public byte Length;
-
- ///
- /// ASCII text of the type or name string.
- ///
- public char[] Value;
-
- public static NEResourceNameString Deserialize(Stream stream)
- {
- var rds = new NEResourceNameString();
-
- rds.Length = stream.ReadByteValue();
- rds.Value = stream.ReadChars(rds.Length, Encoding.ASCII);
-
- return rds;
- }
-
- public static NEResourceNameString Deserialize(byte[] content, ref int offset)
- {
- var rds = new NEResourceNameString();
-
- rds.Length = content.ReadByte(ref offset);
- rds.Value = Encoding.ASCII.GetChars(content, offset, rds.Length); offset += rds.Length;
-
- return rds;
- }
- }
-}
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Headers/MSDOSExecutableHeader.cs b/BurnOutSharp/ExecutableType/Microsoft/MZ/Headers/MSDOSExecutableHeader.cs
similarity index 99%
rename from BurnOutSharp/ExecutableType/Microsoft/Headers/MSDOSExecutableHeader.cs
rename to BurnOutSharp/ExecutableType/Microsoft/MZ/Headers/MSDOSExecutableHeader.cs
index 5e7751bf..ea36a996 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Headers/MSDOSExecutableHeader.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/MZ/Headers/MSDOSExecutableHeader.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Headers
+namespace BurnOutSharp.ExecutableType.Microsoft.MZ.Headers
{
///
/// The MS-DOS EXE format, also known as MZ after its signature (the initials of Microsoft engineer Mark Zbykowski),
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResidentNameTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResidentNameTableEntry.cs
similarity index 97%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/ResidentNameTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResidentNameTableEntry.cs
index b81a2ef9..445cd485 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResidentNameTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResidentNameTableEntry.cs
@@ -2,7 +2,7 @@ using System.IO;
using System.Text;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.NE.Entries
{
///
/// These name strings are case-sensitive and are not null-terminated
diff --git a/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceNameString.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceNameString.cs
new file mode 100644
index 00000000..f6287791
--- /dev/null
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceNameString.cs
@@ -0,0 +1,44 @@
+using System.IO;
+using System.Text;
+using BurnOutSharp.Tools;
+
+namespace BurnOutSharp.ExecutableType.Microsoft.NE.Entries
+{
+ ///
+ /// Resource type and name strings
+ ///
+ public class ResourceNameString
+ {
+ ///
+ /// Length of the type or name string that follows. A zero value
+ /// indicates the end of the resource type and name string, also
+ /// the end of the resource table.
+ ///
+ public byte Length;
+
+ ///
+ /// ASCII text of the type or name string.
+ ///
+ public char[] Value;
+
+ public static ResourceNameString Deserialize(Stream stream)
+ {
+ var rns = new ResourceNameString();
+
+ rns.Length = stream.ReadByteValue();
+ rns.Value = stream.ReadChars(rns.Length, Encoding.ASCII);
+
+ return rns;
+ }
+
+ public static ResourceNameString Deserialize(byte[] content, ref int offset)
+ {
+ var rns = new ResourceNameString();
+
+ rns.Length = content.ReadByte(ref offset);
+ rns.Value = Encoding.ASCII.GetChars(content, offset, rns.Length); offset += rns.Length;
+
+ return rns;
+ }
+ }
+}
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/NEResourceTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceTableEntry.cs
similarity index 84%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/NEResourceTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceTableEntry.cs
index 2aab74ef..c99344e0 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/NEResourceTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceTableEntry.cs
@@ -1,13 +1,12 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.NE.Entries
{
///
/// A table of resources for this type
///
- public class NEResourceTableEntry
+ public class ResourceTableEntry
{
///
/// File offset to the contents of the resource data,
@@ -45,9 +44,9 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Entries
///
public ushort Usage;
- public static NEResourceTableEntry Deserialize(Stream stream)
+ public static ResourceTableEntry Deserialize(Stream stream)
{
- var ni = new NEResourceTableEntry();
+ var ni = new ResourceTableEntry();
ni.Offset = stream.ReadUInt16();
ni.Length = stream.ReadUInt16();
@@ -59,9 +58,9 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Entries
return ni;
}
- public static NEResourceTableEntry Deserialize(byte[] content, ref int offset)
+ public static ResourceTableEntry Deserialize(byte[] content, ref int offset)
{
- var ni = new NEResourceTableEntry();
+ var ni = new ResourceTableEntry();
ni.Offset = content.ReadUInt16(ref offset);
ni.Length = content.ReadUInt16(ref offset);
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceTypeInformationBlock.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceTypeInformationBlock.cs
similarity index 79%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceTypeInformationBlock.cs
rename to BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceTypeInformationBlock.cs
index 5383db8a..91d50a21 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceTypeInformationBlock.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/ResourceTypeInformationBlock.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.NE.Entries
{
///
/// Resource type information block
@@ -31,7 +30,7 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Entries
///
/// Reserved.
///
- public NEResourceTableEntry[] ResourceTable;
+ public ResourceTableEntry[] ResourceTable;
public static ResourceTypeInformationBlock Deserialize(Stream stream)
{
@@ -41,10 +40,10 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Entries
rtib.ResourceCount = stream.ReadUInt16();
rtib.Reserved = stream.ReadUInt32();
- rtib.ResourceTable = new NEResourceTableEntry[rtib.ResourceCount];
+ rtib.ResourceTable = new ResourceTableEntry[rtib.ResourceCount];
for (int i = 0; i < rtib.ResourceCount; i++)
{
- rtib.ResourceTable[i] = NEResourceTableEntry.Deserialize(stream);
+ rtib.ResourceTable[i] = ResourceTableEntry.Deserialize(stream);
}
return rtib;
@@ -58,10 +57,10 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Entries
rtib.ResourceCount = content.ReadUInt16(ref offset);
rtib.Reserved = content.ReadUInt32(ref offset);
- rtib.ResourceTable = new NEResourceTableEntry[rtib.ResourceCount];
+ rtib.ResourceTable = new ResourceTableEntry[rtib.ResourceCount];
for (int i = 0; i < rtib.ResourceCount; i++)
{
- rtib.ResourceTable[i] = NEResourceTableEntry.Deserialize(content, ref offset);
+ rtib.ResourceTable[i] = ResourceTableEntry.Deserialize(content, ref offset);
}
return rtib;
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/NESegmentTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/SegmentTableEntry.cs
similarity index 82%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/NESegmentTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/NE/Entries/SegmentTableEntry.cs
index b05c2eb7..544932bc 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/NESegmentTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/Entries/SegmentTableEntry.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.NE.Entries
{
///
/// The segment table contains an entry for each segment in the executable
@@ -10,7 +9,7 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Entries
/// EXE header. The first entry in the segment table is segment number 1.
/// The following is the structure of a segment table entry.
///
- public class NESegmentTableEntry
+ public class SegmentTableEntry
{
///
/// Logical-sector offset (n byte) to the contents of the segment
@@ -35,9 +34,9 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Entries
///
public ushort MinimumAllocation;
- public static NESegmentTableEntry Deserialize(Stream stream)
+ public static SegmentTableEntry Deserialize(Stream stream)
{
- var nste = new NESegmentTableEntry();
+ var nste = new SegmentTableEntry();
nste.StartFileSector = stream.ReadUInt16();
nste.BytesInFile = stream.ReadUInt16();
@@ -47,9 +46,9 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Entries
return nste;
}
- public static NESegmentTableEntry Deserialize(byte[] content, ref int offset)
+ public static SegmentTableEntry Deserialize(byte[] content, ref int offset)
{
- var nste = new NESegmentTableEntry();
+ var nste = new SegmentTableEntry();
nste.StartFileSector = content.ReadUInt16(ref offset);
nste.BytesInFile = content.ReadUInt16(ref offset);
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Headers/NewExecutableHeader.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/Headers/NewExecutableHeader.cs
similarity index 99%
rename from BurnOutSharp/ExecutableType/Microsoft/Headers/NewExecutableHeader.cs
rename to BurnOutSharp/ExecutableType/Microsoft/NE/Headers/NewExecutableHeader.cs
index 6514e493..e5c97aeb 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Headers/NewExecutableHeader.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/Headers/NewExecutableHeader.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Headers
+namespace BurnOutSharp.ExecutableType.Microsoft.NE.Headers
{
///
/// The NE header is a relatively large structure with multiple characteristics.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/NewExecutable.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/NewExecutable.cs
similarity index 96%
rename from BurnOutSharp/ExecutableType/Microsoft/NewExecutable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/NE/NewExecutable.cs
index 99923831..13a0c12f 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/NewExecutable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/NewExecutable.cs
@@ -1,8 +1,9 @@
using System;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.MZ.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.NE.Headers;
-namespace BurnOutSharp.ExecutableType.Microsoft
+namespace BurnOutSharp.ExecutableType.Microsoft.NE
{
///
/// The WIN-NE executable format, designed for Windows 3.x, was the "NE", or "New Executable" format.
@@ -43,6 +44,10 @@ namespace BurnOutSharp.ExecutableType.Microsoft
#endregion
+ #region Tables
+
+ #endregion
+
#region Constructors
// TODO: Add more and more parts of a standard NE executable, not just the header
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/ResidentNameTable.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/Tables/ResidentNameTable.cs
similarity index 94%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/ResidentNameTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/NE/Tables/ResidentNameTable.cs
index 24d6ba36..cd35384a 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/ResidentNameTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/Tables/ResidentNameTable.cs
@@ -1,8 +1,8 @@
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.NE.Entries;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.NE.Tables
{
///
/// The resident-name table follows the resource table, and contains this
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/NEResourceTable.cs b/BurnOutSharp/ExecutableType/Microsoft/NE/Tables/ResourceTable.cs
similarity index 66%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/NEResourceTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/NE/Tables/ResourceTable.cs
index ad265565..20997fac 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/NEResourceTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/NE/Tables/ResourceTable.cs
@@ -1,10 +1,9 @@
-using System;
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.NE.Entries;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.NE.Tables
{
///
/// The resource table follows the segment table and contains entries for
@@ -16,7 +15,7 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Tables
/// resource. It also defines the location and size of the resource.
///
/// http://bytepointer.com/resources/win16_ne_exe_format_win3.0.htm
- public class NEResourceTable
+ public class ResourceTable
{
///
/// Alignment shift count for resource data.
@@ -33,13 +32,13 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Tables
/// resource table. Note that these strings are NOT null terminated and
/// are case sensitive.
///
- public NEResourceNameString[] TypeAndNameStrings;
+ public ResourceNameString[] TypeAndNameStrings;
- public static NEResourceTable Deserialize(Stream stream)
+ public static ResourceTable Deserialize(Stream stream)
{
- var nrt = new NEResourceTable();
+ var rt = new ResourceTable();
- nrt.AlignmentShiftCount = stream.ReadUInt16();
+ rt.AlignmentShiftCount = stream.ReadUInt16();
var typeInformationBlocks = new List();
while (true)
{
@@ -50,28 +49,28 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Tables
typeInformationBlocks.Add(block);
}
- nrt.TypeInformationBlocks = typeInformationBlocks.ToArray();
+ rt.TypeInformationBlocks = typeInformationBlocks.ToArray();
- var typeAndNameStrings = new List();
+ var typeAndNameStrings = new List();
while (true)
{
- var str = NEResourceNameString.Deserialize(stream);
+ var str = ResourceNameString.Deserialize(stream);
if (str.Length == 0)
break;
typeAndNameStrings.Add(str);
}
- nrt.TypeAndNameStrings = typeAndNameStrings.ToArray();
+ rt.TypeAndNameStrings = typeAndNameStrings.ToArray();
- return nrt;
+ return rt;
}
- public static NEResourceTable Deserialize(byte[] content, ref int offset)
+ public static ResourceTable Deserialize(byte[] content, ref int offset)
{
- var nrt = new NEResourceTable();
+ var rt = new ResourceTable();
- nrt.AlignmentShiftCount = content.ReadUInt16(ref offset);
+ rt.AlignmentShiftCount = content.ReadUInt16(ref offset);
var typeInformationBlocks = new List();
while (true)
{
@@ -82,21 +81,21 @@ namespace BurnOutSharp.ExecutableType.Microsoft.Tables
typeInformationBlocks.Add(block);
}
- nrt.TypeInformationBlocks = typeInformationBlocks.ToArray();
+ rt.TypeInformationBlocks = typeInformationBlocks.ToArray();
- var typeAndNameStrings = new List();
+ var typeAndNameStrings = new List();
while (true)
{
- var str = NEResourceNameString.Deserialize(content, ref offset);
+ var str = ResourceNameString.Deserialize(content, ref offset);
if (str.Length == 0)
break;
typeAndNameStrings.Add(str);
}
- nrt.TypeAndNameStrings = typeAndNameStrings.ToArray();
+ rt.TypeAndNameStrings = typeAndNameStrings.ToArray();
- return nrt;
+ return rt;
}
}
}
\ No newline at end of file
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/ExportAddressTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ExportAddressTableEntry.cs
similarity index 96%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/ExportAddressTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ExportAddressTableEntry.cs
index 84f48066..21c7b99f 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/ExportAddressTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ExportAddressTableEntry.cs
@@ -1,9 +1,9 @@
using System.IO;
using System.Text;
using BurnOutSharp.Tools;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Headers;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Entries
{
///
/// Each entry in the export address table is a field that uses one of two formats in the following table.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/FunctionTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/FunctionTableEntry.cs
similarity index 97%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/FunctionTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Entries/FunctionTableEntry.cs
index 7888819f..bf7b0892 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/FunctionTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/FunctionTableEntry.cs
@@ -1,4 +1,4 @@
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Entries
{
///
/// Each entry in the export address table is a field that uses one of two formats in the following table.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/HintNameTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/HintNameTableEntry.cs
similarity index 97%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/HintNameTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Entries/HintNameTableEntry.cs
index cb1a8b0a..93fd9211 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/HintNameTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/HintNameTableEntry.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Entries
{
///
/// Each entry in the hint/name table has the following format
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/ImportAddressTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ImportAddressTableEntry.cs
similarity index 97%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/ImportAddressTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ImportAddressTableEntry.cs
index 25eff610..e66f007d 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/ImportAddressTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ImportAddressTableEntry.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Entries
{
///
/// Each import address entry has the following format
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/ImportDirectoryTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ImportDirectoryTableEntry.cs
similarity index 97%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/ImportDirectoryTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ImportDirectoryTableEntry.cs
index ffa37703..43db684d 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/ImportDirectoryTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ImportDirectoryTableEntry.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Entries
{
///
/// Each import directory entry has the following format
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDataEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDataEntry.cs
similarity index 97%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDataEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDataEntry.cs
index bd17c23a..82f863e0 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDataEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDataEntry.cs
@@ -2,10 +2,10 @@ using System;
using System.IO;
using System.Linq;
using System.Text;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Headers;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Entries
{
///
/// Each Resource Data entry describes an actual unit of raw data in the Resource Data area.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDirectoryString.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDirectoryString.cs
similarity index 94%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDirectoryString.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDirectoryString.cs
index dc9ce473..f47f506f 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDirectoryString.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDirectoryString.cs
@@ -1,9 +1,8 @@
-using System;
-using System.IO;
+using System.IO;
using System.Text;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Entries
{
///
/// The resource directory string area consists of Unicode strings, which are word-aligned.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDirectoryTableEntry.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDirectoryTableEntry.cs
similarity index 97%
rename from BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDirectoryTableEntry.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDirectoryTableEntry.cs
index b031e351..d1d8146f 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Entries/ResourceDirectoryTableEntry.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Entries/ResourceDirectoryTableEntry.cs
@@ -1,10 +1,9 @@
-using System;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
-using BurnOutSharp.ExecutableType.Microsoft.Tables;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Tables;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Entries
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Entries
{
///
/// The directory entries make up the rows of a table.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Headers/CommonObjectFileFormatHeader.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Headers/CommonObjectFileFormatHeader.cs
similarity index 98%
rename from BurnOutSharp/ExecutableType/Microsoft/Headers/CommonObjectFileFormatHeader.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Headers/CommonObjectFileFormatHeader.cs
index ed63d5fe..800e221d 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Headers/CommonObjectFileFormatHeader.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Headers/CommonObjectFileFormatHeader.cs
@@ -2,7 +2,7 @@ using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Headers
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Headers
{
public class CommonObjectFileFormatHeader
{
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Headers/DataDirectoryHeader.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Headers/DataDirectoryHeader.cs
similarity index 93%
rename from BurnOutSharp/ExecutableType/Microsoft/Headers/DataDirectoryHeader.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Headers/DataDirectoryHeader.cs
index e2f6347d..06a5c783 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Headers/DataDirectoryHeader.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Headers/DataDirectoryHeader.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Headers
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Headers
{
public class DataDirectoryHeader
{
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Headers/OptionalHeader.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Headers/OptionalHeader.cs
similarity index 99%
rename from BurnOutSharp/ExecutableType/Microsoft/Headers/OptionalHeader.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Headers/OptionalHeader.cs
index 934922cd..39c561fb 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Headers/OptionalHeader.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Headers/OptionalHeader.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Headers
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Headers
{
///
/// Every image file has an optional header that provides information to the loader.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Headers/SectionHeader.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Headers/SectionHeader.cs
similarity index 99%
rename from BurnOutSharp/ExecutableType/Microsoft/Headers/SectionHeader.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Headers/SectionHeader.cs
index d220953a..5d0f2b25 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Headers/SectionHeader.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Headers/SectionHeader.cs
@@ -2,7 +2,7 @@ using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Headers
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Headers
{
///
/// Each row of the section table is, in effect, a section header.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/PortableExecutable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/PortableExecutable.cs
similarity index 99%
rename from BurnOutSharp/ExecutableType/Microsoft/PortableExecutable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/PortableExecutable.cs
index 5ec199d4..7a7d97fa 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/PortableExecutable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/PortableExecutable.cs
@@ -2,11 +2,12 @@ using System;
using System.IO;
using System.Linq;
using System.Text;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
-using BurnOutSharp.ExecutableType.Microsoft.Sections;
+using BurnOutSharp.ExecutableType.Microsoft.MZ.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Sections;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft
+namespace BurnOutSharp.ExecutableType.Microsoft.PE
{
///
/// The PE file header consists of a Microsoft MS-DOS stub, the PE signature, the COFF file header, and an optional header.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Sections/ExceptionHandlingSection.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ExceptionHandlingSection.cs
similarity index 88%
rename from BurnOutSharp/ExecutableType/Microsoft/Sections/ExceptionHandlingSection.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ExceptionHandlingSection.cs
index 48fa009d..379a3df4 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Sections/ExceptionHandlingSection.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ExceptionHandlingSection.cs
@@ -1,6 +1,6 @@
-using BurnOutSharp.ExecutableType.Microsoft.Tables;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Tables;
-namespace BurnOutSharp.ExecutableType.Microsoft.Sections
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Sections
{
///
/// The .pdata section contains an array of function table entries that are used for exception handling.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Sections/ExportDataSection.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ExportDataSection.cs
similarity index 95%
rename from BurnOutSharp/ExecutableType/Microsoft/Sections/ExportDataSection.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ExportDataSection.cs
index dea6b2f5..f1ffbd97 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Sections/ExportDataSection.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ExportDataSection.cs
@@ -1,10 +1,10 @@
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
-using BurnOutSharp.ExecutableType.Microsoft.Tables;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Tables;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Sections
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Sections
{
///
/// The export data section, named .edata, contains information about symbols that other images can access through dynamic linking.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Sections/ImportDataSection.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ImportDataSection.cs
similarity index 95%
rename from BurnOutSharp/ExecutableType/Microsoft/Sections/ImportDataSection.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ImportDataSection.cs
index 4791cd03..180b74c4 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Sections/ImportDataSection.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ImportDataSection.cs
@@ -1,8 +1,8 @@
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Tables;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Tables;
-namespace BurnOutSharp.ExecutableType.Microsoft.Sections
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Sections
{
///
/// All image files that import symbols, including virtually all executable (EXE) files, have an .idata section.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Sections/ResourceSection.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ResourceSection.cs
similarity index 90%
rename from BurnOutSharp/ExecutableType/Microsoft/Sections/ResourceSection.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ResourceSection.cs
index 3c313691..0c5bc7aa 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Sections/ResourceSection.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Sections/ResourceSection.cs
@@ -1,8 +1,8 @@
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
-using BurnOutSharp.ExecutableType.Microsoft.Tables;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Tables;
-namespace BurnOutSharp.ExecutableType.Microsoft.Sections
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Sections
{
///
/// A series of resource directory tables relates all of the levels in the following way:
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/ExportDirectoryTable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ExportDirectoryTable.cs
similarity index 98%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/ExportDirectoryTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ExportDirectoryTable.cs
index 694a9f72..e9880e6a 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/ExportDirectoryTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ExportDirectoryTable.cs
@@ -1,8 +1,7 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Tables
{
///
/// The export symbol information begins with the export directory table, which describes the remainder of the export symbol information.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/ExportOrdinalTable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ExportOrdinalTable.cs
similarity index 96%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/ExportOrdinalTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ExportOrdinalTable.cs
index da43707b..ee0fa62d 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/ExportOrdinalTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ExportOrdinalTable.cs
@@ -2,7 +2,7 @@ using System;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Tables
{
///
/// The export ordinal table is an array of 16-bit unbiased indexes into the export address table.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/FunctionTable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/FunctionTable.cs
similarity index 87%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/FunctionTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Tables/FunctionTable.cs
index b879bc95..1439272d 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/FunctionTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/FunctionTable.cs
@@ -1,6 +1,6 @@
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Entries;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Tables
{
///
/// The .pdata section contains an array of function table entries that are used for exception handling.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/HintNameTable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/HintNameTable.cs
similarity index 91%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/HintNameTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Tables/HintNameTable.cs
index 517575a2..caa2b9a4 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/HintNameTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/HintNameTable.cs
@@ -1,7 +1,7 @@
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Entries;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Tables
{
///
/// One hint/name table suffices for the entire import section.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/ImportAddressTable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportAddressTable.cs
similarity index 94%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/ImportAddressTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportAddressTable.cs
index 328b86f7..87923c33 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/ImportAddressTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportAddressTable.cs
@@ -1,8 +1,8 @@
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Entries;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Tables
{
///
/// The structure and content of the import address table are identical to those of the import lookup table, until the file is bound.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/ImportDirectoryTable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportDirectoryTable.cs
similarity index 94%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/ImportDirectoryTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportDirectoryTable.cs
index 6b165954..dcf862b9 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/ImportDirectoryTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportDirectoryTable.cs
@@ -1,8 +1,8 @@
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Entries;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Tables
{
///
/// The import information begins with the import directory table, which describes the remainder of the import information.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/ImportLookupTable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportLookupTable.cs
similarity index 98%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/ImportLookupTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportLookupTable.cs
index 5b61f95f..aa0c4c65 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/ImportLookupTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ImportLookupTable.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.IO;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Tables
{
///
/// An import lookup table is an array of 32-bit numbers for PE32 or an array of 64-bit numbers for PE32+.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Tables/ResourceDirectoryTable.cs b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ResourceDirectoryTable.cs
similarity index 96%
rename from BurnOutSharp/ExecutableType/Microsoft/Tables/ResourceDirectoryTable.cs
rename to BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ResourceDirectoryTable.cs
index e1e4689c..e3a0e650 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Tables/ResourceDirectoryTable.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/PE/Tables/ResourceDirectoryTable.cs
@@ -1,10 +1,10 @@
using System;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Headers;
using BurnOutSharp.Tools;
-namespace BurnOutSharp.ExecutableType.Microsoft.Tables
+namespace BurnOutSharp.ExecutableType.Microsoft.PE.Tables
{
///
/// Each resource directory table has the following format.
diff --git a/BurnOutSharp/ExecutableType/Microsoft/Resources/FixedFileInfo.cs b/BurnOutSharp/ExecutableType/Microsoft/Resources/FixedFileInfo.cs
index 20d199fd..04225e8a 100644
--- a/BurnOutSharp/ExecutableType/Microsoft/Resources/FixedFileInfo.cs
+++ b/BurnOutSharp/ExecutableType/Microsoft/Resources/FixedFileInfo.cs
@@ -1,4 +1,3 @@
-using System;
using System.IO;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/FileType/Executable.cs b/BurnOutSharp/FileType/Executable.cs
index db292c7e..3e47c479 100644
--- a/BurnOutSharp/FileType/Executable.cs
+++ b/BurnOutSharp/FileType/Executable.cs
@@ -6,7 +6,8 @@ using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Tools;
namespace BurnOutSharp.FileType
diff --git a/BurnOutSharp/IContentCheck.cs b/BurnOutSharp/IContentCheck.cs
index 8aaceb46..9a1083d0 100644
--- a/BurnOutSharp/IContentCheck.cs
+++ b/BurnOutSharp/IContentCheck.cs
@@ -1,9 +1,11 @@
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
namespace BurnOutSharp
{
// TODO: This should either include an override that takes a Stream instead of the byte[]
// OR have a completely separate check for when it's an executable specifically
+ // TODO: Separate CheckContents into a separate check for each executalbe type; separate interfaces?
internal interface IContentCheck
{
///
diff --git a/BurnOutSharp/PackerType/AdvancedInstaller.cs b/BurnOutSharp/PackerType/AdvancedInstaller.cs
index 7bdc3f05..24706a3b 100644
--- a/BurnOutSharp/PackerType/AdvancedInstaller.cs
+++ b/BurnOutSharp/PackerType/AdvancedInstaller.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/Armadillo.cs b/BurnOutSharp/PackerType/Armadillo.cs
index 5254c16f..fefbf3ac 100644
--- a/BurnOutSharp/PackerType/Armadillo.cs
+++ b/BurnOutSharp/PackerType/Armadillo.cs
@@ -1,7 +1,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/CExe.cs b/BurnOutSharp/PackerType/CExe.cs
index ff1fc051..2988a53a 100644
--- a/BurnOutSharp/PackerType/CExe.cs
+++ b/BurnOutSharp/PackerType/CExe.cs
@@ -1,7 +1,8 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/EXEStealth.cs b/BurnOutSharp/PackerType/EXEStealth.cs
index 89e957a3..e84d4e7f 100644
--- a/BurnOutSharp/PackerType/EXEStealth.cs
+++ b/BurnOutSharp/PackerType/EXEStealth.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/InnoSetup.cs b/BurnOutSharp/PackerType/InnoSetup.cs
index 66ad3af9..4797885d 100644
--- a/BurnOutSharp/PackerType/InnoSetup.cs
+++ b/BurnOutSharp/PackerType/InnoSetup.cs
@@ -4,7 +4,8 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/InstallAnywhere.cs b/BurnOutSharp/PackerType/InstallAnywhere.cs
index 6773ef22..7f913396 100644
--- a/BurnOutSharp/PackerType/InstallAnywhere.cs
+++ b/BurnOutSharp/PackerType/InstallAnywhere.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Concurrent;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Tools;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/InstallerVISE.cs b/BurnOutSharp/PackerType/InstallerVISE.cs
index 343d0ab7..e60b5fac 100644
--- a/BurnOutSharp/PackerType/InstallerVISE.cs
+++ b/BurnOutSharp/PackerType/InstallerVISE.cs
@@ -1,7 +1,8 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/IntelInstallationFramework.cs b/BurnOutSharp/PackerType/IntelInstallationFramework.cs
index 19fa4440..f852170b 100644
--- a/BurnOutSharp/PackerType/IntelInstallationFramework.cs
+++ b/BurnOutSharp/PackerType/IntelInstallationFramework.cs
@@ -1,5 +1,6 @@
using System;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Tools;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/MicrosoftCABSFX.cs b/BurnOutSharp/PackerType/MicrosoftCABSFX.cs
index 5cee2970..e22fa552 100644
--- a/BurnOutSharp/PackerType/MicrosoftCABSFX.cs
+++ b/BurnOutSharp/PackerType/MicrosoftCABSFX.cs
@@ -2,7 +2,8 @@ using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/PackerType/NSIS.cs b/BurnOutSharp/PackerType/NSIS.cs
index 162c1941..9f7445a4 100644
--- a/BurnOutSharp/PackerType/NSIS.cs
+++ b/BurnOutSharp/PackerType/NSIS.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/PackerType/PECompact.cs b/BurnOutSharp/PackerType/PECompact.cs
index 557532c1..7a3cd83f 100644
--- a/BurnOutSharp/PackerType/PECompact.cs
+++ b/BurnOutSharp/PackerType/PECompact.cs
@@ -1,5 +1,5 @@
-using BurnOutSharp.ExecutableType.Microsoft;
-
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
namespace BurnOutSharp.PackerType
{
diff --git a/BurnOutSharp/PackerType/Petite.cs b/BurnOutSharp/PackerType/Petite.cs
index 8c98ddc2..61b421ab 100644
--- a/BurnOutSharp/PackerType/Petite.cs
+++ b/BurnOutSharp/PackerType/Petite.cs
@@ -1,4 +1,5 @@
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
namespace BurnOutSharp.PackerType
{
diff --git a/BurnOutSharp/PackerType/SetupFactory.cs b/BurnOutSharp/PackerType/SetupFactory.cs
index 0e2bf74e..2740686f 100644
--- a/BurnOutSharp/PackerType/SetupFactory.cs
+++ b/BurnOutSharp/PackerType/SetupFactory.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Concurrent;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Tools;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/UPX.cs b/BurnOutSharp/PackerType/UPX.cs
index e2c71ba5..aab1fbeb 100644
--- a/BurnOutSharp/PackerType/UPX.cs
+++ b/BurnOutSharp/PackerType/UPX.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Text;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/PackerType/WinRARSFX.cs b/BurnOutSharp/PackerType/WinRARSFX.cs
index a73312dd..e0bf466b 100644
--- a/BurnOutSharp/PackerType/WinRARSFX.cs
+++ b/BurnOutSharp/PackerType/WinRARSFX.cs
@@ -2,7 +2,8 @@ using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
using SharpCompress.Archives;
diff --git a/BurnOutSharp/PackerType/WinZipSFX.cs b/BurnOutSharp/PackerType/WinZipSFX.cs
index 90ca53be..7c6e1de8 100644
--- a/BurnOutSharp/PackerType/WinZipSFX.cs
+++ b/BurnOutSharp/PackerType/WinZipSFX.cs
@@ -3,6 +3,8 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
using SharpCompress.Archives;
diff --git a/BurnOutSharp/PackerType/WiseInstaller.cs b/BurnOutSharp/PackerType/WiseInstaller.cs
index d0e3ff9b..b8efb611 100644
--- a/BurnOutSharp/PackerType/WiseInstaller.cs
+++ b/BurnOutSharp/PackerType/WiseInstaller.cs
@@ -2,7 +2,8 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
using Wise = WiseUnpacker.WiseUnpacker;
diff --git a/BurnOutSharp/PackerType/dotFuscator.cs b/BurnOutSharp/PackerType/dotFuscator.cs
index 89a32f58..f9ece12e 100644
--- a/BurnOutSharp/PackerType/dotFuscator.cs
+++ b/BurnOutSharp/PackerType/dotFuscator.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.PackerType
diff --git a/BurnOutSharp/ProtectionType/ActiveMARK.cs b/BurnOutSharp/ProtectionType/ActiveMARK.cs
index efeb5a1c..46cda77c 100644
--- a/BurnOutSharp/ProtectionType/ActiveMARK.cs
+++ b/BurnOutSharp/ProtectionType/ActiveMARK.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/AlphaROM.cs b/BurnOutSharp/ProtectionType/AlphaROM.cs
index 8099bf11..0724fdb4 100644
--- a/BurnOutSharp/ProtectionType/AlphaROM.cs
+++ b/BurnOutSharp/ProtectionType/AlphaROM.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/CDCheck.cs b/BurnOutSharp/ProtectionType/CDCheck.cs
index f47277d4..a2a4094b 100644
--- a/BurnOutSharp/ProtectionType/CDCheck.cs
+++ b/BurnOutSharp/ProtectionType/CDCheck.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/CDDVDCops.cs b/BurnOutSharp/ProtectionType/CDDVDCops.cs
index 4a3e3d2b..5bb9da0c 100644
--- a/BurnOutSharp/ProtectionType/CDDVDCops.cs
+++ b/BurnOutSharp/ProtectionType/CDDVDCops.cs
@@ -2,7 +2,8 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/CDKey.cs b/BurnOutSharp/ProtectionType/CDKey.cs
index e2e61f69..86f302c7 100644
--- a/BurnOutSharp/ProtectionType/CDKey.cs
+++ b/BurnOutSharp/ProtectionType/CDKey.cs
@@ -1,5 +1,6 @@
using System;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Tools;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/CDLock.cs b/BurnOutSharp/ProtectionType/CDLock.cs
index 58e07557..76aa4f20 100644
--- a/BurnOutSharp/ProtectionType/CDLock.cs
+++ b/BurnOutSharp/ProtectionType/CDLock.cs
@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/CDSHiELDSE.cs b/BurnOutSharp/ProtectionType/CDSHiELDSE.cs
index 825f21d9..c67b8644 100644
--- a/BurnOutSharp/ProtectionType/CDSHiELDSE.cs
+++ b/BurnOutSharp/ProtectionType/CDSHiELDSE.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/CactusDataShield.cs b/BurnOutSharp/ProtectionType/CactusDataShield.cs
index 2270eef5..81246047 100644
--- a/BurnOutSharp/ProtectionType/CactusDataShield.cs
+++ b/BurnOutSharp/ProtectionType/CactusDataShield.cs
@@ -4,7 +4,8 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/CenegaProtectDVD.cs b/BurnOutSharp/ProtectionType/CenegaProtectDVD.cs
index 97660d90..f08ea83f 100644
--- a/BurnOutSharp/ProtectionType/CenegaProtectDVD.cs
+++ b/BurnOutSharp/ProtectionType/CenegaProtectDVD.cs
@@ -1,4 +1,5 @@
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
namespace BurnOutSharp.ProtectionType
{
diff --git a/BurnOutSharp/ProtectionType/CodeLock.cs b/BurnOutSharp/ProtectionType/CodeLock.cs
index 42aab973..5b66b354 100644
--- a/BurnOutSharp/ProtectionType/CodeLock.cs
+++ b/BurnOutSharp/ProtectionType/CodeLock.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/CopyKiller.cs b/BurnOutSharp/ProtectionType/CopyKiller.cs
index 48563d96..864ff8fd 100644
--- a/BurnOutSharp/ProtectionType/CopyKiller.cs
+++ b/BurnOutSharp/ProtectionType/CopyKiller.cs
@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/ElectronicArts.cs b/BurnOutSharp/ProtectionType/ElectronicArts.cs
index b1afeba1..bf452d5f 100644
--- a/BurnOutSharp/ProtectionType/ElectronicArts.cs
+++ b/BurnOutSharp/ProtectionType/ElectronicArts.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/GFWL.cs b/BurnOutSharp/ProtectionType/GFWL.cs
index d23b97ec..4313235f 100644
--- a/BurnOutSharp/ProtectionType/GFWL.cs
+++ b/BurnOutSharp/ProtectionType/GFWL.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/ImpulseReactor.cs b/BurnOutSharp/ProtectionType/ImpulseReactor.cs
index d942cbd7..d502556a 100644
--- a/BurnOutSharp/ProtectionType/ImpulseReactor.cs
+++ b/BurnOutSharp/ProtectionType/ImpulseReactor.cs
@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/Intenium.cs b/BurnOutSharp/ProtectionType/Intenium.cs
index d514978e..4fb4ec8f 100644
--- a/BurnOutSharp/ProtectionType/Intenium.cs
+++ b/BurnOutSharp/ProtectionType/Intenium.cs
@@ -1,4 +1,5 @@
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Tools;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/JoWood.cs b/BurnOutSharp/ProtectionType/JoWood.cs
index 0616aca2..47ee250d 100644
--- a/BurnOutSharp/ProtectionType/JoWood.cs
+++ b/BurnOutSharp/ProtectionType/JoWood.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/KeyLock.cs b/BurnOutSharp/ProtectionType/KeyLock.cs
index 973265bd..639e0f26 100644
--- a/BurnOutSharp/ProtectionType/KeyLock.cs
+++ b/BurnOutSharp/ProtectionType/KeyLock.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/LaserLok.cs b/BurnOutSharp/ProtectionType/LaserLok.cs
index 9a8bef3f..172587d6 100644
--- a/BurnOutSharp/ProtectionType/LaserLok.cs
+++ b/BurnOutSharp/ProtectionType/LaserLok.cs
@@ -3,7 +3,8 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/MediaMaxCD3.cs b/BurnOutSharp/ProtectionType/MediaMaxCD3.cs
index e55f4160..1decbd97 100644
--- a/BurnOutSharp/ProtectionType/MediaMaxCD3.cs
+++ b/BurnOutSharp/ProtectionType/MediaMaxCD3.cs
@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/OnlineRegistration.cs b/BurnOutSharp/ProtectionType/OnlineRegistration.cs
index 17299d7f..32c7a82a 100644
--- a/BurnOutSharp/ProtectionType/OnlineRegistration.cs
+++ b/BurnOutSharp/ProtectionType/OnlineRegistration.cs
@@ -1,5 +1,6 @@
using System;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Tools;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/Origin.cs b/BurnOutSharp/ProtectionType/Origin.cs
index 4639e156..6bd212d3 100644
--- a/BurnOutSharp/ProtectionType/Origin.cs
+++ b/BurnOutSharp/ProtectionType/Origin.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/PSXAntiModchip.cs b/BurnOutSharp/ProtectionType/PSXAntiModchip.cs
index 5e9ddbd2..354a9b3e 100644
--- a/BurnOutSharp/ProtectionType/PSXAntiModchip.cs
+++ b/BurnOutSharp/ProtectionType/PSXAntiModchip.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/ProtectDisc.cs b/BurnOutSharp/ProtectionType/ProtectDisc.cs
index 25305203..9ae041da 100644
--- a/BurnOutSharp/ProtectionType/ProtectDisc.cs
+++ b/BurnOutSharp/ProtectionType/ProtectDisc.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/RingPROTECH.cs b/BurnOutSharp/ProtectionType/RingPROTECH.cs
index d480003b..52770721 100644
--- a/BurnOutSharp/ProtectionType/RingPROTECH.cs
+++ b/BurnOutSharp/ProtectionType/RingPROTECH.cs
@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/SVKP.cs b/BurnOutSharp/ProtectionType/SVKP.cs
index 90af275f..bc5095f0 100644
--- a/BurnOutSharp/ProtectionType/SVKP.cs
+++ b/BurnOutSharp/ProtectionType/SVKP.cs
@@ -1,4 +1,5 @@
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
namespace BurnOutSharp.ProtectionType
{
diff --git a/BurnOutSharp/ProtectionType/SafeDisc.cs b/BurnOutSharp/ProtectionType/SafeDisc.cs
index feae2230..2c178b4d 100644
--- a/BurnOutSharp/ProtectionType/SafeDisc.cs
+++ b/BurnOutSharp/ProtectionType/SafeDisc.cs
@@ -2,7 +2,8 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/SecuROM.cs b/BurnOutSharp/ProtectionType/SecuROM.cs
index fe4c8f4f..6154b3b9 100644
--- a/BurnOutSharp/ProtectionType/SecuROM.cs
+++ b/BurnOutSharp/ProtectionType/SecuROM.cs
@@ -3,7 +3,8 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/SmartE.cs b/BurnOutSharp/ProtectionType/SmartE.cs
index ac373fbe..e3bb8f5f 100644
--- a/BurnOutSharp/ProtectionType/SmartE.cs
+++ b/BurnOutSharp/ProtectionType/SmartE.cs
@@ -1,8 +1,9 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
-using BurnOutSharp.ExecutableType.Microsoft;
-using BurnOutSharp.ExecutableType.Microsoft.Headers;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Headers;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/SolidShield.cs b/BurnOutSharp/ProtectionType/SolidShield.cs
index 171789ec..d44f1b67 100644
--- a/BurnOutSharp/ProtectionType/SolidShield.cs
+++ b/BurnOutSharp/ProtectionType/SolidShield.cs
@@ -2,7 +2,8 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/StarForce.cs b/BurnOutSharp/ProtectionType/StarForce.cs
index 555b3ff3..3b8bf593 100644
--- a/BurnOutSharp/ProtectionType/StarForce.cs
+++ b/BurnOutSharp/ProtectionType/StarForce.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/Sysiphus.cs b/BurnOutSharp/ProtectionType/Sysiphus.cs
index 4f7bc0d5..01218755 100644
--- a/BurnOutSharp/ProtectionType/Sysiphus.cs
+++ b/BurnOutSharp/ProtectionType/Sysiphus.cs
@@ -1,7 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/Tages.cs b/BurnOutSharp/ProtectionType/Tages.cs
index fb99852f..dbcba9cd 100644
--- a/BurnOutSharp/ProtectionType/Tages.cs
+++ b/BurnOutSharp/ProtectionType/Tages.cs
@@ -3,7 +3,8 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
diff --git a/BurnOutSharp/ProtectionType/ThreePLock.cs b/BurnOutSharp/ProtectionType/ThreePLock.cs
index f7833d29..781039f9 100644
--- a/BurnOutSharp/ProtectionType/ThreePLock.cs
+++ b/BurnOutSharp/ProtectionType/ThreePLock.cs
@@ -1,4 +1,5 @@
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
namespace BurnOutSharp.ProtectionType
{
diff --git a/BurnOutSharp/ProtectionType/ThreeTwoOneStudios.cs b/BurnOutSharp/ProtectionType/ThreeTwoOneStudios.cs
index 747fcced..28c0e9e0 100644
--- a/BurnOutSharp/ProtectionType/ThreeTwoOneStudios.cs
+++ b/BurnOutSharp/ProtectionType/ThreeTwoOneStudios.cs
@@ -1,4 +1,5 @@
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Tools;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/WTMCDProtect.cs b/BurnOutSharp/ProtectionType/WTMCDProtect.cs
index e76079a8..37f6125a 100644
--- a/BurnOutSharp/ProtectionType/WTMCDProtect.cs
+++ b/BurnOutSharp/ProtectionType/WTMCDProtect.cs
@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
namespace BurnOutSharp.ProtectionType
diff --git a/BurnOutSharp/ProtectionType/XCP.cs b/BurnOutSharp/ProtectionType/XCP.cs
index 88575bd7..beeb5ee4 100644
--- a/BurnOutSharp/ProtectionType/XCP.cs
+++ b/BurnOutSharp/ProtectionType/XCP.cs
@@ -3,7 +3,8 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using BurnOutSharp.ExecutableType.Microsoft;
+using BurnOutSharp.ExecutableType.Microsoft.NE;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.FileType;
using BurnOutSharp.Matching;
diff --git a/BurnOutSharp/Tools/Utilities.cs b/BurnOutSharp/Tools/Utilities.cs
index ede29346..d93d39a1 100644
--- a/BurnOutSharp/Tools/Utilities.cs
+++ b/BurnOutSharp/Tools/Utilities.cs
@@ -5,11 +5,11 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Xml;
-using BurnOutSharp.ExecutableType.Microsoft;
-using BurnOutSharp.ExecutableType.Microsoft.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.PE;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Entries;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Sections;
+using BurnOutSharp.ExecutableType.Microsoft.PE.Tables;
using BurnOutSharp.ExecutableType.Microsoft.Resources;
-using BurnOutSharp.ExecutableType.Microsoft.Sections;
-using BurnOutSharp.ExecutableType.Microsoft.Tables;
namespace BurnOutSharp.Tools
{