Разработка и ромхакинг > Ромхакинг и программирование
Как создавать Game Genie Codes при помощи IDA PRO
(1/1)
krocki:
Подскажите как находить коды на бес.жизни или патроны при помощи IDA PRO.
Объясните на примере любой игры Sega Genesis. Желательно со скриншотами чтобы
было более понятно чё и как.
Segaman:
изучай ром-хакинг и бог в помощь.
жесть :wall:
а собственно зачем тебе?
MetalliC:
krocki, для начала нужно выучить ассемблер процессора Motorola 68000, скриншотов как я сижу и читаю .pdf наснимать ?  :D
krocki:
Segaman просто раньше я делал тренеры для PC игр.
Теперь хочется в нех кодах покапаться по внедрению их в игр но сначало начал в ram ковыряться как говорится начал с более лёгкого.
Ну и конечно подучить ассемблер по лучше...
Мне интересно ведь Эмулятор отдельно и игра отдельно практически это тоже самое наверно как искать коды в модуле как  ПК игр.
Кстати ..........MetalliC........А чё в Consoles играх есть какоето отличие
в ассемблере Motorola 68000 :), и если есть скриншоты загрузи сюда чтобы посмотреть.
Smoke:
Зачем IDA? Берем эмуль с функцией поиска кодов, например этот. И пользуемся. Объяснять как с этой функцией работать, я думаю не требуется?
gepar:

--- Цитата: krocki ---А чё в Consoles играх есть какоето отличиев ассемблере Motorola 68000
--- Конец цитаты ---
Ассемблер - ассемблеру рознь, конечно есть отличия. Да и зачем тебе IDA PRO, это более для профессионалов, почти в каждом эмуляторе есть простенькая утилита для поиска gg кодов.
iddqd:
krocki, gamehacking.org. Куча всего, но на английском.
MetalliC:

--- Цитата: krocki ---Кстати ..........MetalliC........А чё в Consoles играх есть какоето отличиев ассемблере Motorola 68000 , и если есть скриншоты загрузи сюда чтобы посмотреть.
--- Конец цитаты ---
ну, если асм моторолы знаешь - уже что-то. в иде -
File - new - various files - binary/raw file - указываем ром - Processor Selection: Motorola 68000, и всё, можно еще RAM-секцию создать FF0000-FFFFFF
krocki:
....gepar.... находить par коды легко, особенно спомощью артмоней, а вот через Ассемблер искать инструкцию котроая работает с нужным адресом будет по сложнее ну и перевести асм в нех и в шить в игру.
Хочу спросить (MetalliC) ты взломал уже какуюнибуть игру через IDA PRo.
Да кстати когда нопил(nop) PC игры использовались 90 для замораживания инструкции, а вот На эмуле Сега генесис
значения для заморозки выгледит подругому в нех"е (то есть она делает прижок на ноп или как...)
MetalliC:

--- Цитата: krocki ---....gepar.... находить par коды легко, особенно спомощью артмоней, а вот через Ассемблер искать инструкцию котроая работает с нужным адресом будет по сложнее ну и перевести асм в нех и в шить в игру.
--- Конец цитаты ---
можно совместить приятное с полезным, через что-то артмани-подобное найти адрес например с кол-вом жизней, далее запустить эту игру под эмулятором с отладчиком, RegenD например, и поставить точку останова на чтение или запись этой ячейки.

--- Цитата: krocki ---Хочу спросить (MetalliC) ты взломал уже какуюнибуть игру через IDA PRo.
--- Конец цитаты ---
при помощи иды разбирал принципы работы всяческих неизвестно-как-устроеных-внутри железяк, в основном успешно, но вот именно поиском читов для СМД-игр не страдал, как-то не интересно ;)

--- Цитата: krocki ---Да кстати когда нопил(nop) PC игры использовались 90 для замораживания инструкции, а вот На эмуле Сега генесис
значения для заморозки выгледит подругому в нех"е (то есть она делает прижок на ноп или как...)
--- Конец цитаты ---
процессоры же разные очень, коды соответственно тоже, NOP у моторолы - 0x4e71
я надеюсь ты в курсе что у интелов и моторол данные по разному хранятся ? LSB-first у интела, и MSB-first у моторов.
krocki:
...MetalliC... Спасибо!!! ^_^
Теперь понятно кое-что.
Незнал что есть эмуляторы с отладчиками....Интересно. :?
Как говорится надо продвигаться в асм и изучать что-то новое в хаке. :D


Добавлено позже:
Напише по подробней о RegenD
Как это делается а то там много чего.
Где оставить точку останова на чтение или запись ячейки.
Тоесть где ствить бряк.
MetalliC:
да там оно вроде интуитивно - Tools - 68000 Debugger - в левой нижней части окна можно поставить 5 штук бряков на чтение/запись/выполнение, или в самом низу на диапазон адресов
krocki:
Где Address Breakpoints
И Address range.
а и дальше что делать.
MetalliC:
да как бы очевидно, через game-genie штуки находишь адрес, потом в Address Breakpoints его прописываешь, ставишь галку например Write, выходишь из отладчика - игра пойдет работать, и брякнется при записи в эту ячейку
iddqd:
krocki, в ArtMoney ПКМ на любом адресе из таблиц для Сеги с офсайта - Изменить. Покажут адрес RAM приставки (эмуляторный адрес). Только учти что эмулятор Kega Fusion, а также Mednafen в режиме SMD используют перевернутый порядок байтов.
krocki:
Всё вроде получилось....
Заморозка значения тоесть ты написал 0x4e71. я прописал в игре (нех)
Проблема: код работает.............но есть глюк небольшой с графикой.
Это единственная заморозка или есть ещё значения другое типа для нопа  чтобы небыло глюка с графикой. Если есть то как их искать. ^_^
MetalliC:
nop он и в африке nop, других у м68к вроде нет, видно ты что-то нужное отрубил.

PS: в продолжение предыдущего поста, совместно с дебагером оч.удобно использовать иду. так как отладчики обычно предоставляют достаточно спартанский интерфейс, так что обычно через них ищу участки кода которые читают/пишут куда надо, а сам код уже изучаю в ида про.
krocki:
Да есть ещё одна вещь котороя встречается на Примере игр.
Например я нашёл адрес жизней прописал в нехе у меня не кончаются жизни но и упративника тоже не кончаются жизни, как побороть чтоб упративника кончались а у меня не кончались... на Пк играх когда я лепил скрипт для тренеров то я делал прижок и искал указатели.
А как здесь это делать?
iddqd:
krocki, здесь нужно использовать обычную заморозку по таймеру в случае с ArtMoney, не нужно заменять команду на NOP.
Вообще указатели могут встретиться даже в играх Nes и SNES, очень редко - таких игр наверное единицы (может РПГ на SNES). Сам ни одной такой  не знаю - просто читал gamehacking.org:)
Навигация
Главная страница сообщений

Перейти к полной версии