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 SecuROMAddDEntry { /// /// Physical offset of the embedded file /// public uint PhysicalOffset; /// /// Length of the embedded file /// /// The last entry seems to be 4 bytes short in 4.47.00.0039 public uint Length; /// /// Unknown (0x08) /// /// 3149224 [3496, 48] in the sample (all 3 entries) in 4.47.00.0039 public uint Unknown08h; /// /// Unknown (0x0C) /// /// 3147176 [1448, 48] in the sample (all 3 entries) in 4.47.00.0039 public uint Unknown0Ch; /// /// Unknown (0x10) /// /// 3149224 [3496, 48] in the sample (all 3 entries) in 4.47.00.0039 public uint Unknown10h; /// /// Unknown (0x14) /// /// 1245044 [65396, 18] in the sample (all 3 entries) in 4.47.00.0039 public uint Unknown14h; /// /// Unknown (0x18) /// /// 4214725 [20421, 64] in the sample (all 3 entries) in 4.47.00.0039 public uint Unknown18h; /// /// Unknown (0x1C) /// /// 2 [2, 0] in the sample (all 3 entries) in 4.47.00.0039 public uint Unknown1Ch; /// /// Entry file name (null-terminated) /// /// 12 bytes long in the sample (all 3 entries) in 4.47.00.0039 public string FileName; /// /// Unknown (0x2C) /// /// /// Offset based on consistent-sized filenames (12 bytes) in 4.47.00.0039 /// 132 [132, 0] in the sample (all 3 entries) in 4.47.00.0039 /// public uint Unknown2Ch; } }