Що таке файл XBE?
Файл із розширенням .xbe є виконуваною програмою з диска відеоігри Xbox. Файли XBE є основними файлами, які виконуються в системі Xbox і зазвичай не відкриваються на комп’ютері, але їх можна відкрити на ПК за допомогою програми емуляції Xbox. Ці файли зазвичай створюють розробники ігор, а потім підписують Microsoft. Структура файлів подібна до файлів Windows PE, але застосовано деякі важливі зміни відповідно до налаштувань XBox, щоб зробити його придатним для запуску на XBox.
Формат файлу XBE
Файл XBE складається із заголовка зображення, набору заголовків розділів, сертифіката, даних локального зберігання потоку, набору версій бібліотеки, растрового зображення Microsoft і розділів, які містять код і ресурси.
Заголовок зображення
Заголовок зображення містить інформацію, яка пояснює, де у файлі розташовані інші компоненти виконуваного файлу, а також як слід обробляти та завантажувати виконуваний файл.
Таблиця TLS
Таблиця TLS містить усю інформацію, необхідну XBE для правильного налаштування локального зберігання потоків. В основному він унікальний для каталогу TLS, який міститься у файлах PE32, і його можна безпосередньо скопіювати звідти. Ця таблиця може бути пропущена, якщо файл XBE не використовує локальне сховище потоку, а відповідне поле в заголовку зображення встановлено на нуль.
Зсув | Розмір | Ім’я | Опис |
---|---|---|---|
0x0000 | 0x0004 | Необроблені дані Початок | Абсолютна (тобто не RVA) адреса початку даних змінної TLS в образі програми. |
0x0004 | 0x0004 | Кінець необроблених даних | Абсолютна (тобто не RVA) адреса кінця даних змінної TLS у зображенні програми. |
0x0008 | 0x0004 | Адреса індексу | Абсолютна (тобто не RVA) адреса змінної індексу TLS. |
0x000C | 0x0004 | Адреса зворотних дзвінків | Абсолютна (тобто не RVA) адреса таблиці функцій зворотного виклику TLS із нульовим закінченням. |
0x0010 | 0x0004 | Розмір нульового заповнення | Кількість байтів після необроблених даних, яка має бути встановлена на нуль у пам’яті. |
0x0014 | 0x0004 | Характеристика | Описує вирівнювання. |
Сертифікат
Сертифікат є обов’язковим для кожного виконуваного файлу Xbox, який містить інформацію про назви:
- Час і дата створення сертифіката
- ID заголовка
- Назва заголовка
- Ідентифікатори альтернативних назв
- Дозволені типи носіїв, з яких можна запускати виконуваний файл (HD, DVD, CD тощо)
- Регіон гри
- Рейтинги ігор
- Номер диска
- Версія
- Необроблені дані ключа LAN, які використовуються для System Link
- Необроблені дані ключа підпису (використовуються для підпису збережених ігор)
- Альтернативні ключі підпису
- Оригінальний розмір сертифіката
- Назва онлайн-сервісу (немає в ранніх виконуваних файлах)
- Прапори безпеки під час виконання (немає в ранніх виконуваних файлах)
Дозволені типи носіїв
Типи носіїв, з яких дозволено запускати виконуваний файл. Відомі такі значення:
Тип носія | Значення |
---|---|
ЖОРСТКИЙ_ДИСК | 0x00000001 |
DVD_X2 | 0x00000002 |
DVD_CD | 0x00000004 |
CD | 0x00000008 |
DVD_5_RO | 0x00000010 |
DVD_9_RO | 0x00000020 |
DVD_5_RW | 0x00000040 |
DVD_9_RW | 0x00000080 |
DONGLE | 0x00000100 |
МЕДІА_БОРД | 0x00000200 |
НЕЗАХИЩЕНИЙ_ЖОРСТКИЙ_ДИСК | 0x40000000 |
NONSECURE_MODE | 0x80000000 |
МЕДІА_МАСКА | 0x00FFFFFF |
Розділи
Розділи виражаються заголовками розділів. Заголовки розділів починаються відразу після сертифіката та містять інформацію про те, де у файлі існують фактичні розділи. У виконуваному файлі Xbox завжди присутні принаймні два розділи:
.текст
.rdata