mirror of
https://github.com/claunia/libexeinfo.git
synced 2025-12-16 19:14:24 +00:00
Add MagiC operating system detection.
This commit is contained in:
@@ -109,8 +109,7 @@ namespace libexeinfo
|
|||||||
public bool Recognized { get; private set; }
|
public bool Recognized { get; private set; }
|
||||||
public string Type { get; private set; }
|
public string Type { get; private set; }
|
||||||
public IEnumerable<Architecture> Architectures => new[] {Architecture.M68K};
|
public IEnumerable<Architecture> Architectures => new[] {Architecture.M68K};
|
||||||
public OperatingSystem RequiredOperatingSystem =>
|
public OperatingSystem RequiredOperatingSystem { get; private set; }
|
||||||
new OperatingSystem {Name = Header.mint == MINT_SIGNATURE ? "MiNT" : "Atari TOS"};
|
|
||||||
public IEnumerable<string> Strings { get; private set; }
|
public IEnumerable<string> Strings { get; private set; }
|
||||||
|
|
||||||
void Initialize()
|
void Initialize()
|
||||||
@@ -145,6 +144,8 @@ namespace libexeinfo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RequiredOperatingSystem = new OperatingSystem {Name = Header.mint == MINT_SIGNATURE ? "MiNT" : "Atari TOS"};
|
||||||
|
|
||||||
if(ResourceStream == null) return;
|
if(ResourceStream == null) return;
|
||||||
|
|
||||||
buffer = new byte[Marshal.SizeOf(typeof(GEM.GemResourceHeader))];
|
buffer = new byte[Marshal.SizeOf(typeof(GEM.GemResourceHeader))];
|
||||||
@@ -161,7 +162,9 @@ namespace libexeinfo
|
|||||||
buffer = new byte[Marshal.SizeOf(typeof(GEM.MagiCResourceHeader))];
|
buffer = new byte[Marshal.SizeOf(typeof(GEM.MagiCResourceHeader))];
|
||||||
ResourceStream.Position = 0;
|
ResourceStream.Position = 0;
|
||||||
ResourceStream.Read(buffer, 0, buffer.Length);
|
ResourceStream.Read(buffer, 0, buffer.Length);
|
||||||
ResourceHeader = BigEndianMarshal.ByteArrayToStructureBigEndian<GEM.MagiCResourceHeader>(buffer);
|
ResourceHeader =
|
||||||
|
BigEndianMarshal.ByteArrayToStructureBigEndian<GEM.MagiCResourceHeader>(buffer);
|
||||||
|
RequiredOperatingSystem = new OperatingSystem {Name = "MagiC"};
|
||||||
}
|
}
|
||||||
else ResourceHeader = GEM.GemToMagiC(gemResourceHeader);
|
else ResourceHeader = GEM.GemToMagiC(gemResourceHeader);
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ using System.Collections.Generic;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Security;
|
|
||||||
using Claunia.Encoding;
|
using Claunia.Encoding;
|
||||||
|
|
||||||
namespace libexeinfo
|
namespace libexeinfo
|
||||||
@@ -156,7 +155,9 @@ namespace libexeinfo
|
|||||||
buffer = new byte[Marshal.SizeOf(typeof(GEM.MagiCResourceHeader))];
|
buffer = new byte[Marshal.SizeOf(typeof(GEM.MagiCResourceHeader))];
|
||||||
ResourceStream.Position = 0;
|
ResourceStream.Position = 0;
|
||||||
ResourceStream.Read(buffer, 0, buffer.Length);
|
ResourceStream.Read(buffer, 0, buffer.Length);
|
||||||
ResourceHeader = BigEndianMarshal.ByteArrayToStructureLittleEndian<GEM.MagiCResourceHeader>(buffer);
|
ResourceHeader =
|
||||||
|
BigEndianMarshal.ByteArrayToStructureLittleEndian<GEM.MagiCResourceHeader>(buffer);
|
||||||
|
RequiredOperatingSystem = new OperatingSystem {Name = "MagiC"};
|
||||||
}
|
}
|
||||||
else ResourceHeader = GEM.GemToMagiC(gemResourceHeader);
|
else ResourceHeader = GEM.GemToMagiC(gemResourceHeader);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user