Библиотека knigago >> Компьютеры и Интернет >> Хакерство >> Докажи баг!

Хакер - Докажи баг!

Докажи баг!
Книга - Докажи баг!.   Хакер  - прочитать полностью в библиотеке КнигаГо
Название:
Докажи баг!
Хакер

Жанр:

Хакерство, Игровые приставки и автоматы

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

неизвестно

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

неизвестно

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

Краткое содержание книги "Докажи баг!"

Аннотация к этой книге отсутствует.

Читаем онлайн "Докажи баг!". [Страница - 2]

перевод. Изменение шрифтов необходимо, если алфавиты исходного и конечного языка отличаются,
например если нужно заменить латиницу на кириллицу. То же
самое касается и перевода с японского на английский или русский.
Кроме адреса, по которому начинается текст, нужно определить его кодировку, которая может быть абсолютно произвольной. Практически всегда разработчики старых консольных игр использовали поинтеры, благодаря которым также
упрощается и деятельность ромхакера: изменяя их, он может
не сохранять длины оригинальных участков текста. Также иногда при переводе редактируются надписи на спрайтах, хотя
это делается далеко не всегда.
Абсолютно любые данные (а особенно текст) могут быть
запакованы, и это может усложнить жизнь ромхакеру еще
больше. В особенно запущенных случаях локализатору по1

WWW
Официальная страница
No$gba:
nocash.emubase.de/
gba-dev.htm

INFO
Наиболее популярны
у ромхакеров следующие платформы: Nes/
Dendy/Famicom, SNES/
Super Famicom, Sega
Mega Drive / Genesis,
Game Boy, Game Boy
Advance, Nintendo DS,
Nintendo 64, Game Cube,
Wii, PSP, PlayStation 1, 2.
Рис. 1. No$gba — отладчик платформ
Game Boy Advance
и Nintendo DS
Рис. 2 . Перерисованный шрифт в тайловом
редакторе YY-CHR.
В этом примере
перед каждым символом идут данные,
отвечающие за его
ширину

2

42

PC ZONE

ХАКЕР 06 /185/ 2014

3

Рис. 3 . Translhextion —
одна из ромхакерских утилит, которая
позволяет искать
текст в неизвестной кодировке, подбирая ее
автоматически путем
перебора вариантов.
Напомню, что этот
прием работает, только
если алфавит кодирован по порядку, а текст
не запакован
Рис. 4. Пример
таблицы символов,
в которой они идут
не по порядку (реальный пример из Final
Fantasy VI Advance
для GBA). В данном
случае автоматически
выяснить местоположение и кодировку
текста Translhextion
не в состоянии, но их
можно определить
вручную при помощи
корруптора
Рис. 5 . Корруптор Ромкор: bhlady.narod.ru
Рис. 6. Калькулятор
поинтеров Kruptar
позволяет практически
забыть о технических
деталях во время редактирования текста.
Также поддерживает
извлечение/вставку запакованного методом
MTE текста. Можно
обеспечить поддержку
другого метода сжатия
благодаря возможности написания к нему
плагинов
Рис. 7. Поинтеры
можно увидеть в hexредакторе невооруженным глазом

надобится разобраться в языке ассемблера под конкретную
платформу: если «на ощупь» никак не получается выяснить
формат паковки данных, можно прибегнуть к дебаггингу
для выяснения алгоритма распаковки. Но поскольку у каждой
платформы ассемблер свой, я рассмотрю общие для всех
платформ приемы, доступные даже тем, у кого нет желания
или возможности редактировать машинный код соответствующей игровой приставки.

НАХОДИМ ЦЕЛЬ
Перед тем как выяснить, в каком формате хранятся нужные данные, надо сначала определить, по каким адресам они расположены. Если ты думаешь, что для того, чтобы найти расположение текста, нужно скроллить hex-редактор, то очень сильно
ошибаешься. Дело в том, что кодировка текста не обязана быть
стандартной. Например, латинской A может соответствовать
абсолютно любое значение байта от 00 до FF. Поэтому, чтобы
увидеть текст в hex-редакторе, сначала нужно скормить ему
составленную таблицу кодировки символов. Только вот такую
таблицу вряд ли получится сделать, пока точное расположение текста не будет найдено. А вот найти его путем скроллинга
в различных режимах тайлового редактора, в принципе, можно, все равно это долго и не гарантирует, что найдешь: формат
шрифта опять же может быть произвольным, иногда тайловый
редактор может и не поддерживать этот формат. Не говоря уже
о том, что любые данные могут быть запакованы.
Тем не менее решение задачи по гарантированному нахождению всех нужных данных выглядит довольно просто.
ПО для ромхакинга, которым нужно воспользоваться в первую
очередь, называется корруптор. Его задача — временно испортить ром на определенном участке, запустить ром для проверки, а затем вернуть в исходное состояние. Опционально
это может быть увеличение/уменьшение значений, случайные

4

5

значения или заданные (последний вариант также полезен
для определения кодировки текста, когда он будет найден).
Например, для начала можно разбить текст на восемь
участков и пройтись по каждому. Если несмотря на то, что некоторые данные в роме испорчены, шрифт и текст --">

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


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