using System.Runtime.InteropServices;
namespace BinaryObjectScanner.Models.PortableExecutable
{
///
/// Overlay data associated with SecuROM executables
///
///
/// All information in this file has been researched in a clean room
/// environment by using sample from legally obtained software that
/// is protected by SecuROM.
///
[StructLayout(LayoutKind.Sequential)]
public sealed class SecuROMAddD
{
///
/// "AddD", Identifier?
///
public uint Signature;
///
/// Unknown (Entry count?)
///
///
/// 3 in EXPUNGED, 3.17.00.0017, 3.17.00.0019
/// 3 in 4.47.00.0039, 4.84.00.0054, 4.84.69.0037, 4.84.76.7966, 4.84.76.7968, 4.85.07.0009
///
public uint EntryCount;
///
/// Version, always 8 bytes?
///
public string Version;
///
/// Unknown (Build? Formatted as a string)
///
public char[] Build;
///
/// Unknown (0x14h), Variable number of bytes before entry table
///
///
/// 44 bytes in EXPUNGED, 3.17.00.0017, 3.17.00.0019, 4.47.00.0039
/// 112 bytes in 4.84.00.0054, 4.84.69.0037, 4.84.76.7966, 4.84.76.7968, 4.85.07.0009
/// 112 byte range contains a fixed-length string at 0x2C, possibly a product ID?
/// "801400-001" in 4.84.00.0054
/// "594130-001" in 4.84.69.0037
/// "554900-001" in 4.84.76.7966
/// "554900-001" in 4.84.76.7968
/// "548520-001" in 4.85.07.0009
///
public byte[] Unknown14h;
///
/// Entry table
///
public SecuROMAddDEntry[] Entries;
}
}