2025-09-26 13:06:18 -04:00
|
|
|
namespace SabreTools.Data.Models.SecuROM
|
2025-09-26 12:09:34 -04:00
|
|
|
{
|
|
|
|
|
/// <remarks>
|
|
|
|
|
/// Most DFA-protected files seem to also have additional encryption,
|
|
|
|
|
/// possibly SecuROM DFE. Only early RC-encrypted executables can be
|
|
|
|
|
/// parsed beyond the initial header.
|
|
|
|
|
/// </remarks>
|
|
|
|
|
public class DFAFile
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// "SDFA" 0x04 0x00 0x00 0x00
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>8 bytes</remarks>
|
2025-10-30 20:44:16 -04:00
|
|
|
public byte[] Signature { get; set; } = new byte[8];
|
2025-09-26 12:09:34 -04:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Unknown value, possibly a block or header size
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>Only a value of 0x400 has been found</remarks>
|
|
|
|
|
public uint BlockOrHeaderSize { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// All entries in the file
|
|
|
|
|
/// </summary>
|
2025-10-31 13:59:28 -04:00
|
|
|
public DFAEntry[] Entries { get; set; } = [];
|
2025-09-26 12:09:34 -04:00
|
|
|
}
|
2025-10-30 20:44:16 -04:00
|
|
|
}
|