Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Memory Layout
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7129
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 133
Поблагодарили 1171 раз(а) в 729 сообщ.
Сообщение: #6
RE: Memory Layout
The KATANA SDK application:
Код:
Syscalls state: 0x8c000000 - 0x8c000100
Syscalls code: 0x8c000100 - 0x8c004000
Reserved: 0x8c004000 - 0x8c008000 (16Kb)
IP.BIN: 0x8c008000 - 0x8c010000 (32Kb)
- Bootstrap 1: 0x8c008300
- Bootstrap 2: 0x8c00b800
- Stack: 0x8c00e400 - 0x8c00f400 (4Kb, but can be more and at 0x8d000000)
- VBR: 0x8c00f400 - 0x8c010000 (3Kb)
Application: 0x8c010000 - 0x8cxxxxxx

The WinCE SDK application:
Код:
Syscalls state: 0x8c000000 - 0x8c000100
Syscalls code: 0x8c000100 - 0x8c004000
Reserved: 0x8c004000 - 0x8c008000 (16Kb)
IP.BIN: 0x8c008000 - 0x8c010000 (32Kb)
- Bootstrap 1: 0x8c008300
- Bootstrap 2: 0x8c00b800
- Unused: 0x8c00e400 - 0x8c010000
Application: 0x8c010000 - 0x8cxxxxxx
Stack: 0x00xxxxxx (MMU mapped)
VBR: 0x8c0120f0 or 0x8c012110 (depends on the version)

The KallistiOS application:
Код:
Syscalls state: 0x8c000000 - 0x8c000100
Syscalls code: 0x8c000100 - 0x8c004000
Reserved: 0x8c004000 - 0x8c008000 (16Kb)
IP.BIN: 0x8c008000 - 0x8c010000 (32Kb)
- Bootstrap 1: 0x8c008300
- Bootstrap 2: 0x8c00b800
- Unused: 0x8c00e400 - 0x8c010000
Application: 0x8c010000 - 0x8cxxxxxx
Stack: 0x8cxxxxxx
VBR: 0x8cxxxxxx

In IP.BIN, stack and VBR sections cleared to zeros, so the applications setup VBR code by self. But maybe this is not the case everywhere.
All applications use multiple stacks, because it's multithreaded applications. In this description I mean *kernel stack*.

BTW, Visual Concept games uses another VBR address with different entry code, so loader with IRQ handling injection (full loader, not "se") doesn't support it yet.
Also some games that uses MMU for protection, can use different VBR. I think it should be the same, just need more reverse-engineering to add support for IRQ handling injection.

Some games like Shenmue 1/2 or Atomiswave ports write some data to 0x8c004000 memory, so we should place the loaders at high memory.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 29.11.2020 в 16:37, отредактировал пользователь SWAT.)
29.11.2020 13:15
Вебсайт Найти все сообщения Цитировать это сообщение
 Сказали спасибо: MetalliC , toze3 , sundance2 , fafadou
Создать ответ 


Сообщения в этой теме
Memory Layout - sundance2 - 27.11.2020, 23:55
RE: Memory Layout - kof888 - 28.11.2020, 14:42
RE: Memory Layout - sundance2 - 29.11.2020, 06:16
RE: Memory Layout - SWAT - 29.11.2020, 10:32
RE: Memory Layout - MilkeyWilkey - 29.11.2020, 11:07
RE: Memory Layout - SWAT - 29.11.2020 13:15

Переход:


Пользователи просматривают эту тему: 2 Гость(ей)