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

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

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« : 23 Ноябрь 2019, 19:42:41 »
Привет всем,

Представляю вашему вниманию загрузчик исполняемых файлов первой плойки для GHIDRA. Возможности:
  • Создаёт порты и секции. В случае PsyQ умеет находить main() и секции компилятора: .rdata, .text, .data, .sdata, .sbss, .bss
  • Ищет сигнатуры библиотечных функций для PsyQ всех доступных версий
  • Поддерживает SYM файлы
  • Умеет работать с LIB и OBJ файлами PsyQ SDK
  • Умеет подгружать данные для оверлей-блоков
  • Автоматически применяет и создаёт типы данных для библиотечных функций

Релизы: https://github.com/lab313ru/ghidra_psx_ldr/releases
Исходники: https://github.com/lab313ru/ghidra_psx_ldr

215468-0216824-1
« Последнее редактирование: 03 Январь 2020, 23:01:53 от DrMefistO »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5011
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #1 : 23 Ноябрь 2019, 20:36:16 »
Старая тема не редактируется? [PSX] GHIDRA Playstation Loader

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #2 : 23 Ноябрь 2019, 21:02:25 »
А, сорян) я и забыл о том, что её уже создавал. Можно удалить старую? А то там срач в коментах

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #3 : 24 Ноябрь 2019, 11:08:15 »
Поддержку SYM не пробовал реализовать как в TDR? Правда там просто декомпилирование с достройкой кода

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #4 : 24 Ноябрь 2019, 11:34:19 »
TDR? А исходники есть?

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #5 : 24 Ноябрь 2019, 11:48:46 »
TDR? А исходники есть?
Автор темы вроде как брал некоторую инфу из твоего лоадера.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #6 : 24 Ноябрь 2019, 12:27:34 »
Выглядит круто. Только, как я понял, PsyQ символы он не поддерживает? (Ещё не смотрел исходники, но нужно глянуть).

Да и мой загрузчик ушёл далеко вперёд, может больше, чем было. Как раз планирую добавить поддержку SYM.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Re: [PSX] Ghidra PSX Loader
« Ответ #7 : 24 Ноябрь 2019, 14:47:34 »
Выглядит круто. Только, как я понял, PsyQ символы он не поддерживает? (Ещё не смотрел исходники, но нужно глянуть).

Да и мой загрузчик ушёл далеко вперёд, может больше, чем было. Как раз планирую добавить поддержку SYM.
Вроде как должен был (не обратил внимания)

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Re: [PSX] Ghidra PSX Loader
« Ответ #8 : 24 Ноябрь 2019, 14:55:32 »
Насколько я понял, он только по SYM-файлу всё делает. Ну и плюс стандартный стаб для PSYQ детектит, сигнатуры - нет..

Добавлено позже:
Забавно, но его .elf-конвертер не умеет детектить секции PSYQ.


Добавлено позже:
Version v1.8: Added Psyq v4.5 signatures, updated PsyQ v4.7, small fixes.
« Последнее редактирование: 24 Ноябрь 2019, 18:35:26 от DrMefistO »

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Re: [PSX] Ghidra PSX Loader
« Ответ #9 : 24 Ноябрь 2019, 21:19:34 »
Насколько я понял, он только по SYM-файлу всё делает. Ну и плюс стандартный стаб для PSYQ детектит, сигнатуры - нет..

Добавлено позже:
Забавно, но его .elf-конвертер не умеет детектить секции PSYQ.


Добавлено позже:
Version v1.8: Added Psyq v4.5 signatures, updated PsyQ v4.7, small fixes.
Приятно видеть что он развивается  :)

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9381
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #10 : 24 Ноябрь 2019, 22:35:54 »
а этот лодырь подхватит обычный бинарник, не ELF ?
всё собираюсь мыслями поковырять бинарники одной железки на MIPS VR4300, но хз пользовать по-старинке иду или же попробовать гидру...

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #11 : 25 Ноябрь 2019, 00:27:53 »
Этот лоадер для PS-EXE, и в будущем CPE бинарей, но не ELF.. Если твой бинарь не такого формата, то не подтянет.

А вообще, если нужна декомпиляция мипса - это про гидру. Лоадер пишется на изи, если понадобится.

Оффлайн brill

  • Пользователь
  • Сообщений: 2196
  • Пол: Мужской
  • \/\/\/\/\/\/
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #12 : 25 Ноябрь 2019, 07:32:00 »
Оперативным был фикс. Спасибо.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #13 : 30 Ноябрь 2019, 01:14:37 »
Выпустил новую версию:
  • Поддержка SYM-файлов: функции (аргументы и возвращаемое значение), глобальные переменные, enum-ы, typdef-ы
  • Ручной и автоматический выбор региона RAM: по заголовку, либо из вариантов 0x00xxxxxx, 0xA0xxxxxx, 0x80xxxxxx

Оффлайн worm

  • Пользователь
  • Сообщений: 1077
  • Пол: Мужской
  • Злой тролляка
    • Просмотр профиля
Re: [PSX] Ghidra PSX Loader
« Ответ #14 : 30 Ноябрь 2019, 04:49:10 »
Хорошо, очень хорошо) вот бы все это дело применить ещё в хакинге - было бы идеально)

А то там срач в коментах
Не переживай за сию утрату - я тебе его и тут организую :lol:

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #15 : 30 Ноябрь 2019, 13:15:29 »
Выпустил новую версию:
  • Поддержка SYM-файлов: функции (аргументы и возвращаемое значение), глобальные переменные, enum-ы, typdef-ы
  • Ручной и автоматический выбор региона RAM: по заголовку, либо из вариантов 0x00xxxxxx, 0xA0xxxxxx, 0x80xxxxxx
Спасибо, щас глянем как это выглядит)

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #16 : 30 Ноябрь 2019, 13:37:44 »
Подскажите ещё игры, где есть SYM?

Добавлено позже:
Ответ найден: https://www.retroreversing.com/ps1-debug-symbols
« Последнее редактирование: 30 Ноябрь 2019, 13:46:21 от DrMefistO »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #17 : 30 Ноябрь 2019, 19:17:20 »
Вернул FLAIR (PAT) сигнатуры - больше рейт успешности определения функции.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #18 : 11 Декабрь 2019, 13:36:30 »
Выпустил версию v2.2: теперь поддерживаются оверлеи из SYM-файлов, применяется больше имён и типов.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #19 : 11 Декабрь 2019, 23:35:04 »
Зарелизил v2.3: теперь можно подгружать данные для оверлей блоков. (Для применения в декомпиляторе, придётся выбирать нужный блок для каждой вызываемой ссылки, или ссылки на данные. Гидра сама не может знать, к какому из оверлеев идёт обращение.)

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #20 : 12 Декабрь 2019, 00:00:46 »
 :thumbup: Тестил плагин вполне неплохо справляется, в плюсах то что не нужно кучу батников настраивать как в TDR, и на лету можно смотреть где есть что. Это не может не радовать.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #21 : 12 Декабрь 2019, 10:01:18 »
:thumbup: Тестил плагин вполне неплохо справляется, в плюсах то что не нужно кучу батников настраивать как в TDR, и на лету можно смотреть где есть что. Это не может не радовать.
Спасибо!:)

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #22 : 20 Декабрь 2019, 11:48:12 »
Выложил видео, поясняющее, как работать с Overlayed памятью: https://youtu.be/DuQQfjTkkQc

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #23 : 20 Декабрь 2019, 13:51:51 »
Выложил видео, поясняющее, как работать с Overlayed памятью: https://youtu.be/DuQQfjTkkQc
Спасибо тебе вообще за данную тулзу, очень помогает Red Asphalt разбирать, так как функции для гонки там отдельным оверлеем идут.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #24 : 20 Декабрь 2019, 14:37:46 »
Спасибо тебе вообще за данную тулзу, очень помогает Red Asphalt разбирать, так как функции для гонки там отдельным оверлеем идут.
Если есть предложения, замечания - предлагай.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #25 : 21 Декабрь 2019, 21:50:20 »
Добавил Overlay Manager, обновил до Ghidra v9.1.1.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #26 : 23 Декабрь 2019, 17:13:33 »
Если есть предложения, замечания - предлагай.
Как появятся - обязательно. Лично меня пока что все устраивает.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #27 : 03 Январь 2020, 23:03:05 »
Добавил автоматическое применение и создание типов данных и аргументов функций для библиотечных функций PsyQ.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #28 : 04 Январь 2020, 18:44:52 »
Добавил автоматическое применение и создание типов данных и аргументов функций для библиотечных функций PsyQ.
Вот этого точно не хватало для удобства, спасибо большое что не прекращаешь развивать данный софт

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[PSX] Ghidra PSX Loader
« Ответ #29 : 04 Январь 2020, 23:58:54 »
Новая версия:
- Corrected PsyQ version detection;
- Fixed PsyQ data and function types applier;
- Added PsyQ v4.2



Добавлено позже:
Ещё исправления и новая версия:
- Fixed new overlay creation (from bin).
- Fixed stupid bug with data type archives tree.
- Added automatical main() goto.