Автор Тема: [PSX] Взлом игр для начинающих  (Прочитано 14768 раз)

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

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
[PSX] Взлом игр для начинающих
« : 13 Февраль 2015, 02:49:01 »
Для начала скачиваем с интернета pSX v1.13, ArtMoney и WinHex.
(Не забудьте активировать программу WinHex, иначе она не будет нормально сохранять образы после редактирования, а лучше качайте portable версию, ну и ArtMoney если он у вас требует ключ).
Сразу скажу эмулятор старый, не стоит на него ругатся, по этому чисто для взлома он пойдёт. (triangle) (circle) (cross) (square)
Взламывать будем игру на вечные оружия: Resident Evil 3: Nemesis[NTSC-U] [SLUS_009.23]
Формат bin, размер образа 722 165 136 байт... (Режим сложности игры HARD MODE, но это не так важно).
1: Запускаем эмулятор pSX v1.13, выбераем русский язык открываем образ с игрой и начинаем играть, заходим в инвентарь и видим что у пистолета 15 патронов в обойме.
2: Запускаем ArtMoney, выбираем в процессе эмулятор с игрой и при поиске адреса то же выбираем в списке свой эмулятор pSX v1.13. Вводим значение 15 - Тип 1_2 байта и жмём искать.


Далее переходим в игру и тратим 1 патрон, обратно переходим в ArtMoney и жмём отсеять значение 14.


И так проделываем пока не будит один адрес, (Если же будут 2-3 или более, добавляем их всех в список, морозим по очереди и проверяем в игре уменьшаются ли патроны, таким образом мы найдём среди нах одни правельный который нам нужен). У меня адрес получился 04F72155 - Это адрес эмулятора, если по нему нажать дважды, то будет отображатся адрес игры 800D2135 который нам и нужен.


3: Переходим обратно в игру, в эмуляторе жмём "Отладка -> Мониторинг -> R3000"


Появится меню отладчик где мы и будет искать патч код. Для удобной работы выбираем нормальный шрифт "File -> Configuration" и оставляем в меню только два окна Disassembly и Breakpoints, а остальные закрываем и жмём на "Window -> Tile horizontal"
4: В менюшке Breakpoints жмём правой кнопкой мышки и выбираем Add, в окошке вводим вот так 0x800D2135 - выбираем Memory -> и убираем галочку с Read, а но Write остовляем галочку и жмём на кнопку ОК.


Переходим в игру и видим что игра тормозит, это говорит о том что отладчик пытается обнаружить смещение и код инструкции, ладно в общем тратим один патрон и игра после этого должна зависнуть, (Что бы возобновить игру нажмите в отладчике "F9") переходим обратно в отладчик и видим вот такое:


В общем здесь сработал бряк на запись вычитания патронов:
Смещение:   Инструкция:        Код(Значение):
0006d0c8:   sb r2,0x0001(r5)   a0a20001
5: Переходим обратно в ArtMoney и вводим в лист новый адрес 8006d0a два байта и записываем в него своё значение 9216 (DEC), в НЕХ это 2400.
Пояснение!
Что сделали...мы добавили к адресу восьмёрку и добавили два байта, в место 8 стало А, изменили значение с 41122 (В НЕХ это a0a2), на 9216 (В НЕХ это 2400).
Вот скриншот:


Проверяем в игре, тратим патроны, вуаля! патроны не уменьшаются.
Вот мы и сделали свой GameShark чит код на вечные оружия 8006D0A:2400 (Правда кроме огнемёта, там другой код нужно затирать). Но суть та-же...находим адрес огнемёта и проделываем ту-же рутину, что и с патронами.
И так продолжаем...
6: Запускаем программу WinHex, ставим русский язык, для тех кто не знает "Help -> Setup -> Russian, please!.
Для удобства в работе в меню программы жмём "Вид -> Показать" и убираем там галочки с "Данные дела", "Интерпретатор данных" и "Инфо панель".
7: В общем кидаем в программу наш образ игры (Например: Resident Evil 3 Nemesis.bin). Возвращяемся в эмулятор с игрой к отладчику и видим там наш адрес смещения где сработал бряк на уменьшение патронов.
и снизу под ней выделенное серым смещение типа 0006d0cc:   lbu r2,0x0001(r5)   90a20001


Далее переходим обратно в программу WinHex и жмём в меню "Поиск -> Найти хекс значение..." и вводим туда код в такой последовательности те оба кода 0100a2a00100a290 и жмём на кнопку ОК. (Зачем так мы это сделали - просто бывают иногда в играх совпадают НЕХ-Коды),  и должен пойти процесс поиска НЕХ-кода. И находим вот такое:


Заменяем A2 A0 на 00 24 и жмём сохранить:


Делаем далее сброс в эмуляторе грузимся и начинаем играть, тратим патроны и Ураааааа! Патроны не тратятся.
Так-же по аналоги можно сделать вечные жизни ну и т.д.
Ну на этом курс по взлому для начинающих закончен.
:surrender:
« Последнее редактирование: 14 Февраль 2015, 03:26:06 от krocki »

Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #1 : 13 Февраль 2015, 03:05:58 »
(Не забудьте активировать программу WinHex, иначе она не будет нормально сохранять образы после редактирования, ну и ArtMoney если он у вас платный).
А разве платный WinHex умеет что-то необычное в отличии от бесплатного того же HxD или Freeware Hex Editor XVI32?

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8077
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #2 : 13 Февраль 2015, 07:09:46 »
Меня больше интересует, как активировать читами debug режим в играх для PSX. Метод какой-то должен же быть, как-то же находят эти коды.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3812
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #3 : 13 Февраль 2015, 07:48:42 »
1. Картинки не грузятся
2. Орфография ужасна
3. Информация полезена
4. HxD отлично работает с большими файлами, давно забыл про винхекс

Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #4 : 13 Февраль 2015, 11:02:29 »
Меня больше интересует, как активировать читами debug режим в играх для PSX. Метод какой-то должен же быть, как-то же находят эти коды.
Но ведь у каждой игры свои личные специфичные параметры если речь о debug menu или о чём-то другом? Разве у всех игр есть какое-то общее значение? Через IDA Pro + no$psx же.

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4424
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #5 : 13 Февраль 2015, 14:22:29 »
4. HxD отлично работает с большими файлами, давно забыл про винхекс
Давно забыл про ХексВоркшоп =)

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8077
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #6 : 13 Февраль 2015, 15:30:04 »
Цитата: SILENT_Pavel
Но ведь у каждой игры свои личные специфичные параметры если речь о debug menu или о чём-то другом?

Я имею ввиду те игры, где упоминание о Дебаг режиме коде самой игры. То есть имеется строчка с надписью Debug - надо вычислить как происходит её активация.

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
[PSX] Взлом игр для начинающих
« Ответ #7 : 13 Февраль 2015, 15:32:53 »
Excuse MUA! У меня всё нормально отображалось.
Перезалил в другую галерею скриншоты. Отпишитесь если у кого не отображаются.
Меня больше интересует, как активировать читами debug режим в играх для PSX. Метод какой-то должен же быть, как-то же находят эти коды.
Как я понял... вы хотите что бы отображалось меню разработчика (Скрытое) при помощи кодов. Это возможно, но не на все игры.
Просто некоторые разработчки, берут и затирают инструкции отладки, найти этот участок кода и вобще восстановить...ну ооочень сложно.
Да и кто муже...нужно реально очень хорошо знать ассемблер под R3000.

Я имею ввиду те игры, где упоминание о Дебаг режиме коде самой игры. То есть имеется строчка с надписью Debug - надо вычислить как происходит её активация.
Ну так вроде это просто делается: Находим адрес включение/отключения этой строчки и ставим бряк на чтения на этот адрес (До включения этой строчки debug) Заходим в меню какое нибудь или обратно в общем лазием везде где может сработать брякпоинт...дальше анализируем код где сработал бряк или пробуем просто затереть его. Так я ломал официальные чит-коды при помощи активаций, комбинаций клавиш.
« Последнее редактирование: 13 Февраль 2015, 16:24:04 от krocki »

Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #8 : 13 Февраль 2015, 16:10:29 »
Я имею ввиду те игры, где упоминание о Дебаг режиме коде самой игры. То есть имеется строчка с надписью Debug - надо вычислить как происходит её активация.
Помню когда первый раз стал рыться в пс1 играх через ресурсы напрямую, сразу заметил кучу "debug" слов ASCII в экзешнике и все они не являлись дебаг меню, а были командами процессора или других компонентов, если я правильно понял и был очень разочарован тем, что если видишь дебаг - это не значить дебаг, проще говоря. В память я не лезу, а именно по ресурсам.

В общем приблизиться к специфике можно двумя способами:
  • 1. изучать ресурсы и память не ретейл игр с уже активированным дебагом, таких как:

источник: https://www.mediafire.com/folder/8r4xe46lt1exu//Prototopia
root - sony playstation
например дюк нукем тайм ту килл бета с полным дебагом, легаси оф кейн соул ривер дебаг версия и еще некоторые
  • 2. изучать механизм работы существующих кодов на дебаг меню пс1 игр, примеры выложу сюда позже, где-то был список. Помню наизусть код для ретейл гта 1 на пс1 - показывающий дебаг информацию. Еще полезно почитать/задать в лс вопросы юзерам из этой темы, они разработали код анлока дебаг меню в ico на пс2 (ну всё равно полезно) с нуля от демо до ретейл версии: https://www.assemblergames.com/forums/showthread.php?50035-Ico-Debug-Enabled-Demo
« Последнее редактирование: 05 Март 2015, 13:11:34 от SILENT_Pavel »

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7137
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #9 : 13 Февраль 2015, 16:30:35 »
А в бета версии всё - открытая книга, если кто-то возьмётся за неё наверняка сможет что-нибудь найти вроде недавнего открытия мини-карт спрятанного в сх2: http://silenthillcommunity.com/viewtopic.php?f=21&t=437048
ну если кто-то возьмется тыкать пальцем в небо, как в случае с открытием миникарты, то может когда-то и попадет пальцем в какое-то небо  :lol:

Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #10 : 13 Февраль 2015, 16:33:13 »
о может когда-то и попадет пальцем в какое-то небо
Время нахождения только от опыта зависит конкретного человека, либо дебага просто нет. Иначе никак не объяснить такую вещь, что для пс1 чит девайсов в разных играх одна и та же команда или один кодер открывал(и) дебаг меню зная общую специфику платформы или заранее подозревали где искать. апд: правда часть кодов битая у них таки, либо слишком неочевидный результат без внятного описания
---
кстати раз вайды отыскиваешь, дебаги находил хоть раз где-нибудь в определённых консольных играх? правда интересно, без упрёков
« Последнее редактирование: 13 Февраль 2015, 16:47:56 от SILENT_Pavel »

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7137
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #11 : 13 Февраль 2015, 17:14:17 »
кстати раз вайды отыскиваешь, дебаги находил хоть раз где-нибудь в определённых консольных играх? правда интересно, без упрёков
а я их и не искал, максимум смотрел как в других сделан возврат меню, к примеру в той же Xenosage идет обычная подмена одного меню другим, такую подмену и ты бы за пару минут бы сделал

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #12 : 13 Февраль 2015, 19:23:10 »
Цитата: paul_met
Я имею ввиду те игры, где упоминание о Дебаг режиме коде самой игры. То есть имеется строчка с надписью Debug - надо вычислить как происходит её активация.

простого универсального способа нет.
я обычно дамплю с эмулятора память консоли, загоняю в IDA и ищу указатели в коде на эти строчки текста.
для ускорения процесса еще снимаю tracelog отладчика и прогоняю скриптом иды, чтоб автоматом дизассемблировало код по которому бегает игра и не надо было делать этого руками.

в удачных случаях находятся абсолютные ссылки на текст прямо в коде, в более запущенных указатели в табличках на которые какой-то код ссылается, в запущенных - относительные ссылки. в любом случае без кропотливого анализа кода никак.

на примере игр дримкаста еще могу сказать, что наличие кучи отладочных текстов в бинарнике игры еще ничего не значит.
во многих играх тексты сами-то есть, но кода их использующего нет и следа, т.к. он был отключен при компиляции.

Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #13 : 14 Февраль 2015, 14:01:03 »
Вот интересный пример с легаси оф кейн - по нему можно проследить как потихоньку вырезается из игры дебаг функционал ближе к релизу в течении последних месяцев до выхода игры:
http://www.thelostworlds.net/SR1/The_Debug_Menu.html
« Последнее редактирование: 05 Март 2015, 13:11:02 от SILENT_Pavel »

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4424
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #14 : 19 Февраль 2015, 10:23:02 »
вроде недавнего открытия мини-карт спрятанного в сх2: http://silenthillcommunity.com/viewtopic.php?f=21&t=437048
Вау, круто. Ещё бы парень не жопился сразу написать метод. А то сегодня скриншоты, завтра видео...

источник: https://www.mediafire.com/folder/8r4xe46lt1exu//Prototopia
Спасибо за ссылку!

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7137
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #15 : 20 Февраль 2015, 21:56:50 »
Вау, круто. Ещё бы парень не жопился сразу написать метод. А то сегодня скриншоты, завтра видео...
так метод то он написал  :lol:, а результат выложить зажал

меня еще умиляет там фраза
Цитата
Well, I'm working on converting it into a codebreaker code for use with the actual PS2 hardware
при том что там работы на 1 минуту

Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: [PSX] Взлом игр для начинающих
« Ответ #16 : 05 Март 2015, 13:13:29 »
paul_met, нагулил и проверил эти коды, пишу только о проверенных кодах (часто постят нерабочие):
Я имею ввиду те игры, где упоминание о Дебаг режиме коде самой игры. То есть имеется строчка с надписью Debug - надо вычислить как происходит её активация.
2. изучать механизм работы существующих кодов на дебаг меню пс1 игр, примеры выложу сюда позже, где-то был список.

SLUS-00715
Akuji - The Heartless
http://gamehacking.org/?game=88387&simple=true
Have Debug Option In Pause Menu
300BA742 000C


В паузе появляется доступ к отладке, внутри достаточно простой выбор уровня и вывод отладочной информации и по сути на этом всё.

SLUS-00373
Apocalypse
http://gamehacking.org/?game=88410&simple=true
Have Debug Screen Open
800FF33C 0001


Вывод в левый нижний угол экрана какого-то ошмётка от отладочной информации.

SLUS-00522
Auto Destruct
http://gamehacking.org/?game=88452&simple=true
Enable Debug Menu
800A9070 0001


Вот это интересный вариант. В паузе появляется вполне функциональное и вероятно полное меню отладки. Среди функций работающее прохождение сквозь стены, обычные читы на оружие и работающий вывод отладочной информации.

SLUS-00814
Chocobo's Dungeon 2
http://gamehacking.org/?game=88592&simple=true
http://www.gamefaqs.com/ps/196912-chocobos-dungeon-2/faqs/8192
Debug Room
800D8B04 00FF


SLUS-01015
Die Hard Trilogy 2: Viva Las Vegas
http://gamehacking.org/?game=88702&simple=true
Debug Menu
D008C682 FAFF
800CCF90 0000
D008C682 EFFF
800CCF90 0001
D008C682 FAFF
8008CFAC 0004



SCUS-94221
Final Fantasy Tactics
http://gamehacking.org/?game=88852&simple=true
https://tcrf.net/Final_Fantasy_Tactics#Debug_Mode
http://www.gamefaqs.com/ps/197339-final-fantasy-tactics/faqs/3878
http://www.gamefaqs.com/ps/197339-final-fantasy-tactics/faqs/21437
World Debug Menu Activator
D00EBE34 000B
800EBE3C 0008
D00EBE34 000B
800EBE3E 2402
D00EBE10 0002
800EBE18 0008
D00EBE10 0002
800EBE1A 2402

Цитата: альтернативные коды
World Debug Menu code:
D0198090 0000
80198090 0006


Battle Debug Menu code:
8016BC1C 0003


SLUS-00892
Final Fantasy VIII
http://gamehacking.org/?game=88857&simple=true
https://tcrf.net/Final_Fantasy_VIII/Debug_Room
http://www.gamefaqs.com/ps/197343-final-fantasy-viii/faqs/4910
http://www.gamefaqs.com/ps/197343-final-fantasy-viii/faqs/4909
Debug Mode Code (Press Select+L1+L2+R1+R2)
D00705E8 010F
800704A8 0001
D00705E8 010F
800704AA 0049

Цитата: Japanese Version
D006F308 000F
8006F1C8 0001
D006F308 000F
8006F1CA 0049


Стандартная комната отладки как и в других фф-жрпг, полный гайд и описание на tcrf. Про фф 7 позже напишу.

SCUS-94491
Legend Of Dragoon
http://gamehacking.org/?game=89098&simple=true
http://www.gamefaqs.com/ps/197765-the-legend-of-dragoon/faqs/13265
Debug Room
80052C30 0000
Цитата
Jap Version
80051930 0000

US Demo Version (from Jampack Summer 2k)
8005BE04 0000

*NOTE* The US Demo Version Debug room doesn't allow you to go to disc 2, 3, or 4 for obvious reasons. You can only use the warps in the first room.

Turn this code off once you get in the debug room.
Тоже японская комната отладки на японском (игра то американка при этом), вроде функциональная как обычно, код тоже надо выключать после входа в комнату.

SLUS-01013
Legend of Mana
http://gamehacking.org/?game=89104&simple=true
https://tcrf.net/Legend_of_Mana
http://www.gamefaqs.com/ps/256525-legend-of-mana/faqs/8196
Debug Menu (Select Quick Continue At Title Screen)
D0102672 0101
30102674 0001

Цитата
Jap version:
80102752 0002
Turn off codes right away, then turn them back on
when you get to the title screen.
Then pick anything.


Уже ставшая стандартной отладочная комната, но о чудо - она на английском. Краткое описание на tcrf.

SLUS-01112
Nightmare Creatures 2
http://gamehacking.org/?game=89485&simple=true
Debug Info
300B92F0 0001


Еще одна отладочная информация и больше ничего.

SCUS-94449
Omega Boost
http://gamehacking.org/?game=89556&simple=true
Debug Display
300A7EA4 0001


Выводит координаты или что-то сверху.

SLUS-01158
Persona 2 Eternal Punishment
http://gamehacking.org/?game=89578&simple=true
Battle Debug Menu (Enter a battle like normal)
800F444C 0007


SLUS-00626
Tales of Destiny
http://gamehacking.org/?game=89972&simple=true
https://tcrf.net/Tales_of_Destiny_(PlayStation)
Debug Room
801B3B28 0004


SLUS-00706
Tenchu - Stealth Assassins
http://gamehacking.org/?game=89988&simple=true
https://tcrf.net/Tenchu:_Stealth_Assassins
http://www.gamefaqs.com/ps/198911-tenchu-stealth-assassins/faqs/4279
Debug Menu Activator
80095AC8 000A


With this code, press L2 & R2 while in the game to go to the Debug Menu!
Это вероятно самый крутой код на полнофункциональное и богатое меню отладки. Полное описание на gamefaqs и tcrf.

SCUS-94608
Wild ARMs
http://gamehacking.org/?game=90141&simple=true
https://tcrf.net/Wild_ARMs
Enable 'Map' Option Under Config
D00600F0 2C4E
D00600FC 0002
300600FC 0001

Assembly Hack, Same as the 'Map Select Debug Menu', but doesn't interfere with menu systems.
Map Select Debug Menu
8012F8BC 0009
With this code, go to the Config option during the game to find it.
T - Town E - Event D - Dungeon ? - Well

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

---
итоги:


апд 26.06.15: добавил гайды по дебагам на gamefaqs, сделал всякие важные правки.
« Последнее редактирование: 26 Июнь 2015, 21:31:22 от SILENT_Pavel »