Автор Тема: [PSX] Ghidra PSX Loader  (Прочитано 4507 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #30 : 05 Январь 2020, 00:45:14 »
DrMefistO, блин столько плюшек, похоже мне всё же придётся обновится до Ghidra v9.1.1  :)

P.S. для dreamcast подобный лоадер не планируется ли?

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1297
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #31 : 05 Январь 2020, 01:37:44 »
P.S. для dreamcast подобный лоадер не планируется ли?
С ней вообще не работал. Процессор дримкастовский поддерживается гидрой? Если да, то можно когда-то будет запилить.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #32 : 05 Январь 2020, 01:45:01 »
Процессор дримкастовский поддерживается гидрой?

да, SuperH4:LE:32

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1297
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #33 : 05 Январь 2020, 15:45:34 »
Принял. Когда-нибудь можно будет заняться. Если есть для Иды, то проще будет портировать, чем с нуля.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #34 : 05 Январь 2020, 16:13:19 »
Если есть для Иды, то проще будет портировать, чем с нуля.
есть что ?
я пользую в IDA sh3.cfg с добавкой адресов регистров чипсета дримкаста, плюс скриптик создающий сегменты для регистров/памятей/итп.

было бы круто нагенерить сигнатур из библиотек дримовских SDK, но там используются не особо распространённые компиляторы - Hitachi C/C++ плюс еще Metrowerks Codewarrior, которые IDA-вский FLAIR не умеет.
я когда-то пытался конвертить библиотеки в другой формат, потом пройтись FLIRT-ом, но емнип ничем хорошим это не закончилось - по итогу сдк-шные функции не детектились...

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1297
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #35 : 05 Январь 2020, 17:15:49 »
Вот я как раз про лоадер, скрипты и т.п.
Всё что есть, отправь плиз в личку, сделаю лоадер, может с сигнами даже придумаю (есть идея).

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #36 : 07 Январь 2020, 11:09:42 »
Вот я как раз про лоадер, скрипты и т.п. Всё что есть, отправь плиз в личку, сделаю лоадер
это всё есть в твоем лоадере дримовских бинарников для IDA ;)

может с сигнами даже придумаю (есть идея).
нууу...
у суперхитачей иммедиаты максимум 8бит, и все 16/32бит константы адресуются относительно PC.
получается что тело (не маленькой) функции обычно состоит из нескольких блоков кода и данных, вперемешку. часто в этих данных содержатся абсолютные указатели (на другие функции и какие-то данные), и хэш всего тела функции будет разный, в зависимости от того куда оно было релоцировано линковщиком.
так что я не уверен, что там вообще можно что-то придумать (если в гидре нет специальных кунштюков для архитектур с подобной "шинковкой" кода и данных).

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1297
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #37 : 07 Январь 2020, 18:05:35 »
это всё есть в твоем лоадере дримовских бинарников для IDA ;)
Если ты его больше не менял, то окай.

Добавлено позже:
MetalliC, а можно бинарь для теста?
« Последнее редактирование: 07 Январь 2020, 19:29:44 от DrMefistO »

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #38 : 08 Январь 2020, 10:28:16 »
DrMefistO,
railroad - ядро wince + exe
D2 - бинарь katana sdk
alone - полный дамп ОЗУ, katana sdk

ядро wince грузится в память начиная с офсета 800h, так заложено в биосе, первые два килобайта просто выкидывай
есть ещё игры на wince у которых exe совмещён с ядром

код начинает исполнятся из ac010000h включается кеш и исполнение переходит в 8cxxxxxxh, для игр с mmu в 0cxxxxxxh
« Последнее редактирование: 08 Январь 2020, 10:38:06 от megavolt85 »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1297
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #39 : 08 Январь 2020, 18:39:25 »
код начинает исполнятся из ac010000h включается кеш и исполнение переходит в 8cxxxxxxh, для игр с mmu в 0cxxxxxxh
Есть ли возможность автоматического определения базы?

Оффлайн brill

  • Пользователь
  • Сообщений: 2196
  • Пол: Мужской
  • \/\/\/\/\/\/
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #40 : 08 Январь 2020, 19:00:15 »
Может отдельную тему для дримкаста запилите?
Заходишь почитать за пс1, а тут дримкаст в полный рост обсуждается.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1297
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #41 : 11 Январь 2020, 16:57:33 »
Выпустил новую версию:
 - Поправил баг при загрузке Tony Hawk бинарей
 - Поправил баг с not started transaction.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1297
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #42 : 28 Январь 2020, 00:58:58 »
Новая версия:
 - Пофикшен баг применения .fake объектов из SYM-файлов (баг всплыл в проекте MGS_REVERSING)