Какво е 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 Index. |
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