Utility for SONY PlayStation Утилиты и программы для работы с играми SONY PlayStation

Реклама
Оцените пожалуйста - [Sheep Raider Tools] Редактор текста для Sheep Raider + ТУТОРИАЛ!.
(1)
Рейтинг темы: голосов - 1, средняя оценка - 5.00.

Ответ
 
Опции темы
Старый 11.01.2021, 03:30   #1
Person Of The Community
 
Регистрация: 30.06.2015
Пол: Мужской Мужской
Сообщений: 7
MG_REX - луч света в тёмном царствеMG_REX - луч света в тёмном царствеMG_REX - луч света в тёмном царствеMG_REX - луч света в тёмном царствеMG_REX - луч света в тёмном царствеMG_REX - луч света в тёмном царстве
Хорошо [Sheep Raider Tools] Редактор текста для Sheep Raider + ТУТОРИАЛ!             

Всем привет! Сделал я этот редактор достаточно давно, но никак не было времени выложить. Собственно, зачем он так нужен? Как-то я наткнулся на тему, где чел выложил сборник с озвучкой от Фаргуса и текстом от Paradox. Я подумал, почему текст от Фаргуса тоже не впихнул.
А дело вот в чём. В .mlt файлах есть контрольная сумма, и если поменять хоть 1 байт в тексте, то игра тупо не запустится (PSX) или запустится, но без текста (ПК).
Примечательно, что никто из фанатов никогда не согласится передать вам исходники своих тулз, как будто это у них негласное правило. Что ж, с удовольствием нарушу его
Сорцы и бинарники доступны на GitHub:
Этот текст скрыт Вы должны зарегистрироваться чтобы увидеть скрытый текст. После регистрации и активации аккаунта нажмите кнопку 'Спасибо', чтобы увидеть скрытый текст содержащейся здесь. Регистрация возможна через e-mail и OpenID. Если Вы испытываете проблемы с регистрацией, пожалуйста свяжитесь с Администратором volgame@gmail.com

В принципе, это всё. Под спойлером будут технические детали
Нажмите

Чтобы получить возможность изменять текст, есть 2 варианта:
1. Как-то узнать алгоритм вычисления контрольной суммы.
2. Найти эту проверку в исполняемом файле и затереть её


Сначала я хотел пойти по более лёгкому пути (2 вариант), но PSX версия отказывалась запускаться на эмуляторе. Вешалась после заставки. Мне ничего не оставалось, кроме как искать алгоритм там, ведь я хотел сделать универсальный редактор.
Запускаем игру, подходим к уровню и в x64dbg подключаемся к SheepD3D.exe. Нас интересует функция доступа к файлу CreateFileA. Ставим на неё брейкпоинт, переходим в игру и заходим на уровень. Сработает бряк, в отладчике будет виден полный путь к файлу. Жмём F9 до тех пор, пока не появится .mlt файл. После этого ставим бряки на ReadFile, после срабатывания переходим по адресу в регистре ESP и видим, что сначала читается 4 байта, затем 8, снова 4 и, наконец, всё остальное.






После последнего чтения заходим в каждую функцию. Задача -- найти цикл, в котором считается контрольная сумма. После некоторых поисков я попал в этот длинный цикл и вот она та самая функция:





Как оказалось, это -- простой CRC32, только с изменённым полиномом. Я не стал искать, где генерируется таблица, а просто выдрал её из памяти и вставил в исходники редактора.

Ещё спустя некоторое время оказалось, что структура файла такова:
Код:
{
   crc_header: u32,
   header: u8[8],
   crc_body: u32,
   body: u8[]

}
Структура хранения строк тоже очень простая. Первый байт означает число строк в секции, затем идут эти строки. Строки null-terminated. Могут встречаться секции с нулевым числом строк
Также .war файлы тоже защищены контрольной суммой, но про них, как нибудь, в другой раз
MG_REX вне форума  
Ответить с цитированием
Эти 13 пользователи сказали Спасибо MG_REX за это сообщение:
Реклама

Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Looney Tunes: Sheep Raider [SLUS-01369] [Russian] [Фаргус] DruchaPucha (PSX) Action/Adventure (RU) 39 04.06.2023 17:48
Looney Tunes: Sheep Raider [SLUS-01369] Aguia (PSX) Action/Adventure (U/C) 2 19.12.2022 13:23
Looney Tunes: Sheep Raider [SLUS-01369] [Russian] [Paradox] aNDROID999 (PSX) Action/Adventure (RU) 16 25.09.2022 22:19
Looney Tunes Sheep Raider [SLUS-01369] [Russian] [Vector] weberbor (PSX) Action/Adventure (RU) 19 18.10.2021 11:50


Часовой пояс GMT +3, время: 04:02.


© PSX Planet Community 2003-2023

PSX Planet Banner W.M.C. Models Banner