Формат Sims3Pack и его декодирование: Часть теоретическая

Формат Sims3Pack и его декодирование: Часть теоретическая
Автор: AnriRS

Статьи по теме

Файл Sims3Pack хранит файлы и состоит из трех частей:

  1. заголовка файла;
  2. манифеста XML;
  3. секции данных;

Заголовок данных

Заголовок данных имеет размер 17 байт такого вида:

component_library_1

Назначение важных полей описано в следующем разделе.

Манифест XML

Манифест в кодировке UTF-8, описывает общие данные и каждый из содержащихся в пакете файлов в виде

<?xml version="1.0" encoding="utf-8"?>
<Sims3Package Type="тип_пакета" SubType="0x00000000">
...
<DisplayName>оригинальное_(английское)_название_пакета</DisplayName>
<Description>оригинальное_(английское)_описание_пакета</Description>
<Dependencies />
<LocalizedNames>
...
<LocalizedName Language="ru-RU"><![CDATA[русское_название_пакета]]>
</LocalizedName>
...
</LocalizedNames>
<LocalizedDescriptions>
...
<LocalizedName Language="ru-RU"><![CDATA[русское_описание_пакета]]>
</LocalizedName>
...
</LocalizedDescriptions>
<PackagedFile>
<Name>имя_файла</Name>
<Length>длина_файла</Length>
<Offset>относительное_смещение_от_начала_секции_данных</Offset>
<Crc>контрольная_сумма</Crc>
<Guid>GUID</Guid>
<ContentType>тип_данных</ContentType>
...
</PackagedFile>
...
</Sims3Package>

В общем, там много всего, нам столько в общем случае не надо. Манифест, по сути, является индексной таблицей файла.

Секция данных

Содержит данные, главная особенность, что они могут идти не всплошную, абсолютное смещение блока от начала файла вычисляется как сумма от данных из XML, относительного смещения секции данных из заголовка файла и длины заголовка файла (тех самых 17 байт)

The Sims 3

The Sims 2

The Sims

MySims

Sims-игры

Даты релизов

the_sims_3_store_saleshymn_bunnersimovod_3simovod2Журнал «Симовод»Prosims - магазин сувениров