Библиотека knigago >> Компьютеры и Интернет >> Хакерство >> Ромхакинг для начинающих. Sega Mega Drive.


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1138, книга: Божественные истории (ЛП)
автор: Эйми Картер

"Божественные истории" Эйми Картер — захватывающая серия романов в жанре любовной фантастики, которая погружает читателей в мир античной Греции, где боги и люди тесно переплетаются. Первый роман серии, "Полуночная ложь", рассказывает об Ариаднe, жрице богини Афины, которую обманом заставляют выйти замуж за Тесея. Преследуемая проклятием, она оказывается вовлечена в смертельный заговор, угрожающий как Олимпу, так и миру смертных. В своем отчаянном поиске истины Ариадна...

Автор неизвестен - Ромхакинг для начинающих. Sega Mega Drive.

Ромхакинг для начинающих. Sega Mega Drive.
Книга - Ромхакинг для начинающих. Sega Mega Drive..   Автор неизвестен  - прочитать полностью в библиотеке КнигаГо
Название:
Ромхакинг для начинающих. Sega Mega Drive.
Автор неизвестен

Жанр:

Хакерство, Программирование игр

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Ромхакинг для начинающих. Sega Mega Drive."

Аннотация к этой книге отсутствует.
К этой книге применимы такие ключевые слова (теги) как: Sega Mega Drive

Читаем онлайн "Ромхакинг для начинающих. Sega Mega Drive.". [Страница - 3]

комбинации кнопок, ascii текст, архивы, цены игровых предметов и т.д.)

Однако можно 'насильно' попробовать их представить как код (нажав C).
ROM:0000029E loc_0_29E:                            ; DATA XREF: RESET+10o
ROM:0000029E                 or.b    d0,d0
ROM:0000029E; ---------------------------------------------------------------------------
ROM:000002A0                 dc.b $3F; ?
ROM:000002A1                 dc.b $FF
ROM:000002A2; ---------------------------------------------------------------------------
ROM:000002A2                 btst    d0,d0
ROM:000002A4                 ori.l   #$A1,-(a0); '?'
ROM:000002AA                 move.b  d0,-(a0)
ROM:000002AC                 ori.l   #$120000C0,-(a1)
ROM:000002B2                 ori.b   #(dword_0_0+$C0),d0
ROM:000002B6                 ori.b   #$14,d4
ROM:000002BA                 move.w  #$76C,d0
ROM:000002BE                 ori.b   #0,d0
ROM:000002BE; -------------------------------------------------------------------


Данные представились как код, но это неправильно, т.к. это просто совпадение. Поэтому надо сделать Undefine обратно.
Как точно определить данные это или же код, будет рассмотрено немного позже.
Однако скажу что любой код заканчивается на команды:
jmp (прыжок)
bra (прыжок)
rts (возврат)
rte (возврат из исключения)

Если же у вас участок кода закончился на любую другую, а далее идет 'разрыв' и 'C' не срабатывает, то это не КОД.
ROM:0000029E                 or.b    d0,d0
ROM:0000029E; ---------------------------------------------------------------------------
ROM:000002A0                 dc.b $3F; ?
ROM:000002A1                 dc.b $FF


or.b d0,d0 - не код. жмем 'U'. следующий кусок тоже не код, т.к. заканчивается на ori.b #0,d0

Почему так? если бы процессор выполнял команду or.b d0, d0; следующая за ней шла бы 3FFF, а она не является командой процессор и игра бы просто повисла или перезапустилась. Именно поэтому нельзя в РОМ-файле менять цифры от 'балды', т.к. задевая программную часть мы портим последовательность действий.
Важно знать!, что хоть data и не является кодом, однако может представлять т.н. ссылки на код или ресурсы (offsets) - то есть адреса.(отделение адресов будет рассмотрено позже)

Так что же нам это всё дает? Наверное вы уже слышали понятия ASM-hacking и Data-hacking.
Так вот асм-хакинг это изменение(хакинг) кода, требует знания программирования (на самом деле можно хакать и не зная, достаточно запомнить парочку команд, а как я расскажу позже).

Дата-хакинг это изменение игровых данных, простой способ определить за что отвечали те или иные данные, заполнить эту область нулями (не задевая код), и посмотреть что изменилось.
Рекомендуется искать такие области начиная с адреса $1500 (но всё зависит от конкретной игры!), обычно вначале идут системные данные (связанные с информацией о регионах), которые менять ненужно или нельзя.
Чтож если вы поняли и вам уже захотелось попробовать, ищем в IDA-участки 'Data', переходим по этим же адресам в WinHex'e, выделяем область , жмем Edit-Fill block-Fill with hex values - 00, OK. Сохраняем и открываем ром в эмуляторе. Если РОМ не запускается, зайдите в опции эмулятора и поставьте галочку Auto Fix Chechsum / Править CRC Рома. Если РОМ все равно не запускается, отмените в WinHEx изменения (CTRL+Z) и пересохраните файл. Если игра теперь запускается значит, область была важной и просто так её изменять нельзя, попрбуйте найти другую область данных. Если игра от Electronic Arts**, то стоит
дополнительная защита, которую нужно предварительно снять, также доп. защита может быть и в других играх. Определить есть защита или нет просто - если игра не запускается при любом изменении - значит есть.
В случае удачных изменений, т.е. что-то изменилось и вы поняли что, следует изучать данный участок.(попробовать залить не 'нулями', редактировать цифры по одной и выявлять закономерности):

Пример области 'data':
ROM:00007328                 add.b   d1,(a1,a0.w)
ROM:0000732C                 rts
ROM:0000732C; ---------------------------------------------------------------------------
ROM:0000732E unk_0_732E:     dc.b   1
ROM:0000732F                 dc.b   0
ROM:00007330                 dc.b   1
ROM:00007331                 dc.b   0
ROM:00007332                 dc.b   0
ROM:00007333                 dc.b   1
ROM:00007334                 dc.b   1
ROM:00007335 unk_0_7335:     dc.b $10
ROM:00007336                 dc.b $10
ROM:00007337                 dc.b   0
ROM:00007338                 dc.b   0
ROM:00007339                 dc.b $10



И её отображение в HEX. (т.е. пробуем менять цифры с адреса 732E до 7369)

00007320 43 EC 51 9A 12 3B 00 1D D3 31 80 00 4E 75 01 00
00007330 01 00 00 01 01 10 10 00 00 10 00 10 00 08 08 08
00007340 00 00 08 00 00 00 01 01 01 01 00 03 00 02 00 03
00007350 00 04 00 00 00 04 00 03 01 00 08 00 01 00 08 00
00007360 02 00 04 00 02 00 04 00 08 00 FF FF E5 40 41 EC

Примечание: в IDA значения менять нельзя, это только просмотрщик. Меняем через WinHEx.

Если вы не поняли, или хотите --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.

Другие книги автора « Автор неизвестен»: