2025-09-26 13:06:18 -04:00
|
|
|
namespace SabreTools.Data.Models.AdvancedInstaller
|
2025-09-26 12:09:34 -04:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Represents the structure at the end of a Caphyon
|
|
|
|
|
/// Advanced Installer SFX file. These SFX files store
|
|
|
|
|
/// all files uncompressed sequentially in the overlay
|
|
|
|
|
/// of an executable.
|
2025-10-30 20:54:32 -04:00
|
|
|
///
|
2025-09-26 12:09:34 -04:00
|
|
|
/// The design is similar to the end of central directory
|
|
|
|
|
/// in a PKZIP file. The footer needs to be read before
|
|
|
|
|
/// the entry table as both the pointer to the start of
|
|
|
|
|
/// the table as well as the entry count are included there.
|
2025-10-30 20:54:32 -04:00
|
|
|
///
|
2025-09-26 12:09:34 -04:00
|
|
|
/// The layout of this is derived from the layout in the
|
|
|
|
|
/// physical file.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class SFX
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set of file entries
|
|
|
|
|
/// </summary>
|
2025-10-31 13:59:28 -04:00
|
|
|
public FileEntry[] Entries { get; set; } = [];
|
2025-09-26 12:09:34 -04:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Footer representing the central directory
|
|
|
|
|
/// </summary>
|
2025-10-31 13:59:28 -04:00
|
|
|
public Footer Footer { get; set; } = new();
|
2025-09-26 12:09:34 -04:00
|
|
|
}
|
|
|
|
|
}
|