[ Новые сообщения · Участники · Правила форума · Поиск · Подписки ]
  • Страница 1 из 1
  • 1
Модератор форума: archicharmer  
PSX-Core.ru - Программное сообщество PlayStation » Общий форум по PlayStation 3 » Об играх PlayStation 3 » The Legend of Korra
The Legend of Korra
archicharmer Дата: Вс, 27 Июн 2021, 11:19 | Сообщение #1
Не проведешь
Сообщений: 1586
Награды: 2  +
Замечания:  ±
Стартовал эту тему ни сколько для того, чтобы пообсуждать игровой процесс и поделиться впечатлениями об этой игре, сколько поведать о том, как пересобрать эту игру, в частности с таким GameID как NPEB02082 в iso. Да и даже этот процесс детально расписывать не распишу)
Когда эта игра пересобрана в iso, она просто-напросто не запускается. Но нашёлся человек, который додумался в чём загвоздка, и смог её исправить. Для этого нужно:
- декриптовать EBOOT.BIN в EBOOT.ELF
- открыть декриптованный EBOOT.ELF в HEX-редакторе
- перейти на оффсет 41D7CC
- исправить тамошние значения 2C030002 на 2C030001
ну и далее по стандарту - зашифровать EBOOT.ELF в EBOOT.BIN годный для iso т.е. как NON-DRM и т.п. Для использования такого iso на приставках с ODE, этот iso нужно собирать не прогой genps3iso (т.к. это как раз тот случай, когда у этой проги проявляется баг с секторами, вот как раз на данных этой игры), а прогой makeps3iso (этот баг пофиксен, но без прогонки через regps3iso подходит только для CFW), где полученный iso прогнать через прогу regps3iso. Смысл этой проги был получен путём сравнения образов выходящих после genps3iso собираемый по .ird и makeps3iso. Что она делает - перемещает SELF и LIC.DAT в нужный сектор. По словам автора, для полноценной сборки iso для аппаратов ODE regps3iso подойдёт во всех случаях, так что эту связку makeps3iso+regps3iso можно использовать во всех случаях сборки iso для последующего запуска на аппаратах с ODE.
Единственное что странно, при запуске игры с собранного таким путём iso, 3 из 4 первых вступительных видео (там с никелодионом и т.п.) проигрываются с некими рывками и их нельзя пропустить. Если образ собирать прогой makeps3iso и НЕ прогонять через regps3iso - такой iso ODE не запустит, но на CFW запустится, и такой проблемы наблюдается, и видео проигрываются обыкновенно безо всяких рывков и пропускаются нажатием кнопки Start.

И даже не ради всего этого эта тема создана. Как-будто кому-то есть дело как там чего работает-неработает у владельцев приставок с ODE...

Интересен процесс КАК до этого додумались. Вот для того, чтобы более-менее, но, всё же, косвенно, пройтись по стопам того человека, кто до этого додумался, следующее и написано.
Понадобится следующее:
- установленная JAVA платформа с бинарниками JDK
- ghidra_9.2.4_PUBLIC_20210427.zip - "спасибо" российской политике, чтобы это скачать россиянам нужен VPN
- набор скриптов для дизассемблирования бинарников PS3 для проги ghidra
Шаги для винды. После того, как вы убедились, что у Вас установлена JAVA платформа, а также набор бинарников JDK для этой платформы, скачайте ghidra_9.2.4_PUBLIC_20210427.zip , распакуйте (папку ghidra_9.2.4_PUBLIC) в корень жёсткого диска. Прога запускается батником ghidraRun.bat - пробуйте запустить. Если запустилось, пока что закрываем. А нет - выясняем почему. Сами)
Скачанный набор скриптов (папку Ps3GhidraScripts-master) сперва распакуйте в корень жёсткого диска. Запустить из той папки батник gradlew.bat . Желательно через cmd для наглядности. Что-то куда-то установится.
Теперь, .zip-архив от скачанного набора скриптов помещаем в ghidra_9.2.4_PUBLIC\Extensions\Ghidra\

Редактируем файл ghidra_9.2.4_PUBLIC\ghidra\Processors\PowerPC\data\languages\ppc_64_32.cspec , например (да и желательно), через NotePad++ . Ниже
Код
<register name="r1"/>

добавляем
Код
<register name="r2"/>

и сохраняем.

Запускаем прогу ghidra. Те скрипты нужно установить как extensions, вот и жмём File->Install Extensions... Ставим галочку на PS3GhidraScripts и ОК. Если его здесь не будет - жмём плюсик и ищем этот .zip .

Создаём новый проект. Затем делаем File->Import File... и выбираем декриптованный EBOOT.ELF . В Language выбираем тот, у которого Variant PowerISA-Altivec. ОК, увидим, что Language выбрался PowerPC:BE:64:A2ALT:default - это нормально. Открываем EBOOT.ELF - правой кнопкой мыши на EBOOT.ELF->Open With->CodeBrowser. При запуске будут предлагать сделать анализ файла - всегда отвечать NO, т.к. будем использовать для этой цели, для бинарника PS3, скрипт.
Как файл прогрузился, жмём Window->Script Manager . отмечаем галочку на AnalyzePs3Binary.java, убеждаемся, что (пока) не стоит галочка на DefinePs3Syscalls.java, и жмём "значок белой стрелочки в зелёном кружке". Как скрипт прогрузится, делаем то же самое со скриптом DefinePs3Syscalls.java, снимая при этом галочку со скрипта AnalyzePs3Binary.java . Можно заниматься отладкой.

Как же искалось нужное, чего нехватало для случая, когда игра не работает в iso виде? -
Search->Program Text...
искать cellGameBootCheck в "Listing Display" среди блоков "Loaded Blocks" и среди полей "Comments" и "Instruction Operands". Поищет-поищет, да придёт в секцию 0042D75C . Обратите внимание, что здешние секции это не есть оффсеты в HEX-представлении (где оно будет указано далее). Рассмотрим C-представление всего найденного блока:
Код
void FUN_0042d728(undefined8 param_1,int param_2)

{
  int local_130;
  uint local_12c;
  undefined4 local_128 [4];
  undefined auStack280 [128];
  undefined auStack152 [128];
  
  cellGameBootCheck(&local_130,&local_12c,local_128,auStack280);
  cellGameContentPermit(auStack280,auStack152);
  DAT_00a62568 = local_128[0];
  if (param_2 == 0) {
    FUN_0065a350(&DAT_00a62258,param_1);
  }
  else {
    FUN_0066df08(&DAT_00a62258,0x104,"%s/data/",auStack152);
    if (local_130 == 2) {
      FUN_0066df08(&DAT_00a6235c,0x104,&DAT_007e11a4,&DAT_00a62258);
      DAT_00a62564 = 1;
    }
    else {
      if ((local_12c & 1) != 0) {
        cellGamePatchCheck(local_128,0);
        cellGameContentPermit(auStack280,auStack152);
        FUN_0066df08(&DAT_00a62460,0x104,"%s/data/",auStack152);
      }
    }
  }
  return;
}

Первое значение у функции cellGameBootCheck, согласно этим дисассемблированным данным, берётся с переменной local_130 . Здесь ниже этой функции мы наблюдаем проверку
if (local_130 == 2)
Какие значения могут быть для cellGameBootCheck ? - давайте взглянем на файл sdk_defines.h из PS3SDK - со строчки 591:
Код
#define CELL_GAME_GAMETYPE_SYS      0
#define CELL_GAME_GAMETYPE_DISC      1
#define CELL_GAME_GAMETYPE_HDD      2
#define CELL_GAME_GAMETYPE_GAMEDATA   3
#define CELL_GAME_GAMETYPE_HOME      4

Делается вывод, что ту проверку нужно поменять на следующую:
if (local_130 == 1)
т.е. если игра у нас дискового типа ака CELL_GAME_GAMETYPE_DISC, BD если хотите, то тот путь до файлов, который до селе не присваивался, теперь, с правленной проверкой, будет присваиваться.

Хорошо, что нужно сделать мы выяснили. Как же теперь привязать найденное к оффсетам, что мы будем править в HEX-представлении файла EBOOT.ELF? - выделим (local_130 == 2) - слева в таблице выделится строчка с 0042d7cc . Наведите на это значение 0042d7cc, вы увидите подробности, в которых сказано
Byte Source Offset File: EBOOT.ELF +41d7cch
из чего делаем вывод, что оно находится в HEX-представлении в оффсете 41D7CC . Правее значения 0042d7cc отображены значения в этом оффсете. В данном случае 2c 03 00 02 . А вот как здесь исправить так, чтобы стало "if (local_130 == 1)" я не догадался.

HEX-значение строчки в таблице отличается от HEX-значения в самом файле на 10000. Имейте это в виду, если будете искать соответствующую строчку по HEX-значению файла. Т.е., как пример, если бы вы хотели посмотреть что меняется в файле EBOOT.ELF в значении 41d7cc, то нужно было бы искать Navigation->Go To... 42d7cc

Если есть что добавить, отписывайтесь.


PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2
PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE
PS2 SCPH-77008a SLIM чиповка; припаян Y Pb Pr - компонент
PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
 

archicharmer Дата: Сб, 10 Июл 2021, 13:41 | Сообщение #2
Не проведешь
Сообщений: 1586
Награды: 2  +
Замечания:  ±
Улучшенный makeps3iso_v2.2 от моддера Zar. Релиз с поддержкой образов для ODE. С ним эта игра пересобирается уже корректно, вступительные ролики при запуске игры проигрываются без заиканий и их можно пропустить.

PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2
PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE
PS2 SCPH-77008a SLIM чиповка; припаян Y Pb Pr - компонент
PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
 
balts89 Дата: Пт, 25 Фев 2022, 20:28 | Сообщение #3
Мы сами не местные
Сообщений: 1
Награды: 0  +
Замечания:  ±
ёшки матрёшки...
проще вариантов не существует же?
 
archicharmer Дата: Пт, 25 Фев 2022, 21:08 | Сообщение #4
Не проведешь
Сообщений: 1586
Награды: 2  +
Замечания:  ±
Проще только скачать уже готовый)
А так здесь не сложнее, чем пересобрать любую другую NPDRM не-C00 игру в ISO с переподпиской .edat-ключей...
Из статьи главное это то, что в декриптованном EBOOT.ELF'е в оффсете 41D7CC нужно править значение  2c 03 00 02 на  2c 03 00 01 . Ну а затем энкриптовать EBOOT.ELF в годный для ISO EBOOT.BIN и т.д. Подготовленные файлы собирать в образ именно той правленной прогой, указанной здесь в статье.
---------------------------------

Заметка по правкам указанным тут, что позволяет использовать декриптованные архивы data000.cpk и data001.cpk из файлов data000.edat и data001.edat соответственно, вместо того, чтобы использовать энкриптованные архивы data000.edat и data001.edat, которым, очевидно, нужна "валидность", т.е., в оригинале, соответствующий файл.rif купленной игры.

Как здесь устроено. В этой игре есть проверка на то что будут из себя представлять файлы архивов игры - просто архивы или они в энкриптованном виде. В том месте, где в C-представлении и идёт проверка на это (if ... == 0 то .cpk -> else .edat), указаны блоки, которые нужно проверять. Что делает патч - меняет в тех блоках (касательно проверок data000 и data001) единицу на ноль. Но в тех блоках много значений, и в C-представлении ничего очевидного по ним нет... Как Zar догадался до того, что именно первое ответственно за показатель энкриптованности остаётся загадкой...
---------------------------------

Заметка по патчам оффсетов игры Extreme Exorcism, указанные тут.
Для оффсетов CEE6BC и CEE72C они приводят функции CellSslEnd и CellSslInit соответственно к следующему виду:
Код
undefined8 CellSslXXX(void)
{
return 0;
}

- быть может именно приведение этих функций к данному виду "лечит" такой запуск игры, когда при запуске чёрный экран без всего и не возвращает в XMB (но при этом могут быть слышны какие-нибудь звуки из игры).
Для оффсетов FFDE0D и FFDE35, похоже, что они лишь меняют sdk_version. Быть может это незначительно, и эти значения меняются автоматически при переэнкриптовке EBOOT.BIN'а...

На что влияют изменения для оффсетов 3588FB и 358B87 я разобраться не смог, смотря на представление всего в ghidra.


PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2
PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE
PS2 SCPH-77008a SLIM чиповка; припаян Y Pb Pr - компонент
PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
 
PSX-Core.ru - Программное сообщество PlayStation » Общий форум по PlayStation 3 » Об играх PlayStation 3 » The Legend of Korra
  • Страница 1 из 1
  • 1
Поиск:

Новости сайта
24 Апр 2024

20 Апр 2024

11 Апр 2024

03 Апр 2024

02 Апр 2024

21 Мар 2024

16 Мар 2024

13 Мар 2024

13 Мар 2024

29 Фев 2024

28 Фев 2024

27 Фев 2024

04 Фев 2024

27 Янв 2024

25 Янв 2024

08 Янв 2024

15 Дек 2023

06 Дек 2023

06 Дек 2023

06 Дек 2023

08 Ноя 2023

26 Окт 2023

22 Сен 2023

19 Сен 2023

13 Сен 2023

13 Сен 2023

10 Сен 2023

10 Сен 2023

08 Сен 2023

10 Авг 2023

10 Авг 2023

07 Июн 2023

04 Июн 2023

15 Май 2023

25 Апр 2023

19 Апр 2023

01 Апр 2023

20 Мар 2023

14 Мар 2023

14 Мар 2023

11 Мар 2023

08 Мар 2023

08 Мар 2023

08 Мар 2023

08 Мар 2023

06 Мар 2023

06 Мар 2023

04 Мар 2023

28 Фев 2023

01 Фев 2023

Новое на форуме
Приложения для PlayStation 2
[karenjan99 в 19:20|26 Апр 2024] 
 
Общая дискуссия по PlayStation 2
[karenjan99 в 20:46|25 Апр 2024] 
 
Прошивки и программы для PlayStation Vita
[pvc1 в 07:48|25 Апр 2024] 
 
Железные вопросы PlayStation 2
[xAdamx в 19:29|24 Апр 2024] 
 
Общая дискуссия по PlayStation 5
[pvc1 в 14:03|24 Апр 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 07:47|24 Апр 2024] 
 
Общая дискуссия по PlayStation 2
[karenjan99 в 20:21|22 Апр 2024] 
 
Приложения для PlayStation 4
[pvc1 в 10:25|22 Апр 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 21:20|20 Апр 2024] 
 
ПК софт для PlayStation 5
[pvc1 в 20:56|20 Апр 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 13:02|20 Апр 2024] 
 
Прошивки и программы для PlayStation Vita
[pvc1 в 12:51|20 Апр 2024] 
 
Программы и Приложения для PlayStation Portable
[pvc1 в 09:24|19 Апр 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 20:33|16 Апр 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 10:48|14 Апр 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 10:34|14 Апр 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 09:37|13 Апр 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 23:05|10 Апр 2024] 
 
Общая дискуссия по PlayStation 1
[pvc1 в 13:19|10 Апр 2024] 
 
Приложения для PlayStation 5
[pvc1 в 07:28|06 Апр 2024] 
 
Об играх PlayStation 2
[РУС в 23:06|04 Апр 2024] 
 
Общая дискуссия по PS Portal
[pvc1 в 06:57|03 Апр 2024] 
 
Общая дискуссия по PS Portal
[pvc1 в 06:45|03 Апр 2024] 
 
Программы и Приложения для PlayStation Portable
[pvc1 в 06:31|02 Апр 2024] 
 
Эмуляторы для PlayStation Vita
[pvc1 в 06:27|02 Апр 2024] 
 
Эмуляторы для PlayStation 3
[pvc1 в 06:26|02 Апр 2024] 
 
Общая дискуссия по PlayStation 5
[pvc1 в 20:26|27 Мар 2024] 
 
Мобильные приложения
[pvc1 в 08:15|26 Мар 2024] 
 
Эмуляторы для PlayStation Vita
[pvc1 в 19:05|21 Мар 2024] 
 
ПК программы для PlayStation 3
[pvc1 в 19:31|20 Мар 2024] 
 
Прошивки и приложения для PlayStation 3
[karenjan99 в 17:03|20 Мар 2024] 
 
Об играх PlayStation 2
[Adanjanuzai в 11:52|18 Мар 2024] 
 
Общая дискуссия по PlayStation 3
[pvc1 в 20:15|17 Мар 2024] 
 
Пишем, что хотим и о чем хотим...
[tupik2 в 16:53|14 Мар 2024] 
 
ПК программы для PlayStation 2
[pvc1 в 14:42|14 Мар 2024] 
 
Прошивки для PlayStation 4
[pvc1 в 19:38|13 Мар 2024] 
 
Железные вопросы PlayStation 2
[denben0487 в 23:33|08 Мар 2024] 
 
Прошивки и программы для PlayStation Vita
[pvc1 в 19:26|08 Мар 2024] 
 
Железные вопросы PlayStation 2
[Igor21 в 07:55|07 Мар 2024] 
 
Железные вопросы PlayStation 2
[Igor21 в 07:55|07 Мар 2024] 
 
Железные вопросы PlayStation 2
[Igor21 в 07:53|07 Мар 2024] 
 
ПК программы для PlayStation 3
[pvc1 в 13:24|06 Мар 2024] 
 
ПК программы для PlayStation 3
[pvc1 в 21:22|05 Мар 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 21:22|04 Мар 2024] 
 
Программы и Приложения для PlayStation Portable
[pvc1 в 21:11|04 Мар 2024] 
 
Приложения для PlayStation 2
[vitas155 в 16:02|03 Мар 2024] 
 
Приложения для PlayStation 2
[vitas155 в 14:06|03 Мар 2024] 
 
Об играх PlayStation 3
[karenjan99 в 17:10|29 Фев 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 08:10|28 Фев 2024] 
 
Железные вопросы PlayStation 2
[denben0487 в 01:09|28 Фев 2024] 
 
Топ 50 файлов
137163-загрузок

76292-загрузок

71186-загрузок

62439-загрузок

54774-загрузок

48736-загрузок

42329-загрузок

36524-загрузок

35837-загрузок

28050-загрузок

24278-загрузок

23710-загрузок

22057-загрузок

21057-загрузок

19918-загрузок

19838-загрузок

18265-загрузок

17770-загрузок

16715-загрузок

16319-загрузок

15356-загрузок

14316-загрузок

14261-загрузок

14136-загрузок

13858-загрузок

13561-загрузок

13535-загрузок

12855-загрузок

12844-загрузок

12783-загрузок

12581-загрузок

11755-загрузок

11666-загрузок

11207-загрузок

11161-загрузок

11074-загрузок

10638-загрузок

10412-загрузок

10057-загрузок

9747-загрузок

9676-загрузок

9246-загрузок

9220-загрузок

9208-загрузок

9160-загрузок

9040-загрузок

8901-загрузок

8860-загрузок

8668-загрузок

8534-загрузок

Топ 100 пользователей
  • pvc1 - 10675
  • dw_tn - 4823
  • karenjan99 - 2478
  • NVS - 2057
  • vitas155 - 1737
  • Retro¥GAMER - 1736
  • Dead - 1713
  • DaeMan - 1620
  • archicharmer - 1586
  • Kastl - 1521
  • denben0487 - 1448
  • DruchaPucha - 1308
  • dimm - 1102
  • kolan - 924
  • Izotov - 889
  • mishail12 - 699
  • sdaf13 - 689
  • WOLF - 559
  • ShellShocked - 504
  • tupik - 496
  • The_REAL - 467
  • vladvlad162 - 459
  • xbox-ua - 445
  • wallace - 429
  • Mr2 - 404
  • aklakan - 394
  • LinuxFun - 381
  • Игорь - 378
  • zoyt - 357
  • reptail - 354
  • almaz - 344
  • NeahNEET - 343
  • tic0007 - 341
  • Dyons - 335
  • Mordoc - 320
  • pvo51 - 312
  • FreddyFreed - 293
  • Rion - 289
  • xxxx - 279
  • BoSonOfPirate - 275
  • doom-ex - 249
  • DecK - 246
  • ZimZum - 227
  • LyNX - 209
  • DarkDrem - 207
  • KOSMOS - 190
  • 1oleg1 - 186
  • AKuHAK - 181
  • alexsx06 - 180
  • YAGAMI55 - 171
  • Kozinenko - 170
  • warezhunter_ - 161
  • DarkTima - 160
  • vincent - 160
  • Conker - 159
  • Random - 155
  • ROBOCOP - 155
  • duk - 154
  • in1975 - 151
  • Dr_Quake - 144
  • fox1918 - 141
  • Rikki-tikki-tavi - 138
  • tleon - 136
  • MAK_roS - 136
  • adamdead - 132
  • Buddda - 131
  • Ensight - 131
  • Virtua - 129
  • Fury - 128
  • Gizmondo88 - 126
  • PS3Evil - 125
  • M@ri0 - 121
  • CutToSleep - 121
  • turuta7 - 112
  • MaNeR - 106
  • gladeshawn - 105
  • tim_cat - 103
  • shurup - 103
  • ixx - 102
  • matich - 100
  • elvo - 100
  • Bethoven1945 - 97
  • aumihta24 - 97
  • belforrrr - 96
  • nikkomp - 94
  • serjlab - 94
  • bishop - 93
  • Prosmart - 93
  • hebroid - 92
  • Дмитрий_У - 91
  • JEKAN - 91
  • NITROUIH - 91
  • Dart_Mol - 90
  • doomer - 88
  • Henry - 86
  • butt-head - 85
  • RUSKos - 84
  • rodan_lewarx - 83
  • Payol - 83
  • FrodoSumkin - 82