.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. |
0x000С | 0x0004 | Адрес обратных вызовов | Абсолютный (т. е. не RVA) адрес таблицы функций обратного вызова TLS с завершающим нулем. |
0x0010 | 0x0004 | Размер нулевой заливки | Количество байтов, следующих за необработанными данными, которое должно быть установлено равным нулю в памяти. |
0x0014 | 0x0004 | Характеристики | Описывает выравнивание. |
Сертификат
Сертификат a обязателен для каждого исполняемого файла Xbox, который содержит информацию о названиях:
- Время и дата создания сертификата
- Идентификатор названия
- название титула
- Альтернативные идентификаторы заголовков
- Разрешенные типы носителей, с которых может быть запущен исполняемый файл (HD, DVD, CD и т. д.)
- Игровой регион
- Рейтинги игр
- Номер диска
- Версия
- Необработанные данные ключа LAN, используемые для System Link
- Необработанные данные ключа подписи (используется для подписи сохраненных игр)
- Альтернативные ключи подписи
- Оригинальный размер сертификата
- Имя онлайн-сервиса (отсутствует в ранних исполняемых файлах)
- Флаги безопасности во время выполнения (отсутствуют в ранних исполняемых файлах)
Разрешенные типы носителей
Типы носителей, с которых может запускаться исполняемый файл. Известны следующие значения:
Тип носителя | Значение |
---|---|
ЖЕСТКИЙ ДИСК | 0x00000001 |
DVD_X2 | 0x00000002 |
DVD_CD | 0x00000004 |
компакт-диск | 0x00000008 |
DVD_5_RO | 0x00000010 |
DVD_9_RO | 0x00000020 |
DVD_5_RW | 0x00000040 |
DVD_9_RW | 0x00000080 |
КЛЮЧ | 0x00000100 |
MEDIA_BOARD | 0x00000200 |
НЕЗАЩИЩЕННЫЙ_ЖЕСТКИЙ ДИСК | 0x40000000 |
НЕБЕЗОПАСНЫЙ_РЕЖИМ | 0x80000000 |
МЕДИА_МАСКА | 0x00FFFFFF |
Разделы
Разделы выражаются заголовками разделов. Заголовки разделов начинаются сразу после сертификата и содержат информацию о том, где в файле находятся фактические разделы. В исполняемом файле Xbox всегда присутствуют как минимум два раздела:
.текст
.rdata